Hi there, I added a set of tests for libavutil/mastering_display_metadata module. I attached the patch in this message.
Thanks, Petru Rares.
From 1e502305f098c9aef852e19e91ddee831cc5ebaf Mon Sep 17 00:00:00 2001 From: Petru Rares Sincraian <psincra...@outlook.com> Date: Tue, 22 Mar 2016 11:39:08 +0100 Subject: [PATCH] Add selftest to libavutil/mastering_display_metadata This commit adds tests for functions of libavutil/mastering_display_metadata.c --- libavutil/Makefile | 1 + libavutil/mastering_display_metadata.c | 68 +++++++++++++++++++++++++++++++ libavutil/mastering_display_metadata.h | 1 + tests/fate/libavutil.mak | 4 ++ tests/ref/fate/mastering_display_metadata | 0 5 files changed, 74 insertions(+) create mode 100644 tests/ref/fate/mastering_display_metadata diff --git a/libavutil/Makefile b/libavutil/Makefile index 58df75a..3d89335 100644 --- a/libavutil/Makefile +++ b/libavutil/Makefile @@ -198,6 +198,7 @@ TESTPROGS = adler32 \ parseutils \ pixdesc \ pixelutils \ + mastering_display_metadata \ random_seed \ rational \ ripemd \ diff --git a/libavutil/mastering_display_metadata.c b/libavutil/mastering_display_metadata.c index e1683e5..8c264a2 100644 --- a/libavutil/mastering_display_metadata.c +++ b/libavutil/mastering_display_metadata.c @@ -41,3 +41,71 @@ AVMasteringDisplayMetadata *av_mastering_display_metadata_create_side_data(AVFra return (AVMasteringDisplayMetadata *)side_data->data; } + +#ifdef TEST + +static int check_alloc(void) +{ + int result = 0; + AVMasteringDisplayMetadata *original = av_mastering_display_metadata_alloc(); + + if (original == NULL) { + printf("Failed to allocate display metadata\n"); + result = 1; + } + + if (original) + av_freep(original); + + return result; +} + +static int check_create_side_data(void) +{ + int result = 0; + AVFrame *frame = av_frame_alloc(); + AVMasteringDisplayMetadata *metadata; + AVFrameSideData *side_data; + + if (frame == NULL) { + printf("Failed to allocate frame"); + result = 1; + goto end; + } + + metadata = av_mastering_display_metadata_create_side_data(frame); + if (metadata == NULL) { + printf("Failed to create display metadata frame side data"); + result = 1; + goto end; + } + + side_data = av_frame_get_side_data(frame, AV_FRAME_DATA_MASTERING_DISPLAY_METADATA); + if (side_data == NULL) { + printf("Failed to get frame side data"); + result = 1; + goto end; + } + + if (metadata != (AVMasteringDisplayMetadata *) side_data->data) { + printf("Metadata and frame data are not the same attributes"); + result = 1; + goto end; + } + +end: + if (frame) + av_frame_free(&frame); + + return result; +} + + +int main(void) +{ + int result = check_alloc(); + result = result && check_create_side_data(); + return result; +} + +#endif diff --git a/libavutil/mastering_display_metadata.h b/libavutil/mastering_display_metadata.h index 936533f..aeaa8b3 100644 --- a/libavutil/mastering_display_metadata.h +++ b/libavutil/mastering_display_metadata.h @@ -23,6 +23,7 @@ #include "frame.h" #include "rational.h" +#include "common.h" /** diff --git a/tests/fate/libavutil.mak b/tests/fate/libavutil.mak index 5d8e0e2..773f923 100644 --- a/tests/fate/libavutil.mak +++ b/tests/fate/libavutil.mak @@ -107,6 +107,10 @@ FATE_LIBAVUTIL += fate-ripemd fate-ripemd: libavutil/ripemd-test$(EXESUF) fate-ripemd: CMD = run libavutil/ripemd-test +FATE_LIBAVUTIL += fate-mastering_display_metadata +fate-mastering_display_metadata: libavutil/mastering_display_metadata-test$(EXESUF) +fate-mastering_display_metadata: CMD = run libavutil/mastering_display_metadata-test + FATE_LIBAVUTIL += fate-sha fate-sha: libavutil/sha-test$(EXESUF) fate-sha: CMD = run libavutil/sha-test diff --git a/tests/ref/fate/mastering_display_metadata b/tests/ref/fate/mastering_display_metadata new file mode 100644 index 0000000..e69de29 -- 1.9.1
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel