[FFmpeg-devel] [PATCH v2] fate: Add regression tests for AVDOVIDecoderConfigurationRecord side data

quietvoid tcchlisop0 at gmail.com
Sat Jan 1 18:46:47 EET 2022


Signed-off-by: quietvoid <tcChlisop0 at gmail.com>
---
Files are available here (in a zip): https://0x0.st/osvi.zip
Alternatively: 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.

MP4 files should be moved to fate-suite/mov.
MPEGTS file into fate-suite/mpegts.
---
 tests/fate/mov.mak                         | 16 +++++++
 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, 145 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 e956380909..26f62bf156 100644
--- a/tests/fate/mov.mak
+++ b/tests/fate/mov.mak
@@ -30,6 +30,10 @@ FATE_MOV_FFPROBE = fate-mov-neg-firstpts-discard \
                    fate-mov-guess-delay-3 \
                    fate-mov-mp4-with-mov-in24-ver \
                    fate-mov-mp4-extended-atom \
+                   fate-mov-dovi-config-profile5 \
+                   fate-mov-dovi-config-profile7 \
+                   fate-mov-dovi-config-profile81 \
+                   fate-mov-dovi-config-profile84 \
 
 FATE_MOV_FASTSTART = fate-mov-faststart-4gb-overflow \
 
@@ -126,6 +130,12 @@ fate-mov-mp4-with-mov-in24-ver: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_entr
 
 fate-mov-mp4-extended-atom: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_packets -print_format compact -select_streams v $(TARGET_SAMPLES)/mov/extended_atom_size_probe
 
+# ffprobe tests for AVDOVIDecoderConfigurationRecord parsing in mov
+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 MOV_DEMUXER MJPEG_DECODER \
                                        SCALE_FILTER PNG_ENCODER PNG_DECODER    \
                                        MP4_MUXER FRAMECRC_MUXER PIPE_PROTOCOL) \
@@ -145,6 +155,12 @@ 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"
 
+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



More information about the ffmpeg-devel mailing list