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