| #include "third_party/googletest/src/googletest/include/gtest/gtest.h" |
| |
| #include "aom/aom_codec.h" |
| #include "aom/internal/aom_image_internal.h" |
| #include "aom_scale/yv12config.h" |
| |
| TEST(MetadataMemoryHandlingTest, MetadataAllocation) { |
| uint8_t data[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; |
| aom_metadata_t *metadata = |
| aom_img_metadata_alloc(OBU_METADATA_TYPE_ITUT_T35, data, 10); |
| ASSERT_NE(metadata, nullptr); |
| EXPECT_EQ(aom_img_metadata_free(metadata), 0); |
| } |
| |
| TEST(MetadataMemoryHandlingTest, MetadataArrayAllocation) { |
| uint8_t data[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; |
| aom_metadata_array_t *metadata_array = aom_img_metadata_array_alloc(2); |
| ASSERT_NE(metadata_array, nullptr); |
| |
| metadata_array->metadata_array[0] = |
| aom_img_metadata_alloc(OBU_METADATA_TYPE_ITUT_T35, data, 10); |
| metadata_array->metadata_array[1] = |
| aom_img_metadata_alloc(OBU_METADATA_TYPE_ITUT_T35, data, 10); |
| |
| EXPECT_EQ(aom_img_metadata_array_free(metadata_array), 2u); |
| } |
| |
| TEST(MetadataMemoryHandlingTest, AddMetadataToImage) { |
| aom_image_t image; |
| image.metadata = NULL; |
| |
| uint8_t data[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; |
| ASSERT_EQ(aom_img_add_metadata(&image, OBU_METADATA_TYPE_ITUT_T35, data, 10), |
| 0); |
| EXPECT_EQ(aom_img_metadata_array_free(image.metadata), 1u); |
| EXPECT_EQ(aom_img_add_metadata(NULL, OBU_METADATA_TYPE_ITUT_T35, data, 10), |
| -1); |
| } |
| |
| TEST(MetadataMemoryHandlingTest, RemoveMetadataFromImage) { |
| aom_image_t image; |
| image.metadata = NULL; |
| |
| uint8_t data[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; |
| |
| ASSERT_EQ(aom_img_add_metadata(&image, OBU_METADATA_TYPE_ITUT_T35, data, 10), |
| 0); |
| EXPECT_EQ(aom_img_remove_metadata(&image), 1u); |
| EXPECT_EQ(aom_img_remove_metadata(NULL), 0u); |
| } |
| |
| TEST(MetadataMemoryHandlingTest, CopyMetadataToFrameBUffer) { |
| YV12_BUFFER_CONFIG yvBuf; |
| yvBuf.metadata = NULL; |
| uint8_t data[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; |
| |
| aom_metadata_array_t *metadata_array = aom_img_metadata_array_alloc(1); |
| ASSERT_NE(metadata_array, nullptr); |
| |
| metadata_array->metadata_array[0] = |
| aom_img_metadata_alloc(OBU_METADATA_TYPE_ITUT_T35, data, 10); |
| |
| // Metadata_array |
| int status = aom_copy_metadata_to_frame_buffer(&yvBuf, metadata_array); |
| EXPECT_EQ(status, 0); |
| status = aom_copy_metadata_to_frame_buffer(NULL, metadata_array); |
| EXPECT_EQ(status, -1); |
| EXPECT_EQ(aom_img_metadata_array_free(metadata_array), 1u); |
| |
| // Metadata_array_2 |
| aom_metadata_array_t *metadata_array_2 = aom_img_metadata_array_alloc(0); |
| ASSERT_NE(metadata_array_2, nullptr); |
| status = aom_copy_metadata_to_frame_buffer(&yvBuf, metadata_array_2); |
| EXPECT_EQ(status, -1); |
| EXPECT_EQ(aom_img_metadata_array_free(metadata_array_2), 0u); |
| |
| // YV12_BUFFER_CONFIG |
| status = aom_copy_metadata_to_frame_buffer(&yvBuf, NULL); |
| EXPECT_EQ(status, -1); |
| EXPECT_EQ(aom_remove_metadata_from_frame_buffer(NULL), 0u); |
| EXPECT_EQ(aom_remove_metadata_from_frame_buffer(&yvBuf), 1u); |
| } |