[FFmpeg-devel] [PATCH 03/17] fate/mxf: Add tests for H.264 remuxing
Andreas Rheinhardt
andreas.rheinhardt at outlook.com
Tue Nov 9 20:01:41 EET 2021
These tests exhibit two bugs: Instead of using the in-band extradata
the demuxer makes up some extradata designed for AVC intra tracks
that lack in-band extradata; these files are nevertheless decodable
because of the in-band extradata. Furthermore, the frame reordering
is lost.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
---
tests/fate/mxf.mak | 22 ++++++++++-
tests/ref/fate/mxf-remux-h264 | 37 ++++++++++++++++++
tests/ref/fate/mxf-remux-xavc | 71 +++++++++++++++++++++++++++++++++++
3 files changed, 128 insertions(+), 2 deletions(-)
create mode 100644 tests/ref/fate/mxf-remux-h264
create mode 100644 tests/ref/fate/mxf-remux-xavc
diff --git a/tests/fate/mxf.mak b/tests/fate/mxf.mak
index f96f4a429b..58a697cd86 100644
--- a/tests/fate/mxf.mak
+++ b/tests/fate/mxf.mak
@@ -42,6 +42,21 @@ FATE_MXF_REMUX_PROBE-$(call ALLYES, PRORES_DECODER MXF_MUXER) \
+= fate-mxf-remux-applehdr10
fate-mxf-remux-applehdr10: CMD = transcode mxf $(TARGET_SAMPLES)/mxf/Meridian-Apple_ProResProxy-HDR10.mxf mxf "-map 0 -c copy" "-c copy -t 0.3" "" "-show_entries format_tags:stream_side_data_list:stream=index,codec_name,codec_tag:stream_tags"
+# Tests muxing H.264, in particular automatic insertion of h264_mp4toannexb.
+# FIXME: The timestamps of the demuxed file are not properly reordered.
+# Furthermore the extradata is wrong: It is one of the AVC intra SPS/PPS;
+# decoding only works due to in-band extradata.
+FATE_MXF_REMUX-$(call ALLYES, MOV_DEMUXER H264_MP4TOANNEXB_BSF \
+ MXF_MUXER H264_PARSER H264_DECODER \
+ RAWVIDEO_ENCODER) += fate-mxf-remux-h264
+fate-mxf-remux-h264: CMD = transcode mov $(TARGET_SAMPLES)/mov/spherical.mov mxf "-c copy" "-map 0 -map 0 -c:v:1 copy -frames:v 12"
+
+# Tests remuxing H.264 and data streams.
+# The same FIXME as for mxf-remux-h264 applies.
+FATE_MXF_REMUX-$(call ALLYES, MXF_MUXER H264_PARSER H264_DECODER) \
+ += fate-mxf-remux-xavc
+fate-mxf-remux-xavc: CMD = transcode mxf $(TARGET_SAMPLES)/h264/SonyXAVC_LongGOP_green_pixelation_early_Frames.MXF mxf "-map 0 -c copy" "-map 0 -c copy"
+
FATE_MXF_REEL_NAME-$(call ENCDEC2, MPEG2VIDEO, PCM_S16LE, MXF) += fate-mxf-reel_name
fate-mxf-reel_name: $(SAMPLES)/mxf/Sony-00001.mxf
fate-mxf-reel_name: CMD = md5 -y -i $(TARGET_SAMPLES)/mxf/Sony-00001.mxf -c copy -timecode 00:00:00:00 -metadata "reel_name=test_reel" -fflags +bitexact -f mxf
@@ -64,10 +79,13 @@ FATE_MXF-$(CONFIG_MXF_DEMUXER) += $(FATE_MXF)
FATE_MXF_FFMPEG_FFPROBE-$(call ALLYES, FILE_PROTOCOL MXF_DEMUXER \
PIPE_PROTOCOL FRAMECRC_MUXER) \
+= $(FATE_MXF_REMUX_PROBE-yes)
+FATE_MXF_FFMPEG-$(call ALLYES, FILE_PROTOCOL MXF_DEMUXER \
+ PIPE_PROTOCOL FRAMECRC_MUXER) \
+ += $(FATE_MXF_REMUX-yes)
-FATE_SAMPLES_AVCONV += $(FATE_MXF-yes) $(FATE_MXF_REEL_NAME-yes)
+FATE_SAMPLES_AVCONV += $(FATE_MXF-yes) $(FATE_MXF_REEL_NAME-yes) $(FATE_MXF_FFMPEG-yes)
FATE_SAMPLES_AVCONV += $(FATE_MXF_USER_COMMENTS-yes) $(FATE_MXF_OPATOM_USER_COMMENTS-yes)
FATE_SAMPLES_FFMPEG_FFPROBE += $(FATE_MXF_FFMPEG_FFPROBE-yes)
FATE_SAMPLES_FFPROBE += $(FATE_MXF_PROBE-yes)
-fate-mxf: $(FATE_MXF-yes) $(FATE_MXF_PROBE-yes) $(FATE_MXF_REEL_NAME-yes) $(FATE_MXF_USER_COMMENTS-yes) $(FATE_MXF_FFMPEG_FFPROBE-yes) $(FATE_MXF_OPATOM_USER_COMMENTS-yes)
+fate-mxf: $(FATE_MXF-yes) $(FATE_MXF_PROBE-yes) $(FATE_MXF_REEL_NAME-yes) $(FATE_MXF_USER_COMMENTS-yes) $(FATE_MXF_FFMPEG-yes) $(FATE_MXF_FFMPEG_FFPROBE-yes) $(FATE_MXF_OPATOM_USER_COMMENTS-yes)
diff --git a/tests/ref/fate/mxf-remux-h264 b/tests/ref/fate/mxf-remux-h264
new file mode 100644
index 0000000000..49ce4324c4
--- /dev/null
+++ b/tests/ref/fate/mxf-remux-h264
@@ -0,0 +1,37 @@
+a06741f1a308fa0bd755b206d93639d2 *tests/data/fate/mxf-remux-h264.mxf
+201273 tests/data/fate/mxf-remux-h264.mxf
+#extradata 1: 81, 0x98411475
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 1920x1080
+#sar 0: 1/1
+#tb 1: 1/25
+#media_type 1: video
+#codec_id 1: h264
+#dimensions 1: 1920x1080
+#sar 1: 1/1
+0, 0, 0, 1, 6220800, 0x6a771857
+1, 0, 0, 1, 69157, 0xd6ff5c4d
+1, 1, 1, 1, 1103, 0xb8e00551, F=0x0
+1, 2, 2, 1, 141, 0x49232f95, F=0x0
+0, 3, 3, 1, 6220800, 0x92aa1963
+1, 3, 3, 1, 131, 0xe01928c0, F=0x0
+0, 4, 4, 1, 6220800, 0x906014d8
+1, 4, 4, 1, 69, 0xdf5506bc, F=0x0
+0, 5, 5, 1, 6220800, 0xa67a179e
+1, 5, 5, 1, 424, 0x408cb97b, F=0x0
+0, 6, 6, 1, 6220800, 0xcf7e1148
+1, 6, 6, 1, 83, 0x5aa5118a, F=0x0
+0, 7, 7, 1, 6220800, 0xd2b623ab
+1, 7, 7, 1, 70, 0x39ec0a38, F=0x0
+0, 8, 8, 1, 6220800, 0x97f51b81
+1, 8, 8, 1, 71, 0x55290a92, F=0x0
+0, 9, 9, 1, 6220800, 0x53e01e46
+1, 9, 9, 1, 149, 0x42683340, F=0x0
+0, 10, 10, 1, 6220800, 0xd4d0de99
+1, 10, 10, 1, 78, 0xad8a0c29, F=0x0
+0, 11, 11, 1, 6220800, 0x6f18e3e4
+1, 11, 11, 1, 72, 0x8c1c0caf, F=0x0
+0, 12, 12, 1, 6220800, 0xcfbbe357
+0, 13, 13, 1, 6220800, 0x70cfe436
diff --git a/tests/ref/fate/mxf-remux-xavc b/tests/ref/fate/mxf-remux-xavc
new file mode 100644
index 0000000000..7b221208e5
--- /dev/null
+++ b/tests/ref/fate/mxf-remux-xavc
@@ -0,0 +1,71 @@
+d0fea4450c0f7c51b0af3631025dfa90 *tests/data/fate/mxf-remux-xavc.mxf
+1436217 tests/data/fate/mxf-remux-xavc.mxf
+#extradata 0: 97, 0xe2f818c1
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: h264
+#dimensions 0: 1920x1080
+#sar 0: 1/1
+#tb 1: 1/48000
+#media_type 1: audio
+#codec_id 1: pcm_s24le
+#sample_rate 1: 48000
+#channel_layout 1: 4
+#channel_layout_name 1: mono
+#tb 2: 1/48000
+#media_type 2: audio
+#codec_id 2: pcm_s24le
+#sample_rate 2: 48000
+#channel_layout 2: 4
+#channel_layout_name 2: mono
+#tb 3: 1/48000
+#media_type 3: audio
+#codec_id 3: pcm_s24le
+#sample_rate 3: 48000
+#channel_layout 3: 4
+#channel_layout_name 3: mono
+#tb 4: 1/48000
+#media_type 4: audio
+#codec_id 4: pcm_s24le
+#sample_rate 4: 48000
+#channel_layout 4: 4
+#channel_layout_name 4: mono
+#tb 5: 1/25
+#media_type 5: data
+#codec_id 5: none
+0, 0, 0, 1, 553248, 0xbda0217f
+1, 0, 0, 1920, 5760, 0xd5894ac8
+2, 0, 0, 1920, 5760, 0x86314faa
+3, 0, 0, 1920, 5760, 0x00000000
+4, 0, 0, 1920, 5760, 0x00000000
+5, 0, 0, 1, 150, 0xc6f20c7f
+0, 1, 1, 1, 119985, 0x6ba5546e, F=0x0
+1, 1920, 1920, 1920, 5760, 0x9f71829c
+2, 1920, 1920, 1920, 5760, 0x38049906
+3, 1920, 1920, 1920, 5760, 0x00000000
+4, 1920, 1920, 1920, 5760, 0x00000000
+5, 1, 1, 1, 150, 0xc6f20c7f
+0, 2, 2, 1, 98815, 0xe47762ff, F=0x0
+0, 2, 3, 1, 257022, 0xd0647527, F=0x0
+1, 3840, 3840, 1920, 5760, 0xf7245421
+2, 3840, 3840, 1920, 5760, 0x5cd058b0
+3, 3840, 3840, 1920, 5760, 0x00000000
+4, 3840, 3840, 1920, 5760, 0x00000000
+5, 2, 2, 1, 150, 0xc6f20c7f
+1, 5760, 5760, 1920, 5760, 0x3cef69d8
+2, 5760, 5760, 1920, 5760, 0x176daa39
+3, 5760, 5760, 1920, 5760, 0x00000000
+4, 5760, 5760, 1920, 5760, 0x00000000
+5, 3, 3, 1, 150, 0xc6f20c7f
+0, 4, 4, 1, 123833, 0xff7b324e, F=0x0
+1, 7680, 7680, 1920, 5760, 0x6b647758
+2, 7680, 7680, 1920, 5760, 0xbf6f69de
+3, 7680, 7680, 1920, 5760, 0x00000000
+4, 7680, 7680, 1920, 5760, 0x00000000
+5, 4, 4, 1, 150, 0xc6f20c7f
+0, 5, 5, 1, 117099, 0x7d6aac45, F=0x0
+1, 9600, 9600, 1920, 5760, 0x0958976a
+2, 9600, 9600, 1920, 5760, 0xe3957d5e
+3, 9600, 9600, 1920, 5760, 0x00000000
+4, 9600, 9600, 1920, 5760, 0x00000000
+5, 5, 5, 1, 150, 0xc6f20c7f
--
2.30.2
More information about the ffmpeg-devel
mailing list