summaryrefslogtreecommitdiff
path: root/libs/gui
diff options
context:
space:
mode:
authorShuzhen Wang <shuzhenwang@google.com>2021-07-01 12:42:06 -0700
committerShuzhen Wang <shuzhenwang@google.com>2021-07-01 21:18:28 +0000
commitd67d2443fc7b65b6d5db0dcdad8978979ac61aec (patch)
tree903494365ead6259d95c60a0542f0795d1ebca71 /libs/gui
parent2bd3639d1651cd8aae4ef5e7e9b77fcce729be92 (diff)
downloadnative-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.cpp18
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);
}