[FFmpeg-devel] [PATCH] fate: Add regression tests for AVDOVIDecoderConfigurationRecord side data
quietvoid
tcchlisop0 at gmail.com
Tue Dec 14 17:33:06 EET 2021
On Fri, Nov 26, 2021 at 12:06 PM quietvoid <tcchlisop0 at gmail.com> wrote:
>
> Signed-off-by: quietvoid <tcChlisop0 at gmail.com>
> ---
> Files are available here: https://drive.google.com/drive/folders/1NDhtSoJ-mP5Yi62V6j1wjjPJNq84nP3J
>
> They're all blank frames encoded with x265, remuxed with FFmpeg
> after the mov box is added by dlb_mp4base.
>
> Let me know if the hosting is not appropriate.
> I thought it was better than zipping everything.
> ---
> tests/fate/mov.mak | 17 ++++++++
> tests/fate/mpegts.mak | 2 +
> tests/ref/fate/mov-dovi-config-profile5 | 13 ++++++
> tests/ref/fate/mov-dovi-config-profile7 | 15 +++++++
> tests/ref/fate/mov-dovi-config-profile81 | 13 ++++++
> tests/ref/fate/mov-dovi-config-profile84 | 22 ++++++++++
> tests/ref/fate/mov-dovi-write-config | 49 ++++++++++++++++++++++
> tests/ref/fate/mpegts-dovi-config-profile7 | 15 +++++++
> 8 files changed, 146 insertions(+)
> create mode 100644 tests/ref/fate/mov-dovi-config-profile5
> create mode 100644 tests/ref/fate/mov-dovi-config-profile7
> create mode 100644 tests/ref/fate/mov-dovi-config-profile81
> create mode 100644 tests/ref/fate/mov-dovi-config-profile84
> create mode 100644 tests/ref/fate/mov-dovi-write-config
> create mode 100644 tests/ref/fate/mpegts-dovi-config-profile7
>
> diff --git a/tests/fate/mov.mak b/tests/fate/mov.mak
> index 5ca992e181..8ef7cb1edf 100644
> --- a/tests/fate/mov.mak
> +++ b/tests/fate/mov.mak
> @@ -145,6 +145,23 @@ FATE_MOV_FFMPEG_FFPROBE-$(call ALLYES, FILE_PROTOCOL PIPE_PROTOCOL \
> += fate-mov-mp4-disposition-mpegts-remux
> fate-mov-mp4-disposition-mpegts-remux: CMD = transcode mpegts $(TARGET_SAMPLES)/mpegts/pmtchange.ts mp4 "-map 0:1 -map 0:2 -c copy -disposition:a:0 +hearing_impaired" "-map 0 -c copy" "" "-of json -show_entries stream_disposition:stream=index"
>
> +# Tests for AVDOVIDecoderConfigurationRecord parsing in mov
> +FATE_MOV_FFMPEG_FFPROBE-$(call DEMDEC, MOV) \
> + += fate-mov-dovi-config-profile5 \
> + fate-mov-dovi-config-profile7 \
> + fate-mov-dovi-config-profile81 \
> + fate-mov-dovi-config-profile84
> +fate-mov-dovi-config-profile5: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_entries stream_side_data_list -select_streams v -v 0 $(TARGET_SAMPLES)/mov/dovi-p5.mp4
> +fate-mov-dovi-config-profile7: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_entries stream_side_data_list -select_streams v -v 0 $(TARGET_SAMPLES)/mov/dovi-p7.mp4
> +fate-mov-dovi-config-profile81: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_entries stream_side_data_list -select_streams v -v 0 $(TARGET_SAMPLES)/mov/dovi-p81.mp4
> +fate-mov-dovi-config-profile84: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_entries stream_side_data_list -select_streams v -v 0 $(TARGET_SAMPLES)/hevc/dv84.mov
> +
> +FATE_MOV_FFMPEG_FFPROBE-$(call ALLYES, FILE_PROTOCOL PIPE_PROTOCOL \
> + MPEGTS_DEMUXER MOV_DEMUXER \
> + MP4_MUXER FRAMECRC_MUXER) \
> + += fate-mov-dovi-write-config
> +fate-mov-dovi-write-config: CMD = transcode mpegts $(TARGET_SAMPLES)/mpegts/dovi-p7.ts mp4 "-map 0:0 -map 0:1 -c copy -strict unofficial" "-map 0 -c copy" "" "-show_entries stream_side_data_list -select_streams v -v 0"
> +
> FATE_SAMPLES_FFMPEG_FFPROBE += $(FATE_MOV_FFMPEG_FFPROBE-yes)
>
> fate-mov: $(FATE_MOV) $(FATE_MOV_FFPROBE) $(FATE_MOV_FASTSTART) $(FATE_MOV_FFMPEG_FFPROBE-yes)
> diff --git a/tests/fate/mpegts.mak b/tests/fate/mpegts.mak
> index bbcbfc47b2..1ee44ff2a0 100644
> --- a/tests/fate/mpegts.mak
> +++ b/tests/fate/mpegts.mak
> @@ -19,6 +19,8 @@ FATE_MPEGTS_PROBE-$(call DEMDEC, MPEGTS) += fate-mpegts-probe-pmt-merge
> fate-mpegts-probe-pmt-merge: SRC = $(TARGET_SAMPLES)/mpegts/pmtchange.ts
> fate-mpegts-probe-pmt-merge: CMD = run $(PROBE_CODEC_NAME_COMMAND) -merge_pmt_versions 1 -i "$(SRC)"
>
> +FATE_MPEGTS_PROBE-$(call DEMDEC, MPEGTS) += fate-mpegts-dovi-config-profile7
> +fate-mpegts-dovi-config-profile7: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_entries stream_side_data_list -select_streams v -v 0 $(TARGET_SAMPLES)/mpegts/dovi-p7.ts
>
> FATE_SAMPLES_FFPROBE += $(FATE_MPEGTS_PROBE-yes)
>
> diff --git a/tests/ref/fate/mov-dovi-config-profile5 b/tests/ref/fate/mov-dovi-config-profile5
> new file mode 100644
> index 0000000000..a27976b71a
> --- /dev/null
> +++ b/tests/ref/fate/mov-dovi-config-profile5
> @@ -0,0 +1,13 @@
> +[STREAM]
> +[SIDE_DATA]
> +side_data_type=DOVI configuration record
> +dv_version_major=1
> +dv_version_minor=0
> +dv_profile=5
> +dv_level=4
> +rpu_present_flag=1
> +el_present_flag=0
> +bl_present_flag=1
> +dv_bl_signal_compatibility_id=0
> +[/SIDE_DATA]
> +[/STREAM]
> diff --git a/tests/ref/fate/mov-dovi-config-profile7 b/tests/ref/fate/mov-dovi-config-profile7
> new file mode 100644
> index 0000000000..1d8a4b6828
> --- /dev/null
> +++ b/tests/ref/fate/mov-dovi-config-profile7
> @@ -0,0 +1,15 @@
> +[STREAM]
> +[/STREAM]
> +[STREAM]
> +[SIDE_DATA]
> +side_data_type=DOVI configuration record
> +dv_version_major=1
> +dv_version_minor=0
> +dv_profile=7
> +dv_level=4
> +rpu_present_flag=1
> +el_present_flag=1
> +bl_present_flag=0
> +dv_bl_signal_compatibility_id=6
> +[/SIDE_DATA]
> +[/STREAM]
> diff --git a/tests/ref/fate/mov-dovi-config-profile81 b/tests/ref/fate/mov-dovi-config-profile81
> new file mode 100644
> index 0000000000..fb9fe549d1
> --- /dev/null
> +++ b/tests/ref/fate/mov-dovi-config-profile81
> @@ -0,0 +1,13 @@
> +[STREAM]
> +[SIDE_DATA]
> +side_data_type=DOVI configuration record
> +dv_version_major=1
> +dv_version_minor=0
> +dv_profile=8
> +dv_level=4
> +rpu_present_flag=1
> +el_present_flag=0
> +bl_present_flag=1
> +dv_bl_signal_compatibility_id=1
> +[/SIDE_DATA]
> +[/STREAM]
> diff --git a/tests/ref/fate/mov-dovi-config-profile84 b/tests/ref/fate/mov-dovi-config-profile84
> new file mode 100644
> index 0000000000..62d1bf2c87
> --- /dev/null
> +++ b/tests/ref/fate/mov-dovi-config-profile84
> @@ -0,0 +1,22 @@
> +[STREAM]
> +[SIDE_DATA]
> +side_data_type=DOVI configuration record
> +dv_version_major=1
> +dv_version_minor=0
> +dv_profile=8
> +dv_level=4
> +rpu_present_flag=1
> +el_present_flag=0
> +bl_present_flag=1
> +dv_bl_signal_compatibility_id=4
> +[/SIDE_DATA]
> +[SIDE_DATA]
> +side_data_type=Display Matrix
> +displaymatrix=
> +00000000: 0 65536 0
> +00000001: -65536 0 0
> +00000002: 70778880 0 1073741824
> +
> +rotation=-90
> +[/SIDE_DATA]
> +[/STREAM]
> diff --git a/tests/ref/fate/mov-dovi-write-config b/tests/ref/fate/mov-dovi-write-config
> new file mode 100644
> index 0000000000..96fa141744
> --- /dev/null
> +++ b/tests/ref/fate/mov-dovi-write-config
> @@ -0,0 +1,49 @@
> +45f55828cac6b733836155eacca44dcc *tests/data/fate/mov-dovi-write-config.mp4
> +8963 tests/data/fate/mov-dovi-write-config.mp4
> +#extradata 0: 116, 0x2b8d1669
> +#extradata 1: 116, 0x2b8d1669
> +#tb 0: 1/90000
> +#media_type 0: video
> +#codec_id 0: hevc
> +#dimensions 0: 1920x1080
> +#sar 0: 0/1
> +#tb 1: 1/90000
> +#media_type 1: video
> +#codec_id 1: hevc
> +#dimensions 1: 1920x1080
> +#sar 1: 0/1
> +0, -7500, 0, 3750, 699, 0x728548f1
> +1, -7500, 0, 3750, 1085, 0xfb2dba82, S=1, 8
> +0, -3750, 15000, 3750, 95, 0xc0312044, F=0x0
> +1, -3750, 15000, 3750, 481, 0xf23f91d5, F=0x0
> +0, 0, 7500, 3750, 99, 0x5e0a2221, F=0x0
> +1, 0, 7500, 3750, 485, 0x5f7b93b2, F=0x0
> +0, 3750, 3750, 3750, 99, 0xe60e208b, F=0x0
> +1, 3750, 3750, 3750, 485, 0x8335921c, F=0x0
> +0, 7500, 11250, 3750, 99, 0xa1e422e1, F=0x0
> +1, 7500, 11250, 3750, 485, 0xc4e49472, F=0x0
> +0, 11250, 30000, 3750, 96, 0xdc762089, F=0x0
> +1, 11250, 30000, 3750, 482, 0x769c921a, F=0x0
> +0, 15000, 22500, 3750, 100, 0x89cd22a0, F=0x0
> +1, 15000, 22500, 3750, 486, 0x4aca9431, F=0x0
> +0, 18750, 18750, 3750, 100, 0x6d4521ff, F=0x0
> +1, 18750, 18750, 3750, 486, 0x3b719390, F=0x0
> +0, 22500, 26250, 3750, 99, 0x92ab22c0, F=0x0
> +1, 22500, 26250, 3750, 485, 0x83e99451, F=0x0
> +0, 26250, 26250, 3750, 95, 0xcd9020bd, F=0x0
> +1, 26250, 26250, 3750, 481, 0x44ec924e, F=0x0
> +[STREAM]
> +[/STREAM]
> +[STREAM]
> +[SIDE_DATA]
> +side_data_type=DOVI configuration record
> +dv_version_major=1
> +dv_version_minor=0
> +dv_profile=7
> +dv_level=4
> +rpu_present_flag=1
> +el_present_flag=1
> +bl_present_flag=0
> +dv_bl_signal_compatibility_id=6
> +[/SIDE_DATA]
> +[/STREAM]
> diff --git a/tests/ref/fate/mpegts-dovi-config-profile7 b/tests/ref/fate/mpegts-dovi-config-profile7
> new file mode 100644
> index 0000000000..1d8a4b6828
> --- /dev/null
> +++ b/tests/ref/fate/mpegts-dovi-config-profile7
> @@ -0,0 +1,15 @@
> +[STREAM]
> +[/STREAM]
> +[STREAM]
> +[SIDE_DATA]
> +side_data_type=DOVI configuration record
> +dv_version_major=1
> +dv_version_minor=0
> +dv_profile=7
> +dv_level=4
> +rpu_present_flag=1
> +el_present_flag=1
> +bl_present_flag=0
> +dv_bl_signal_compatibility_id=6
> +[/SIDE_DATA]
> +[/STREAM]
> --
> 2.34.1
>
Ping. This would be nice to have for this patch set:
https://ffmpeg.org/pipermail/ffmpeg-devel/2021-December/289645.html
More information about the ffmpeg-devel
mailing list