提交 d69b7c33 编写于 作者: V Vadim Pisarevsky

Merge pull request #5385 from alalek:fix_android_camera_datarace

...@@ -328,6 +328,7 @@ public class JavaCameraView extends CameraBridgeViewBase implements PreviewCallb ...@@ -328,6 +328,7 @@ public class JavaCameraView extends CameraBridgeViewBase implements PreviewCallb
@Override @Override
public void run() { public void run() {
do { do {
boolean hasFrame = false;
synchronized (JavaCameraView.this) { synchronized (JavaCameraView.this) {
try { try {
while (!mCameraFrameReady && !mStopThread) { while (!mCameraFrameReady && !mStopThread) {
...@@ -337,11 +338,14 @@ public class JavaCameraView extends CameraBridgeViewBase implements PreviewCallb ...@@ -337,11 +338,14 @@ public class JavaCameraView extends CameraBridgeViewBase implements PreviewCallb
e.printStackTrace(); e.printStackTrace();
} }
if (mCameraFrameReady) if (mCameraFrameReady)
{
mChainIdx = 1 - mChainIdx; mChainIdx = 1 - mChainIdx;
mCameraFrameReady = false;
hasFrame = true;
}
} }
if (!mStopThread && mCameraFrameReady) { if (!mStopThread && hasFrame) {
mCameraFrameReady = false;
if (!mFrameChain[1 - mChainIdx].empty()) if (!mFrameChain[1 - mChainIdx].empty())
deliverAndDrawFrame(mCameraFrame[1 - mChainIdx]); deliverAndDrawFrame(mCameraFrame[1 - mChainIdx]);
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册