]> git.sesse.net Git - ffmpeg/blob - tests/fate/matroska.mak
avcodec: postpone removal of deprecated codec caps
[ffmpeg] / tests / fate / matroska.mak
1 FATE_MATROSKA-$(call ALLYES, MATROSKA_DEMUXER ZLIB) += fate-matroska-prores-zlib
2 fate-matroska-prores-zlib: CMD = framecrc -i $(TARGET_SAMPLES)/mkv/prores_zlib.mkv -c:v copy
3
4 # This tests that the matroska demuxer correctly adds the icpf header atom
5 # upon demuxing; it also tests bz2 decompression and unknown-length cluster.
6 FATE_MATROSKA-$(call ALLYES, MATROSKA_DEMUXER BZLIB) += fate-matroska-prores-header-insertion-bz2
7 fate-matroska-prores-header-insertion-bz2: CMD = framecrc -i $(TARGET_SAMPLES)/mkv/prores_bz2.mkv -map 0 -c copy
8
9 # This tests that the matroska demuxer supports modifying the colorspace
10 # properties in remuxing (-c:v copy)
11 # It also tests automatic insertion of the vp9_superframe bitstream filter
12 FATE_MATROSKA-$(call DEMMUX, MATROSKA, MATROSKA) += fate-matroska-remux
13 fate-matroska-remux: CMD = md5pipe -i $(TARGET_SAMPLES)/vp9-test-vectors/vp90-2-2pass-akiyo.webm -color_trc 4 -c:v copy -fflags +bitexact -strict -2 -f matroska
14 fate-matroska-remux: CMP = oneline
15 fate-matroska-remux: REF = 26fabd90326e3de4bb6afe1b216ce232
16
17 FATE_MATROSKA-$(call ALLYES, MATROSKA_DEMUXER VORBIS_PARSER) += fate-matroska-xiph-lacing
18 fate-matroska-xiph-lacing: CMD = framecrc -i $(TARGET_SAMPLES)/mkv/xiph_lacing.mka -c:a copy
19
20 # This tests that the Matroska demuxer correctly demuxes WavPack
21 # without CodecPrivate; it also tests zlib compressed WavPack.
22 FATE_MATROSKA-$(call ALLYES, MATROSKA_DEMUXER ZLIB) += fate-matroska-wavpack-missing-codecprivate
23 fate-matroska-wavpack-missing-codecprivate: CMD = framecrc -i $(TARGET_SAMPLES)/mkv/wavpack_missing_codecprivate.mka -c copy
24
25 # This tests that the matroska demuxer supports decompressing
26 # zlib compressed tracks (both the CodecPrivate as well as the actual frames).
27 FATE_MATROSKA-$(call ALLYES, MATROSKA_DEMUXER ZLIB) += fate-matroska-zlib-decompression
28 fate-matroska-zlib-decompression: CMD = framecrc -i $(TARGET_SAMPLES)/mkv/subtitle_zlib.mks -c:s copy
29
30 # This tests that the matroska demuxer can decompress lzo compressed tracks.
31 FATE_MATROSKA-$(call ALLYES, MATROSKA_DEMUXER LZO) += fate-matroska-lzo-decompression
32 fate-matroska-lzo-decompression: CMD = framecrc -i $(TARGET_SAMPLES)/mkv/lzo.mka -c copy
33
34 # This tests that the matroska demuxer correctly propagates
35 # the channel layout contained in vorbis comments in the CodecPrivate
36 # of flac tracks. It also tests header removal compression.
37 FATE_MATROSKA-$(call ALLYES, MATROSKA_DEMUXER FLAC_PARSER) += fate-matroska-flac-channel-mapping
38 fate-matroska-flac-channel-mapping: CMD = framecrc -i $(TARGET_SAMPLES)/mkv/flac_channel_layouts.mka -map 0 -c:a copy
39
40 # This tests that the Matroska muxer writes the channel layout
41 # of FLAC tracks as a Vorbis comment in the CodecPrivate if necessary
42 # and that FLAC extradata is correctly updated when a packet
43 # with sidedata containing new extradata is encountered.
44 # Furthermore it tests everything the matroska-flac-channel-mapping test
45 # tests and it also tests the FLAC decoder and encoder, in particular
46 # the latter's ability to send updated extradata.
47 FATE_MATROSKA-$(call ALLYES, FLAC_DECODER FLAC_ENCODER FLAC_PARSER \
48                 MATROSKA_DEMUXER MATROSKA_MUXER) += fate-matroska-flac-extradata-update
49 fate-matroska-flac-extradata-update: CMD = transcode matroska $(TARGET_SAMPLES)/mkv/flac_channel_layouts.mka \
50                                            matroska "-map 0 -map 0:0 -c flac -frames:a:2 8" "-map 0 -c copy"
51
52 # This test tests demuxing Vorbis and chapters from ogg and muxing it in and
53 # demuxing it from Matroska/WebM. It furthermore tests the WebM muxer, in
54 # particular its DASH mode. Finally, it tests writing the Cues at the front.
55 FATE_MATROSKA_FFMPEG_FFPROBE-$(call ALLYES, MATROSKA_DEMUXER OGG_DEMUXER  \
56                                  VORBIS_DECODER VORBIS_PARSER WEBM_MUXER) \
57                                += fate-webm-dash-chapters
58 fate-webm-dash-chapters: CMD = transcode ogg $(TARGET_SAMPLES)/vorbis/vorbis_chapter_extension_demo.ogg webm "-c copy -cluster_time_limit 1500 -dash 1 -dash_track_number 124 -reserve_index_space 400" "-c copy -t 0.5" "" -show_chapters
59
60 # The input file has a Block whose payload has a size of zero before reversing
61 # header removal compression; it furthermore uses chained SeekHeads and has
62 # level 1-elements after the Cluster. This is tested on the demuxer's side.
63 # For the muxer this tests that it can correctly write huge TrackNumbers and
64 # that it can expand the Cues element's length field by one byte if necessary.
65 # It furthermore tests correct propagation of the description tag.
66 FATE_MATROSKA_FFMPEG_FFPROBE-$(call DEMMUX, MATROSKA, MATROSKA) \
67                                += fate-matroska-zero-length-block
68 fate-matroska-zero-length-block: CMD = transcode matroska $(TARGET_SAMPLES)/mkv/zero_length_block.mks matroska "-c:s copy -dash 1 -dash_track_number 2000000000 -reserve_index_space 62 -metadata_header_padding 1" "-c:s copy" "" "-show_entries stream_tags=description"
69
70 # This test the following features of the Matroska muxer: Writing projection
71 # stream side-data; not setting any track to default if the user requested it;
72 # and modifying and writing colorspace properties.
73 FATE_MATROSKA_FFMPEG_FFPROBE-$(call ALLYES, MATROSKA_DEMUXER MATROSKA_MUXER \
74                                             H264_DECODER H264_PARSER) \
75                                += fate-matroska-spherical-mono-remux
76 fate-matroska-spherical-mono-remux: CMD = transcode matroska $(TARGET_SAMPLES)/mkv/spherical.mkv matroska "-map 0 -map 0 -c copy -disposition:0 -default+forced -disposition:1 -default -default_mode passthrough -color_primaries:1 bt709 -color_trc:1 smpte170m -colorspace:1 bt2020c -color_range:1 pc"  "-map 0 -c copy -t 0" "" "-show_entries stream_side_data_list:stream_disposition=default,forced:stream=color_range,color_space,color_primaries,color_transfer"
77
78 # The input file of the following test contains Content Light Level as well as
79 # Mastering Display Metadata and so this test tests correct muxing and demuxing
80 # of these. It furthermore also tests that this data is correctly propagated
81 # when reencoding (here to ffv1).
82 # Both input audio tracks are completely zero, so the noise bsf is used
83 # to make this test interesting.
84 FATE_MATROSKA_FFMPEG_FFPROBE-$(call ALLYES, FILE_PROTOCOL MXF_DEMUXER        \
85                                             PRORES_DECODER PCM_S24LE_DECODER \
86                                             FFV1_ENCODER ARESAMPLE_FILTER    \
87                                             PCM_S16BE_ENCODER NOISE_BSF      \
88                                             MATROSKA_MUXER MATROSKA_DEMUXER  \
89                                             FRAMECRC_MUXER PIPE_PROTOCOL)    \
90                                += fate-matroska-mastering-display-metadata
91 fate-matroska-mastering-display-metadata: CMD = transcode mxf $(TARGET_SAMPLES)/mxf/Meridian-Apple_ProResProxy-HDR10.mxf matroska "-map 0 -map 0:0 -c:v:0 copy -c:v:1 ffv1 -c:a:0 copy -bsf:a:0 noise=amount=3 -filter:a:1 aresample -c:a:1 pcm_s16be -bsf:a:1 noise=dropamount=4" "-map 0 -c copy" "" "-show_entries stream_side_data_list:stream=index,codec_name"
92
93 # This test tests remuxing annex B H.264 into Matroska. It also tests writing
94 # the correct interlaced flags and overriding the sample aspect ratio, leading
95 # to anamorphic video. Given that the input file has lots of filler material,
96 # the h264_metadata filter is used to remove it as well as the H.264 AUD.
97 # The video is decoded twice to show that this did not change the decoded
98 # output. Furthermore, this also tests writing PCM with bitdepth 32.
99 FATE_MATROSKA_FFMPEG_FFPROBE-$(call ALLYES, FILE_PROTOCOL MPEGTS_DEMUXER       \
100                                             H264_PARSER MPEGAUDIO_PARSER       \
101                                             EXTRACT_EXTRADATA_BSF MP2_DECODER  \
102                                             H264_METADATA_BSF ARESAMPLE_FILTER \
103                                             RAWVIDEO_ENCODER PCM_S32LE_ENCODER \
104                                             PCM_S32BE_ENCODER MATROSKA_MUXER   \
105                                             MATROSKA_DEMUXER H264_DECODER      \
106                                             FRAMECRC_MUXER PIPE_PROTOCOL)      \
107                                += fate-matroska-h264-remux
108 fate-matroska-h264-remux: CMD = transcode mpegts $(TARGET_SAMPLES)/h264/h264_intra_first-small.ts matroska "-map 0:0 -map 0 -c:v copy -sar:0 3:4 -bsf:v:1 h264_metadata=aud=remove:delete_filler=1 -disposition:v +hearing_impaired -af aresample -c:a:0 pcm_s32le -c:a:1 pcm_s32be -disposition:a:0 original -metadata:s:a:0 title=swedish_silence -metadata:s:a:1 title=norwegian_silence -disposition:a:1 dub" "-map 0:v" "" "-show_entries stream=index,codec_name:stream_tags=title,language"
109
110 # Tests writing BlockAdditional and BlockGroups with ReferenceBlock elements;
111 # it also tests setting a track as suitable for hearing impaired.
112 # It also tests the capability of the VP8 parser to set the keyframe flag
113 # (the input file lacks ReferenceBlock elements making everything a keyframe).
114 FATE_MATROSKA_FFMPEG_FFPROBE-$(call ALLYES, FILE_PROTOCOL MATROSKA_DEMUXER \
115                                             VP8_PARSER MATROSKA_MUXER      \
116                                             FRAMECRC_MUXER PIPE_PROTOCOL)  \
117                                += fate-matroska-vp8-alpha-remux
118 fate-matroska-vp8-alpha-remux: CMD = transcode matroska $(TARGET_SAMPLES)/vp8_alpha/vp8_video_with_alpha.webm matroska "-c copy -disposition +hearing_impaired -cluster_size_limit 100000" "-c copy -t 0.2" "" "-show_entries stream_disposition:stream_side_data_list"
119
120 # The audio stream to be remuxed here has AV_DISPOSITION_VISUAL_IMPAIRED.
121 FATE_MATROSKA_FFMPEG_FFPROBE-$(call ALLYES, FILE_PROTOCOL MPEGTS_DEMUXER    \
122                                             AC3_DECODER MATROSKA_MUXER      \
123                                             MATROSKA_DEMUXER FRAMECRC_MUXER \
124                                             PIPE_PROTOCOL)                  \
125                                += fate-matroska-mpegts-remux
126 fate-matroska-mpegts-remux: CMD = transcode mpegts $(TARGET_SAMPLES)/mpegts/pmtchange.ts matroska "-map 0:2 -map 0:2 -c copy -disposition:a:1 -visual_impaired+hearing_impaired" "-map 0 -c copy" "" "-show_entries stream_disposition:stream=index"
127
128 FATE_MATROSKA_FFPROBE-$(call ALLYES, MATROSKA_DEMUXER) += fate-matroska-spherical-mono
129 fate-matroska-spherical-mono: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_entries stream_side_data_list -select_streams v -v 0 $(TARGET_SAMPLES)/mkv/spherical.mkv
130
131 # The following test tests the various flavours of WebVTT in WebM.
132 # It also tests that dispositions not supported by WebM are not written
133 # (and therefore lost). It moreover tests that the muxer writes CuePoints
134 # with multiple CueTrackPositions if the timestamps coincide.
135 FATE_MATROSKA_FFMPEG_FFPROBE-$(call ALLYES, FILE_PROTOCOL WEBVTT_DEMUXER  \
136                                             WEBM_MUXER MATROSKA_DEMUXER   \
137                                             FRAMECRC_MUXER PIPE_PROTOCOL) \
138                                += fate-webm-webvtt-remux
139 fate-webm-webvtt-remux: CMD = transcode webvtt $(TARGET_SAMPLES)/sub/WebVTT_capability_tester.vtt webm "-map 0 -map 0 -map 0 -map 0 -c:s copy -disposition:0 original+descriptions+hearing_impaired -disposition:1 lyrics+default+metadata -disposition:2 comment+forced -disposition:3 karaoke+captions+dub" "-map 0:0 -map 0:1 -c copy" "" "-show_entries stream_disposition:stream=index,codec_name"
140
141 FATE_SAMPLES_AVCONV += $(FATE_MATROSKA-yes)
142 FATE_SAMPLES_FFPROBE += $(FATE_MATROSKA_FFPROBE-yes)
143 FATE_SAMPLES_FFMPEG_FFPROBE += $(FATE_MATROSKA_FFMPEG_FFPROBE-yes)
144
145 fate-matroska: $(FATE_MATROSKA-yes) $(FATE_MATROSKA_FFPROBE-yes) $(FATE_MATROSKA_FFMPEG_FFPROBE-yes)