diff options
author | Shuzhen Wang <shuzhenwang@google.com> | 2021-07-01 12:42:06 -0700 |
---|---|---|
committer | Shuzhen Wang <shuzhenwang@google.com> | 2021-07-01 21:18:28 +0000 |
commit | d67d2443fc7b65b6d5db0dcdad8978979ac61aec (patch) | |
tree | 903494365ead6259d95c60a0542f0795d1ebca71 /libs/gui | |
parent | 2bd3639d1651cd8aae4ef5e7e9b77fcce729be92 (diff) | |
download | native-d67d2443fc7b65b6d5db0dcdad8978979ac61aec.tar.gz |
IGBP: Address inconsistent flatten/unflatten for QueueBufferInput
Conversion.cpp uses flatten/unflatten to convert between
::IGraphicBufferProducer::QueueBufferInput and
::hardware::graphics::bufferqueue::V1_0::IGraphicBufferProducer::QueueBufferInput.
But because those 2 classes have different definitions, add the code to
handle them.
Test: libgui_test
Bug: 192439037
Change-Id: Ief0ece787912da981de273da89c9247798f83bf3
Diffstat (limited to 'libs/gui')
-rw-r--r-- | libs/gui/bufferqueue/1.0/Conversion.cpp | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/libs/gui/bufferqueue/1.0/Conversion.cpp b/libs/gui/bufferqueue/1.0/Conversion.cpp index 3e20a37d54..55462c3b1f 100644 --- a/libs/gui/bufferqueue/1.0/Conversion.cpp +++ b/libs/gui/bufferqueue/1.0/Conversion.cpp @@ -1187,14 +1187,15 @@ bool convertTo(::android::Region* l, Region const& t) { */ constexpr size_t minFlattenedSize( HGraphicBufferProducer::QueueBufferInput const& /* t */) { - return sizeof(int64_t) + // timestamp - sizeof(int) + // isAutoTimestamp + return sizeof(int64_t) + // timestamp + sizeof(int) + // isAutoTimestamp sizeof(android_dataspace) + // dataSpace - sizeof(::android::Rect) + // crop - sizeof(int) + // scalingMode - sizeof(uint32_t) + // transform - sizeof(uint32_t) + // stickyTransform - sizeof(bool); // getFrameTimestamps + sizeof(::android::Rect) + // crop + sizeof(int) + // scalingMode + sizeof(uint32_t) + // transform + sizeof(uint32_t) + // stickyTransform + sizeof(bool) + // getFrameTimestamps + sizeof(int); // slot } /** @@ -1267,6 +1268,7 @@ status_t flatten(HGraphicBufferProducer::QueueBufferInput const& t, return status; } FlattenableUtils::write(buffer, size, decltype(HdrMetadata::validTypes)(0)); + FlattenableUtils::write(buffer, size, -1 /*slot*/); return NO_ERROR; } @@ -1319,7 +1321,7 @@ status_t unflatten( if (status != NO_ERROR) { return status; } - // HdrMetadata ignored + // HdrMetadata and slot ignored return unflatten(&(t->surfaceDamage), buffer, size); } |