Clearly separate consumer and producer interfaces
Bug: 9265647
Change-Id: Ic68e91788d0a05251e1d2fb9f9d4de403c7099bf
diff --git a/core/jni/android_hardware_Camera.cpp b/core/jni/android_hardware_Camera.cpp
index dec4cd4..0018dd2 100644
--- a/core/jni/android_hardware_Camera.cpp
+++ b/core/jni/android_hardware_Camera.cpp
@@ -565,14 +565,10 @@
sp<Camera> camera = get_native_camera(env, thiz, NULL);
if (camera == 0) return;
- sp<BufferQueue> bufferQueue = NULL;
+ sp<IGraphicBufferProducer> producer = NULL;
if (jSurfaceTexture != NULL) {
- sp<GLConsumer> surfaceTexture =
- SurfaceTexture_getSurfaceTexture(env, jSurfaceTexture);
- if (surfaceTexture != NULL) {
- bufferQueue = surfaceTexture->getBufferQueue();
- }
- else {
+ producer = SurfaceTexture_getProducer(env, jSurfaceTexture);
+ if (producer == NULL) {
jniThrowException(env, "java/lang/IllegalArgumentException",
"SurfaceTexture already released in setPreviewTexture");
return;
@@ -580,7 +576,7 @@
}
- if (camera->setPreviewTexture(bufferQueue) != NO_ERROR) {
+ if (camera->setPreviewTexture(producer) != NO_ERROR) {
jniThrowException(env, "java/io/IOException",
"setPreviewTexture failed");
}