blob: 59581c0c20dca7bb7867ac5db376eb543550d9c4 [file] [log] [blame]
#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);
}