Loading libs/gralloc/types/Gralloc4.cpp +12 −0 Original line number Diff line number Diff line Loading @@ -1134,6 +1134,18 @@ status_t decodeSmpte2094_40(const hidl_vec<uint8_t>& smpte2094_40, decodeByteVector); } status_t encodeSmpte2094_10(const std::optional<std::vector<uint8_t>>& smpte2094_10, hidl_vec<uint8_t>* outSmpte2094_10) { return encodeOptionalMetadata(MetadataType_Smpte2094_10, smpte2094_10, outSmpte2094_10, encodeByteVector); } status_t decodeSmpte2094_10(const hidl_vec<uint8_t>& smpte2094_10, std::optional<std::vector<uint8_t>>* outSmpte2094_10) { return decodeOptionalMetadata(MetadataType_Smpte2094_10, smpte2094_10, outSmpte2094_10, decodeByteVector); } status_t encodeUint32(const MetadataType& metadataType, uint32_t input, hidl_vec<uint8_t>* output) { return encodeMetadata(metadataType, input, output, encodeInteger); Loading libs/gralloc/types/include/gralloctypes/Gralloc4.h +11 −0 Original line number Diff line number Diff line Loading @@ -134,6 +134,12 @@ static const android::hardware::graphics::mapper::V4_0::IMapper::MetadataType aidl::android::hardware::graphics::common:: StandardMetadataType::SMPTE2094_40)}; static const android::hardware::graphics::mapper::V4_0::IMapper::MetadataType MetadataType_Smpte2094_10 = {GRALLOC4_STANDARD_METADATA_TYPE, static_cast<int64_t>( aidl::android::hardware::graphics::common:: StandardMetadataType::SMPTE2094_10)}; /*---------------------------------------------------------------------------------------------*/ /** Loading Loading @@ -327,6 +333,11 @@ status_t encodeSmpte2094_40(const std::optional<std::vector<uint8_t>>& smpte2094 status_t decodeSmpte2094_40(const android::hardware::hidl_vec<uint8_t>& smpte2094_40, std::optional<std::vector<uint8_t>>* outSmpte2094_40); status_t encodeSmpte2094_10(const std::optional<std::vector<uint8_t>>& smpte2094_10, android::hardware::hidl_vec<uint8_t>* outSmpte2094_10); status_t decodeSmpte2094_10(const android::hardware::hidl_vec<uint8_t>& smpte2094_10, std::optional<std::vector<uint8_t>>* outSmpte2094_10); /** * The functions below can be used to encode and decode vendor metadata types. */ Loading libs/gralloc/types/tests/Gralloc4_test.cpp +28 −0 Original line number Diff line number Diff line Loading @@ -455,6 +455,32 @@ TEST_P(Gralloc4TestSmpte2094_40, Smpte2094_40) { ASSERT_NO_FATAL_FAILURE(testHelperStableAidlTypeOptional(GetParam(), gralloc4::encodeSmpte2094_40, gralloc4::decodeSmpte2094_40)); } class Gralloc4TestSmpte2094_10 : public testing::TestWithParam<std::optional<std::vector<uint8_t>>> {}; INSTANTIATE_TEST_CASE_P( Gralloc4TestSmpte2094_10Params, Gralloc4TestSmpte2094_10, ::testing::Values( std::optional<std::vector<uint8_t>>({}), std::optional<std::vector<uint8_t>>({0, 1, 2, 3, 4, 5, 6, 7, 8, 9}), std::optional<std::vector<uint8_t>>({std::numeric_limits<uint8_t>::min(), std::numeric_limits<uint8_t>::min() + 1, std::numeric_limits<uint8_t>::min() + 2, std::numeric_limits<uint8_t>::min() + 3, std::numeric_limits<uint8_t>::min() + 4}), std::optional<std::vector<uint8_t>>({std::numeric_limits<uint8_t>::max(), std::numeric_limits<uint8_t>::max() - 1, std::numeric_limits<uint8_t>::max() - 2, std::numeric_limits<uint8_t>::max() - 3, std::numeric_limits<uint8_t>::max() - 4}), std::nullopt)); TEST_P(Gralloc4TestSmpte2094_10, Smpte2094_10) { ASSERT_NO_FATAL_FAILURE(testHelperStableAidlTypeOptional(GetParam(), gralloc4::encodeSmpte2094_10, gralloc4::decodeSmpte2094_10)); } class Gralloc4TestBufferDescriptorInfo : public testing::TestWithParam<BufferDescriptorInfo> { }; INSTANTIATE_TEST_CASE_P( Loading Loading @@ -491,6 +517,7 @@ TEST_F(Gralloc4TestErrors, Gralloc4TestEncodeNull) { ASSERT_NE(NO_ERROR, gralloc4::encodeSmpte2086({{}}, nullptr)); ASSERT_NE(NO_ERROR, gralloc4::encodeCta861_3({{}}, nullptr)); ASSERT_NE(NO_ERROR, gralloc4::encodeSmpte2094_40({{}}, nullptr)); ASSERT_NE(NO_ERROR, gralloc4::encodeSmpte2094_10({{}}, nullptr)); } TEST_F(Gralloc4TestErrors, Gralloc4TestDecodeNull) { Loading @@ -516,6 +543,7 @@ TEST_F(Gralloc4TestErrors, Gralloc4TestDecodeNull) { ASSERT_NE(NO_ERROR, gralloc4::decodeSmpte2086(vec, nullptr)); ASSERT_NE(NO_ERROR, gralloc4::decodeCta861_3(vec, nullptr)); ASSERT_NE(NO_ERROR, gralloc4::decodeSmpte2094_40(vec, nullptr)); ASSERT_NE(NO_ERROR, gralloc4::decodeSmpte2094_10(vec, nullptr)); } TEST_F(Gralloc4TestErrors, Gralloc4TestDecodeBadVec) { Loading libs/ui/Gralloc4.cpp +6 −0 Original line number Diff line number Diff line Loading @@ -634,6 +634,12 @@ status_t Gralloc4Mapper::getSmpte2094_40( outSmpte2094_40); } status_t Gralloc4Mapper::getSmpte2094_10( buffer_handle_t bufferHandle, std::optional<std::vector<uint8_t>>* outSmpte2094_10) const { return get(bufferHandle, gralloc4::MetadataType_Smpte2094_10, gralloc4::decodeSmpte2094_10, outSmpte2094_10); } template <class T> status_t Gralloc4Mapper::getDefault(uint32_t width, uint32_t height, PixelFormat format, uint32_t layerCount, uint64_t usage, Loading libs/ui/GraphicBufferMapper.cpp +5 −0 Original line number Diff line number Diff line Loading @@ -301,6 +301,11 @@ status_t GraphicBufferMapper::getSmpte2094_40( return mMapper->getSmpte2094_40(bufferHandle, outSmpte2094_40); } status_t GraphicBufferMapper::getSmpte2094_10( buffer_handle_t bufferHandle, std::optional<std::vector<uint8_t>>* outSmpte2094_10) { return mMapper->getSmpte2094_10(bufferHandle, outSmpte2094_10); } status_t GraphicBufferMapper::getDefaultPixelFormatFourCC(uint32_t width, uint32_t height, PixelFormat format, uint32_t layerCount, uint64_t usage, Loading Loading
libs/gralloc/types/Gralloc4.cpp +12 −0 Original line number Diff line number Diff line Loading @@ -1134,6 +1134,18 @@ status_t decodeSmpte2094_40(const hidl_vec<uint8_t>& smpte2094_40, decodeByteVector); } status_t encodeSmpte2094_10(const std::optional<std::vector<uint8_t>>& smpte2094_10, hidl_vec<uint8_t>* outSmpte2094_10) { return encodeOptionalMetadata(MetadataType_Smpte2094_10, smpte2094_10, outSmpte2094_10, encodeByteVector); } status_t decodeSmpte2094_10(const hidl_vec<uint8_t>& smpte2094_10, std::optional<std::vector<uint8_t>>* outSmpte2094_10) { return decodeOptionalMetadata(MetadataType_Smpte2094_10, smpte2094_10, outSmpte2094_10, decodeByteVector); } status_t encodeUint32(const MetadataType& metadataType, uint32_t input, hidl_vec<uint8_t>* output) { return encodeMetadata(metadataType, input, output, encodeInteger); Loading
libs/gralloc/types/include/gralloctypes/Gralloc4.h +11 −0 Original line number Diff line number Diff line Loading @@ -134,6 +134,12 @@ static const android::hardware::graphics::mapper::V4_0::IMapper::MetadataType aidl::android::hardware::graphics::common:: StandardMetadataType::SMPTE2094_40)}; static const android::hardware::graphics::mapper::V4_0::IMapper::MetadataType MetadataType_Smpte2094_10 = {GRALLOC4_STANDARD_METADATA_TYPE, static_cast<int64_t>( aidl::android::hardware::graphics::common:: StandardMetadataType::SMPTE2094_10)}; /*---------------------------------------------------------------------------------------------*/ /** Loading Loading @@ -327,6 +333,11 @@ status_t encodeSmpte2094_40(const std::optional<std::vector<uint8_t>>& smpte2094 status_t decodeSmpte2094_40(const android::hardware::hidl_vec<uint8_t>& smpte2094_40, std::optional<std::vector<uint8_t>>* outSmpte2094_40); status_t encodeSmpte2094_10(const std::optional<std::vector<uint8_t>>& smpte2094_10, android::hardware::hidl_vec<uint8_t>* outSmpte2094_10); status_t decodeSmpte2094_10(const android::hardware::hidl_vec<uint8_t>& smpte2094_10, std::optional<std::vector<uint8_t>>* outSmpte2094_10); /** * The functions below can be used to encode and decode vendor metadata types. */ Loading
libs/gralloc/types/tests/Gralloc4_test.cpp +28 −0 Original line number Diff line number Diff line Loading @@ -455,6 +455,32 @@ TEST_P(Gralloc4TestSmpte2094_40, Smpte2094_40) { ASSERT_NO_FATAL_FAILURE(testHelperStableAidlTypeOptional(GetParam(), gralloc4::encodeSmpte2094_40, gralloc4::decodeSmpte2094_40)); } class Gralloc4TestSmpte2094_10 : public testing::TestWithParam<std::optional<std::vector<uint8_t>>> {}; INSTANTIATE_TEST_CASE_P( Gralloc4TestSmpte2094_10Params, Gralloc4TestSmpte2094_10, ::testing::Values( std::optional<std::vector<uint8_t>>({}), std::optional<std::vector<uint8_t>>({0, 1, 2, 3, 4, 5, 6, 7, 8, 9}), std::optional<std::vector<uint8_t>>({std::numeric_limits<uint8_t>::min(), std::numeric_limits<uint8_t>::min() + 1, std::numeric_limits<uint8_t>::min() + 2, std::numeric_limits<uint8_t>::min() + 3, std::numeric_limits<uint8_t>::min() + 4}), std::optional<std::vector<uint8_t>>({std::numeric_limits<uint8_t>::max(), std::numeric_limits<uint8_t>::max() - 1, std::numeric_limits<uint8_t>::max() - 2, std::numeric_limits<uint8_t>::max() - 3, std::numeric_limits<uint8_t>::max() - 4}), std::nullopt)); TEST_P(Gralloc4TestSmpte2094_10, Smpte2094_10) { ASSERT_NO_FATAL_FAILURE(testHelperStableAidlTypeOptional(GetParam(), gralloc4::encodeSmpte2094_10, gralloc4::decodeSmpte2094_10)); } class Gralloc4TestBufferDescriptorInfo : public testing::TestWithParam<BufferDescriptorInfo> { }; INSTANTIATE_TEST_CASE_P( Loading Loading @@ -491,6 +517,7 @@ TEST_F(Gralloc4TestErrors, Gralloc4TestEncodeNull) { ASSERT_NE(NO_ERROR, gralloc4::encodeSmpte2086({{}}, nullptr)); ASSERT_NE(NO_ERROR, gralloc4::encodeCta861_3({{}}, nullptr)); ASSERT_NE(NO_ERROR, gralloc4::encodeSmpte2094_40({{}}, nullptr)); ASSERT_NE(NO_ERROR, gralloc4::encodeSmpte2094_10({{}}, nullptr)); } TEST_F(Gralloc4TestErrors, Gralloc4TestDecodeNull) { Loading @@ -516,6 +543,7 @@ TEST_F(Gralloc4TestErrors, Gralloc4TestDecodeNull) { ASSERT_NE(NO_ERROR, gralloc4::decodeSmpte2086(vec, nullptr)); ASSERT_NE(NO_ERROR, gralloc4::decodeCta861_3(vec, nullptr)); ASSERT_NE(NO_ERROR, gralloc4::decodeSmpte2094_40(vec, nullptr)); ASSERT_NE(NO_ERROR, gralloc4::decodeSmpte2094_10(vec, nullptr)); } TEST_F(Gralloc4TestErrors, Gralloc4TestDecodeBadVec) { Loading
libs/ui/Gralloc4.cpp +6 −0 Original line number Diff line number Diff line Loading @@ -634,6 +634,12 @@ status_t Gralloc4Mapper::getSmpte2094_40( outSmpte2094_40); } status_t Gralloc4Mapper::getSmpte2094_10( buffer_handle_t bufferHandle, std::optional<std::vector<uint8_t>>* outSmpte2094_10) const { return get(bufferHandle, gralloc4::MetadataType_Smpte2094_10, gralloc4::decodeSmpte2094_10, outSmpte2094_10); } template <class T> status_t Gralloc4Mapper::getDefault(uint32_t width, uint32_t height, PixelFormat format, uint32_t layerCount, uint64_t usage, Loading
libs/ui/GraphicBufferMapper.cpp +5 −0 Original line number Diff line number Diff line Loading @@ -301,6 +301,11 @@ status_t GraphicBufferMapper::getSmpte2094_40( return mMapper->getSmpte2094_40(bufferHandle, outSmpte2094_40); } status_t GraphicBufferMapper::getSmpte2094_10( buffer_handle_t bufferHandle, std::optional<std::vector<uint8_t>>* outSmpte2094_10) { return mMapper->getSmpte2094_10(bufferHandle, outSmpte2094_10); } status_t GraphicBufferMapper::getDefaultPixelFormatFourCC(uint32_t width, uint32_t height, PixelFormat format, uint32_t layerCount, uint64_t usage, Loading