fixing start faulure on some devices; syncronization improvements
This commit is contained in:
@@ -73,7 +73,6 @@ import android.view.Surface;
|
||||
Math.abs(aspect - (float)w/h) < 0.2 ) {
|
||||
bestWidth = w;
|
||||
bestHeight = h;
|
||||
//mPreviewSize = psize;
|
||||
}
|
||||
}
|
||||
Log.i(LOGTAG, "best size: "+bestWidth+"x"+bestHeight);
|
||||
@@ -156,9 +155,9 @@ import android.view.Surface;
|
||||
|
||||
@Override
|
||||
public void onDisconnected(CameraDevice cameraDevice) {
|
||||
//mCameraOpenCloseLock.release();
|
||||
cameraDevice.close();
|
||||
mCameraDevice = null;
|
||||
mCameraOpenCloseLock.release();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -185,6 +184,7 @@ import android.view.Surface;
|
||||
return;
|
||||
}
|
||||
if(null == mSTex) {
|
||||
mCameraOpenCloseLock.release();
|
||||
Log.e(LOGTAG, "createCameraPreviewSession: preview SurfaceTexture is null");
|
||||
return;
|
||||
}
|
||||
@@ -192,7 +192,6 @@ import android.view.Surface;
|
||||
mSTex.setDefaultBufferSize(mPreviewSize.getWidth(), mPreviewSize.getHeight());
|
||||
|
||||
Surface surface = new Surface(mSTex);
|
||||
Log.d(LOGTAG, "createCameraPreviewSession: surface = " + surface);
|
||||
|
||||
mPreviewRequestBuilder = mCameraDevice
|
||||
.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW);
|
||||
@@ -215,6 +214,7 @@ import android.view.Surface;
|
||||
mCaptureSession.setRepeatingRequest(
|
||||
mPreviewRequestBuilder.build(), null,
|
||||
mBackgroundHandler);
|
||||
Log.i(LOGTAG, "CameraPreviewSession has been started");
|
||||
} catch (CameraAccessException e) {
|
||||
Log.e(LOGTAG, "createCaptureSession failed");
|
||||
}
|
||||
@@ -227,7 +227,7 @@ import android.view.Surface;
|
||||
Log.e(LOGTAG, "createCameraPreviewSession failed");
|
||||
mCameraOpenCloseLock.release();
|
||||
}
|
||||
}, null);
|
||||
}, mBackgroundHandler);
|
||||
} catch (CameraAccessException e) {
|
||||
Log.e(LOGTAG, "createCameraPreviewSession");
|
||||
} catch (InterruptedException e) {
|
||||
@@ -235,7 +235,7 @@ import android.view.Surface;
|
||||
"Interrupted while createCameraPreviewSession", e);
|
||||
}
|
||||
finally {
|
||||
mCameraOpenCloseLock.release();
|
||||
//mCameraOpenCloseLock.release();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -262,12 +262,15 @@ import android.view.Surface;
|
||||
|
||||
@Override
|
||||
protected void setCameraPreviewSize(int width, int height) {
|
||||
//mPreviewSize = new Size(width, height);
|
||||
if( !cacPreviewSize(width, height) )
|
||||
return;
|
||||
Log.i(LOGTAG, "setCameraPreviewSize("+width+"x"+height+")");
|
||||
try {
|
||||
mCameraOpenCloseLock.acquire();
|
||||
if( !cacPreviewSize(width, height) ) {
|
||||
mCameraOpenCloseLock.release();
|
||||
return;
|
||||
}
|
||||
if (null != mCaptureSession) {
|
||||
Log.d(LOGTAG, "closing existing previewSession");
|
||||
mCaptureSession.close();
|
||||
mCaptureSession = null;
|
||||
}
|
||||
|
Reference in New Issue
Block a user