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]
