diff --git a/core/java/android/hardware/camera2/legacy/SurfaceTextureRenderer.java b/core/java/android/hardware/camera2/legacy/SurfaceTextureRenderer.java index f928a55597da6..bc80fc1147722 100644 --- a/core/java/android/hardware/camera2/legacy/SurfaceTextureRenderer.java +++ b/core/java/android/hardware/camera2/legacy/SurfaceTextureRenderer.java @@ -630,8 +630,6 @@ public class SurfaceTextureRenderer { holder.width = surfaceSize.getWidth(); holder.height = surfaceSize.getHeight(); if (LegacyCameraDevice.needsConversion(s)) { - // Always override to YV12 output for YUV surface formats. - LegacyCameraDevice.setSurfaceFormat(s, ImageFormat.YV12); mConversionSurfaces.add(holder); } else { mSurfaces.add(holder); diff --git a/media/jni/android_media_ImageReader.cpp b/media/jni/android_media_ImageReader.cpp index 635fa11c6b443..0034b07762a88 100644 --- a/media/jni/android_media_ImageReader.cpp +++ b/media/jni/android_media_ImageReader.cpp @@ -1240,8 +1240,11 @@ static jint Image_getFormat(JNIEnv* env, jobject thiz, jint readerFormat) return static_cast(PublicFormat::PRIVATE); } else { CpuConsumer::LockedBuffer* buffer = Image_getLockedBuffer(env, thiz); + int readerHalFormat = android_view_Surface_mapPublicFormatToHalFormat( + static_cast(readerFormat)); + int32_t fmt = applyFormatOverrides(buffer->flexFormat, readerHalFormat); PublicFormat publicFmt = android_view_Surface_mapHalFormatDataspaceToPublicFormat( - buffer->flexFormat, buffer->dataSpace); + fmt, buffer->dataSpace); return static_cast(publicFmt); } }