This is an automated email from the git hooks/post-receive script.

Git pushed a commit to branch master
in repository ffmpeg.

commit 8c86d82703ae40ee514fc0fba19c521573495ece
Author:     Romain Beauxis <[email protected]>
AuthorDate: Wed Apr 22 09:52:36 2026 -0500
Commit:     toots <[email protected]>
CommitDate: Sat May 30 17:37:28 2026 +0000

    fate: add tests for Dolby Vision Profile 7 hvcE preservation
    
    Tests covering demux and remux of DV P7 dual-layer content with both
    dvcC and hvcE BlockAdditionMapping/box across MP4 and Matroska.
---
 tests/fate/matroska.mak                      | 16 ++++++++++++++++
 tests/fate/mov.mak                           | 14 ++++++++++++++
 tests/ref/fate/matroska-dovi-hvce-mkv-read   | 14 ++++++++++++++
 tests/ref/fate/matroska-dovi-hvce-mkv-to-mkv | 23 +++++++++++++++++++++++
 tests/ref/fate/matroska-dovi-hvce-mp4-to-mkv | 23 +++++++++++++++++++++++
 tests/ref/fate/mov-dovi-hvce-mkv-to-mp4      | 23 +++++++++++++++++++++++
 tests/ref/fate/mov-dovi-hvce-mp4-read        | 14 ++++++++++++++
 tests/ref/fate/mov-dovi-hvce-mp4-to-mp4      | 23 +++++++++++++++++++++++
 8 files changed, 150 insertions(+)

