summaryrefslogtreecommitdiff
path: root/media/jni/android_media_ImageReader.cpp
diff options
context:
space:
mode:
authorEmilian Peev <epeev@google.com>2018-06-26 10:13:39 +0100
committerEmilian Peev <epeev@google.com>2018-06-26 10:17:34 +0100
commitda49a5ed3312f104dd0a1d5a4e468d3558ac0a90 (patch)
tree5adcc70e2b51de6d6d9b52c78fc063ef3498ec42 /media/jni/android_media_ImageReader.cpp
parent80167ec0c723d9843fbe7056ea2a53c5a8c254b3 (diff)
ImageReader: Set inverse diplay transform if needed
Image transform sometimes could be missing the inverse display flag. Any buffers that pass through BQs will have this bit reset and moved in a separate buffer item field. To restore and pass the original transform forward check whether the flag got reset and re-enable it accordingly. Bug: 110641448 Test: Manual using application, Camera CTS Change-Id: Ia849f62333be40038a02768563b2f93e2ccf61ce
Diffstat (limited to 'media/jni/android_media_ImageReader.cpp')
-rw-r--r--media/jni/android_media_ImageReader.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/media/jni/android_media_ImageReader.cpp b/media/jni/android_media_ImageReader.cpp
index c36858ad3d8e..a45aa90f5f19 100644
--- a/media/jni/android_media_ImageReader.cpp
+++ b/media/jni/android_media_ImageReader.cpp
@@ -612,8 +612,12 @@ static jint ImageReader_imageSetup(JNIEnv* env, jobject thiz, jobject image) {
Image_setBufferItem(env, image, buffer);
env->SetLongField(image, gSurfaceImageClassInfo.mTimestamp,
static_cast<jlong>(buffer->mTimestamp));
+ auto transform = buffer->mTransform;
+ if (buffer->mTransformToDisplayInverse) {
+ transform |= NATIVE_WINDOW_TRANSFORM_INVERSE_DISPLAY;
+ }
env->SetIntField(image, gSurfaceImageClassInfo.mTransform,
- static_cast<jint>(buffer->mTransform));
+ static_cast<jint>(transform));
env->SetIntField(image, gSurfaceImageClassInfo.mScalingMode,
static_cast<jint>(buffer->mScalingMode));