[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