Merge "Add stride query"

This commit is contained in:
John Reck
2023-01-06 19:38:30 +00:00
committed by Gerrit Code Review
5 changed files with 32 additions and 2 deletions

View File

@@ -18,13 +18,17 @@ package android.hardware.graphics.allocator;
import android.hardware.common.NativeHandle;
/**
/**
* Result of an IAllocator::allocate call.
*
* @sa +ndk libnativewindow#AHardwareBuffer_Desc
*/
@VintfStability
parcelable AllocationResult {
/**
* The number of pixels between two consecutive rows of an allocated buffer, when the concept
* of consecutive rows is defined. Otherwise, it has no meaning.
*/
int stride;
NativeHandle[] buffers;
}
}

View File

@@ -58,4 +58,5 @@ enum StandardMetadataType {
CTA861_3 = 20,
SMPTE2094_40 = 21,
SMPTE2094_10 = 22,
STRIDE = 23,
}

View File

@@ -368,4 +368,17 @@ enum StandardMetadataType {
* If this is unset when encoded into a byte stream, the byte stream is empty.
*/
SMPTE2094_10 = 22,
/**
* Can be used to get the stride in pixels of the buffer allocation. This is the number of
* pixels between two consecutive rows of an allocated buffer, when the concept of consecutive
* rows is defined. Otherwise, it has no meaning.
*
* Must match the value returned in android.hardware.graphics.allocator.AllocationResult#stride
*
* This is required metadata in mapper5 and should be read-only.
*
* The metadata type is a uint32_t.
*/
STRIDE = 23,
}

View File

@@ -563,6 +563,7 @@ DEFINE_TYPE(SMPTE2086, std::optional<Smpte2086>);
DEFINE_TYPE(CTA861_3, std::optional<Cta861_3>);
DEFINE_TYPE(SMPTE2094_10, std::optional<std::vector<uint8_t>>);
DEFINE_TYPE(SMPTE2094_40, std::optional<std::vector<uint8_t>>);
DEFINE_TYPE(STRIDE, uint32_t);
#undef DEFINE_TYPE

View File

@@ -1557,6 +1557,16 @@ TEST_P(GraphicsMapperStableCTests, GetSmpte2094_40) {
}
}
TEST_P(GraphicsMapperStableCTests, GetStride) {
auto buffer = allocateGeneric();
ASSERT_TRUE(buffer);
auto bufferHandle = buffer->import();
ASSERT_TRUE(bufferHandle);
auto value = getStandardMetadata<StandardMetadataType::STRIDE>(*bufferHandle);
ASSERT_TRUE(value.has_value());
EXPECT_EQ(buffer->stride(), *value);
}
TEST_P(GraphicsMapperStableCTests, SupportsRequiredGettersSetters) {
auto buffer = allocateGeneric();
ASSERT_TRUE(buffer);
@@ -1587,6 +1597,7 @@ TEST_P(GraphicsMapperStableCTests, SupportsRequiredGettersSetters) {
StandardMetadataType::BLEND_MODE,
StandardMetadataType::SMPTE2086,
StandardMetadataType::CTA861_3,
StandardMetadataType::STRIDE,
};
std::vector<StandardMetadataType> requiredSetters = {