diff --git a/tests/fate/matroska.mak b/tests/fate/matroska.mak
index 90e3db3217..ca659eec18 100644
--- a/tests/fate/matroska.mak
+++ b/tests/fate/matroska.mak
@@ -122,6 +122,19 @@ FATE_MATROSKA_FFMPEG_FFPROBE-$(call REMUX, MATROSKA, 
MOV_DEMUXER     \
                                += fate-matroska-dovi-write-config8
 fate-matroska-dovi-write-config8: CMD = transcode mov 
$(TARGET_SAMPLES)/hevc/dv84.mov matroska "-c copy" "-map 0 -c copy -t 0.4" 
"-show_entries stream_side_data_list -select_streams v"
 
+# These tests check that Dolby Vision Profile 7 dual-layer content is correctly
+# handled: both the dvcC BlockAdditionMapping and the hvcE BlockAdditionMapping
+# (carrying the enhancement-layer HEVCDecoderConfigurationRecord) must survive
+# remux. Two source formats are tested: MP4 (hvcE box) and Matroska (hvcE
+# BlockAdditionMapping).
+FATE_MATROSKA_FFMPEG_FFPROBE-$(call REMUX, MATROSKA, MOV_DEMUXER HEVC_DECODER) 
\
+                               += fate-matroska-dovi-hvce-mp4-to-mkv
+fate-matroska-dovi-hvce-mp4-to-mkv: CMD = transcode mov 
$(TARGET_SAMPLES)/mov/dovi-p7-hvce.mp4 matroska "-map 0 -c copy" "-map 0 -c 
copy" "-show_entries stream_side_data_list -select_streams v"
+
+FATE_MATROSKA_FFMPEG_FFPROBE-$(call REMUX, MATROSKA, MATROSKA_DEMUXER 
HEVC_DECODER) \
+                               += fate-matroska-dovi-hvce-mkv-to-mkv
+fate-matroska-dovi-hvce-mkv-to-mkv: CMD = transcode matroska 
$(TARGET_SAMPLES)/mkv/dovi-p7-hvce.mkv matroska "-map 0 -c copy" "-map 0 -c 
copy" "-show_entries stream_side_data_list -select_streams v"
+
 # This tests the scenario like tickets #4536, #5784 where
 # the first packet (with the overall lowest dts) is a video packet,
 # whereas an audio packet to be muxed later has the overall lowest pts
@@ -275,6 +288,9 @@ FATE_MATROSKA_FFMPEG_FFPROBE-$(call REMUX, MATROSKA, 
VP9_DECODER VP9_PARSER) \
                                += fate-matroska-hdr10-plus-remux
 fate-matroska-hdr10-plus-remux: CMD = transcode webm 
$(TARGET_SAMPLES)/mkv/hdr10_plus_vp9_sample.webm matroska "-map 0 -c:v copy" 
"-map 0 -c:v copy" "-show_packets"
 
+FATE_MATROSKA_FFPROBE-$(call ALLYES, MATROSKA_DEMUXER HEVC_DECODER) += 
fate-matroska-dovi-hvce-mkv-read
+fate-matroska-dovi-hvce-mkv-read: CMD = run ffprobe$(PROGSSUF)$(EXESUF) 
-show_entries stream_side_data_list -select_streams v -v 0 
$(TARGET_SAMPLES)/mkv/dovi-p7-hvce.mkv
+
 fate-matroska-side-data-pref-codec: CMD = run ffprobe$(PROGSSUF)$(EXESUF) 
$(TARGET_SAMPLES)/mkv/hdr10tags-both.mkv \
     -select_streams v:0 -show_streams -show_frames -show_entries 
stream=stream_side_data:frame=frame_side_data_list
 fate-matroska-side-data-pref-packet: CMD = run ffprobe$(PROGSSUF)$(EXESUF) 
$(TARGET_SAMPLES)/mkv/hdr10tags-both.mkv \
diff --git a/tests/fate/mov.mak b/tests/fate/mov.mak
index b1af00db7d..e28a231e1e 100644
--- a/tests/fate/mov.mak
+++ b/tests/fate/mov.mak
@@ -41,6 +41,8 @@ FATE_MOV_FFPROBE-$(call FRAMEMD5, MOV, H264, H264_PARSER) += 
fate-mov-neg-firstp
 
 FATE_MOV_FFPROBE-$(call FRAMEMD5, MOV, MPEG4, H264_PARSER) += 
fate-mov-mp4-extended-atom \
 
+FATE_MOV_FFPROBE-$(call DEMDEC, MOV, HEVC) += fate-mov-dovi-hvce-mp4-read
+
 FATE_MOV_FASTSTART = fate-mov-faststart-4gb-overflow \
 
 FATE_SAMPLES_FFMPEG += $(FATE_MOV-yes) $(FATE_MOV_REMUX-yes)
@@ -143,6 +145,8 @@ fate-mov-read-amve: CMD = run ffprobe$(PROGSSUF)$(EXESUF) 
-show_entries stream_s
 
 fate-mov-spherical-mono: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_entries 
stream_side_data_list -select_streams v -v 0 $(TARGET_SAMPLES)/mov/spherical.mov
 
+fate-mov-dovi-hvce-mp4-read: CMD = run ffprobe$(PROGSSUF)$(EXESUF) 
-show_entries stream_side_data_list -select_streams v -v 0 
$(TARGET_SAMPLES)/mov/dovi-p7-hvce.mp4
+
 fate-mov-gpmf-remux: CMD = md5 -i 
$(TARGET_SAMPLES)/mov/fake-gp-media-with-real-gpmf.mp4 -map 0 -c copy -fflags 
+bitexact -f mp4
 fate-mov-gpmf-remux: CMP = oneline
 fate-mov-gpmf-remux: REF = 6361cf3c2b9e6962c2eafbda138125f4
@@ -255,6 +259,16 @@ FATE_MOV_FFMPEG_FFPROBE_SAMPLES-$(call REMUX, MP4 MOV, 
H264_DECODER) \
                           += fate-mov-write-amve
 fate-mov-write-amve: CMD = transcode mov $(TARGET_SAMPLES)/mov/amve.mov mp4 
"-c:v copy" "-c:v copy -t 0.5" "-show_entries stream_side_data_list"
 
+# These tests check that Dolby Vision Profile 7 dual-layer content with an
+# hvcE (enhancement-layer HEVC configuration) is preserved on MP4 remux.
+FATE_MOV_FFMPEG_FFPROBE_SAMPLES-$(call REMUX, MP4 MOV, HEVC_DECODER) \
+                          += fate-mov-dovi-hvce-mp4-to-mp4
+fate-mov-dovi-hvce-mp4-to-mp4: CMD = transcode mov 
$(TARGET_SAMPLES)/mov/dovi-p7-hvce.mp4 mp4 "-map 0 -c copy -strict unofficial" 
"-map 0 -c copy" "-show_entries stream_side_data_list -select_streams v"
+
+FATE_MOV_FFMPEG_FFPROBE_SAMPLES-$(call REMUX, MP4 MOV, MATROSKA_DEMUXER 
HEVC_DECODER) \
+                          += fate-mov-dovi-hvce-mkv-to-mp4
+fate-mov-dovi-hvce-mkv-to-mp4: CMD = transcode matroska 
$(TARGET_SAMPLES)/mkv/dovi-p7-hvce.mkv mp4 "-map 0 -c copy -strict unofficial" 
"-map 0 -c copy" "-show_entries stream_side_data_list -select_streams v"
+
 FATE_SAMPLES_FFMPEG_FFPROBE += $(FATE_MOV_FFMPEG_FFPROBE_SAMPLES-yes)
 FATE_SAMPLES_FFMPEG += $(FATE_MOV_FFMPEG_SAMPLES-yes)
 
diff --git a/tests/ref/fate/matroska-dovi-hvce-mkv-read 
b/tests/ref/fate/matroska-dovi-hvce-mkv-read
new file mode 100644
index 0000000000..cc826b8f81
--- /dev/null
+++ b/tests/ref/fate/matroska-dovi-hvce-mkv-read
@@ -0,0 +1,14 @@
+[STREAM]
+[SIDE_DATA]
+side_data_type=DOVI configuration record
+dv_version_major=1
+dv_version_minor=0
+dv_profile=7
+dv_level=6
+rpu_present_flag=1
+el_present_flag=1
+bl_present_flag=1
+dv_bl_signal_compatibility_id=6
+dv_md_compression=none
+[/SIDE_DATA]
+[/STREAM]
diff --git a/tests/ref/fate/matroska-dovi-hvce-mkv-to-mkv 
b/tests/ref/fate/matroska-dovi-hvce-mkv-to-mkv
new file mode 100644
index 0000000000..3d4555a6a5
--- /dev/null
+++ b/tests/ref/fate/matroska-dovi-hvce-mkv-to-mkv
@@ -0,0 +1,23 @@
+c956733710b9d1d439c766d5ef8f27d9 
*tests/data/fate/matroska-dovi-hvce-mkv-to-mkv.matroska
+667960 tests/data/fate/matroska-dovi-hvce-mkv-to-mkv.matroska
+#extradata 0:      187, 0x34a930cb
+#tb 0: 1/1000
+#media_type 0: video
+#codec_id 0: hevc
+#dimensions 0: 3840x2160
+#sar 0: 1/1
+0,       -125,          0,       41,   666936, 0x27d831d4
+[STREAM]
+[SIDE_DATA]
+side_data_type=DOVI configuration record
+dv_version_major=1
+dv_version_minor=0
+dv_profile=7
+dv_level=6
+rpu_present_flag=1
+el_present_flag=1
+bl_present_flag=1
+dv_bl_signal_compatibility_id=6
+dv_md_compression=none
+[/SIDE_DATA]
+[/STREAM]
diff --git a/tests/ref/fate/matroska-dovi-hvce-mp4-to-mkv 
b/tests/ref/fate/matroska-dovi-hvce-mp4-to-mkv
new file mode 100644
index 0000000000..32efaee7fd
--- /dev/null
+++ b/tests/ref/fate/matroska-dovi-hvce-mp4-to-mkv
@@ -0,0 +1,23 @@
+c2144d96764e79e0b449431b0b19a585 
*tests/data/fate/matroska-dovi-hvce-mp4-to-mkv.matroska
+667808 tests/data/fate/matroska-dovi-hvce-mp4-to-mkv.matroska
+#extradata 0:      187, 0x34a930cb
+#tb 0: 1/1000
+#media_type 0: video
+#codec_id 0: hevc
+#dimensions 0: 3840x2160
+#sar 0: 1/1
+0,       -123,          0,       41,   666936, 0x27d831d4
+[STREAM]
+[SIDE_DATA]
+side_data_type=DOVI configuration record
+dv_version_major=1
+dv_version_minor=0
+dv_profile=7
+dv_level=6
+rpu_present_flag=1
+el_present_flag=1
+bl_present_flag=1
+dv_bl_signal_compatibility_id=6
+dv_md_compression=none
+[/SIDE_DATA]
+[/STREAM]
diff --git a/tests/ref/fate/mov-dovi-hvce-mkv-to-mp4 
b/tests/ref/fate/mov-dovi-hvce-mkv-to-mp4
new file mode 100644
index 0000000000..7189621216
--- /dev/null
+++ b/tests/ref/fate/mov-dovi-hvce-mkv-to-mp4
@@ -0,0 +1,23 @@
+cf2732a0d8f93e0a8695c1a1c7979b01 *tests/data/fate/mov-dovi-hvce-mkv-to-mp4.mp4
+667954 tests/data/fate/mov-dovi-hvce-mkv-to-mp4.mp4
+#extradata 0:      187, 0x34a930cb
+#tb 0: 1/16000
+#media_type 0: video
+#codec_id 0: hevc
+#dimensions 0: 3840x2160
+#sar 0: 1/1
+0,      -2000,          0,      656,   666936, 0x27d831d4
+[STREAM]
+[SIDE_DATA]
+side_data_type=DOVI configuration record
+dv_version_major=1
+dv_version_minor=0
+dv_profile=7
+dv_level=6
+rpu_present_flag=1
+el_present_flag=1
+bl_present_flag=1
+dv_bl_signal_compatibility_id=6
+dv_md_compression=none
+[/SIDE_DATA]
+[/STREAM]
diff --git a/tests/ref/fate/mov-dovi-hvce-mp4-read 
b/tests/ref/fate/mov-dovi-hvce-mp4-read
new file mode 100644
index 0000000000..cc826b8f81
--- /dev/null
+++ b/tests/ref/fate/mov-dovi-hvce-mp4-read
@@ -0,0 +1,14 @@
+[STREAM]
+[SIDE_DATA]
+side_data_type=DOVI configuration record
+dv_version_major=1
+dv_version_minor=0
+dv_profile=7
+dv_level=6
+rpu_present_flag=1
+el_present_flag=1
+bl_present_flag=1
+dv_bl_signal_compatibility_id=6
+dv_md_compression=none
+[/SIDE_DATA]
+[/STREAM]
diff --git a/tests/ref/fate/mov-dovi-hvce-mp4-to-mp4 
b/tests/ref/fate/mov-dovi-hvce-mp4-to-mp4
new file mode 100644
index 0000000000..babd7ba02e
--- /dev/null
+++ b/tests/ref/fate/mov-dovi-hvce-mp4-to-mp4
@@ -0,0 +1,23 @@
+cf2732a0d8f93e0a8695c1a1c7979b01 *tests/data/fate/mov-dovi-hvce-mp4-to-mp4.mp4
+667954 tests/data/fate/mov-dovi-hvce-mp4-to-mp4.mp4
+#extradata 0:      187, 0x34a930cb
+#tb 0: 1/16000
+#media_type 0: video
+#codec_id 0: hevc
+#dimensions 0: 3840x2160
+#sar 0: 1/1
+0,      -2000,          0,      656,   666936, 0x27d831d4
+[STREAM]
+[SIDE_DATA]
+side_data_type=DOVI configuration record
+dv_version_major=1
+dv_version_minor=0
+dv_profile=7
+dv_level=6
+rpu_present_flag=1
+el_present_flag=1
+bl_present_flag=1
+dv_bl_signal_compatibility_id=6
+dv_md_compression=none
+[/SIDE_DATA]
+[/STREAM]

_______________________________________________
ffmpeg-cvslog mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to