fix camera API 2.0 orientation
we add a flag to ANativeWindow::setBufferTransform that means
"apply the inverse rotation of the display this buffer is displayed
onto to".
Bug: 10804238
Change-Id: Id2447676271950463e8dbcef1b95935c5c3f32b2
diff --git a/services/surfaceflinger/SurfaceFlingerConsumer.cpp b/services/surfaceflinger/SurfaceFlingerConsumer.cpp
index 552372b..6dc093e 100644
--- a/services/surfaceflinger/SurfaceFlingerConsumer.cpp
+++ b/services/surfaceflinger/SurfaceFlingerConsumer.cpp
@@ -99,6 +99,19 @@
return bindTextureImageLocked();
}
+status_t SurfaceFlingerConsumer::acquireBufferLocked(
+ BufferQueue::BufferItem *item, nsecs_t presentWhen) {
+ status_t result = GLConsumer::acquireBufferLocked(item, presentWhen);
+ if (result == NO_ERROR) {
+ mTransformToDisplayInverse = item->mTransformToDisplayInverse;
+ }
+ return result;
+}
+
+bool SurfaceFlingerConsumer::getTransformToDisplayInverse() const {
+ return mTransformToDisplayInverse;
+}
+
// We need to determine the time when a buffer acquired now will be
// displayed. This can be calculated:
// time when previous buffer's actual-present fence was signaled