OSDN Git Service

Legacy: Only set user surface dimensions on output surfaces
authorEino-Ville Talvala <etalvala@google.com>
Wed, 11 Feb 2015 23:41:12 +0000 (15:41 -0800)
committerEino-Ville Talvala <etalvala@google.com>
Thu, 12 Feb 2015 00:58:10 +0000 (16:58 -0800)
The GL layer gets exclusive use of the direct producer dimensions;
we should only set the user dimensions.

Bug: 16404608
Change-Id: Ie5b720104bdbee6b096b62520baa1c6b518c6c1c

core/jni/android_hardware_camera2_legacy_LegacyCameraDevice.cpp

index b27add8..0a6fb9d 100644 (file)
@@ -598,15 +598,10 @@ static jint LegacyCameraDevice_nativeSetSurfaceDimens(JNIEnv* env, jobject thiz,
         ALOGE("%s: Could not retrieve native window from surface.", __FUNCTION__);
         return BAD_VALUE;
     }
-    status_t err = native_window_set_buffers_dimensions(anw.get(), width, height);
-    if (err != NO_ERROR) {
-        ALOGE("%s: Error while setting surface dimens %s (%d).", __FUNCTION__, strerror(-err), err);
-        return err;
-    }
 
-    // WAR - Set user dimensions also to avoid incorrect scaling after TextureView orientation
-    // change.
-    err = native_window_set_buffers_user_dimensions(anw.get(), width, height);
+    // Set user dimensions only
+    // The producer dimensions are owned by GL
+    status_t err = native_window_set_buffers_user_dimensions(anw.get(), width, height);
     if (err != NO_ERROR) {
         ALOGE("%s: Error while setting surface user dimens %s (%d).", __FUNCTION__, strerror(-err),
                 err);
@@ -750,4 +745,3 @@ int register_android_hardware_camera2_legacy_LegacyCameraDevice(JNIEnv* env)
             gCameraDeviceMethods,
             NELEM(gCameraDeviceMethods));
 }
-