[FFmpeg-devel] [PATCH] Add new test for libavutil/mastering_display_metadata
Petru Rares Sincraian
psincraian at outlook.com
Wed Mar 23 15:37:31 CET 2016
If I understand well you want me to do a test that given a multimedia file test if it loads works ok. If so how can I get a simple multimedia file?
I see this tests more like a unitary tests. In my opinion, test if loading/storing to AVFrame need to be done in AVFrame.
Thanks :)
________________________________________
From: ffmpeg-devel <ffmpeg-devel-bounces at ffmpeg.org> on behalf of Michael Niedermayer <michael at niedermayer.cc>
Sent: Tuesday, March 22, 2016 4:17 PM
To: FFmpeg development discussions and patches
Subject: Re: [FFmpeg-devel] [PATCH] Add new test for libavutil/mastering_display_metadata
On Tue, Mar 22, 2016 at 01:30:11PM +0000, Petru Rares Sincraian wrote:
>
> Hi there,
>
> I added a set of tests for libavutil/mastering_display_metadata module. I attached the patch in this message.
>
>
> Thanks,
> Petru Rares.
> 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 | 1
> 5 files changed, 74 insertions(+), 1 deletion(-)
> 3125db1eb98ac3ad3393e88613a90af79ae812b1 0001-Add-selftest-to-libavutil-mastering_display_metadata.patch
> From 1e502305f098c9aef852e19e91ddee831cc5ebaf Mon Sep 17 00:00:00 2001
> From: Petru Rares Sincraian <psincraian at 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;
> + }
i think to test side data handling the code should extract and display
it based on a sample multimedia file, like using ffprobe.
thats also more generic and can work with any side data case
that would also test if storing and loading sidedata to a AVFrame
works
This test here seems very specific, testing adding one specific type
of sidedata to a struct and retrieving it again.
If sidedata store/load would be tested, all should likely be tested
but then that should already be tested by testing some media file
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
If a bugfix only changes things apparently unrelated to the bug with no
further explanation, that is a good sign that the bugfix is wrong.
More information about the ffmpeg-devel
mailing list