Commit 016011fd authored by Andrey Pavlenko's avatar Andrey Pavlenko

fixing start faulure on some devices; syncronization improvements

parent 4b0f3bf1
...@@ -73,7 +73,6 @@ import android.view.Surface; ...@@ -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; ...@@ -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; ...@@ -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; ...@@ -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; ...@@ -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; ...@@ -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; ...@@ -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; ...@@ -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;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment