我是google-project-tango的新手,我想记录Tango的彩色相机图像缓冲区而不是鱼眼相机的图像。我看到henderso共享 - 读取GL缓冲区以保存图像,并修改其代码以记录图像 - 在我们获得任何onFrameAvailable()回调时保持保存每个图像。当我得到onframeavailable回调时,我也尝试锁定缓冲区或使用信号量。但结果看起来像这样 - is it the synchronization problem of GL buffer?。
MainActivity实现了TangoCameraScreengrabCallback:
public void onFrameAvailable(int arg0) {
if (mIsRecording){
tangoCameraPreview.takeSnapShot();
try {
mutex_on_mIsRecording.acquire();
} catch (InterruptedException e) {
e.printStackTrace();
}
tangoCameraPreview.onFrameAvailable();
mutex_on_mIsRecording.release();
}
}
tangoCameraPreview.onFrameAvailable()将执行以下操作:
public void onFrameAvailable() {
super.onFrameAvailable();
if(recording) {
synchronized (intBuffer){
screenGrabRenderer.grabNextScreen(SCREEN_GRAB_X, SCREEN_GRAB_Y, SCREEN_GRAB_W, SCREEN_GRAB_H, intBuffer);
}
}
}