matroska.mak 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277
  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. # This tests that the matroska demuxer correctly adds the icpf header atom
  4. # upon demuxing; it also tests bz2 decompression and unknown-length cluster.
  5. FATE_MATROSKA-$(call ALLYES, MATROSKA_DEMUXER BZLIB) += fate-matroska-prores-header-insertion-bz2
  6. fate-matroska-prores-header-insertion-bz2: CMD = framecrc -i $(TARGET_SAMPLES)/mkv/prores_bz2.mkv -map 0 -c copy
  7. # This tests that the matroska demuxer supports modifying the colorspace
  8. # properties in remuxing (-c:v copy)
  9. # It also tests automatic insertion of the vp9_superframe bitstream filter
  10. FATE_MATROSKA-$(call DEMMUX, MATROSKA, MATROSKA) += fate-matroska-remux
  11. 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
  12. fate-matroska-remux: CMP = oneline
  13. fate-matroska-remux: REF = b9c7b650349972c9dce42ab79b472917
  14. FATE_MATROSKA-$(call ALLYES, MATROSKA_DEMUXER VORBIS_PARSER) += fate-matroska-xiph-lacing
  15. fate-matroska-xiph-lacing: CMD = framecrc -i $(TARGET_SAMPLES)/mkv/xiph_lacing.mka -c:a copy
  16. # This tests that the Matroska demuxer correctly demuxes WavPack
  17. # without CodecPrivate; it also tests zlib compressed WavPack.
  18. FATE_MATROSKA-$(call ALLYES, MATROSKA_DEMUXER ZLIB) += fate-matroska-wavpack-missing-codecprivate
  19. fate-matroska-wavpack-missing-codecprivate: CMD = framecrc -i $(TARGET_SAMPLES)/mkv/wavpack_missing_codecprivate.mka -c copy
  20. # This tests that the matroska demuxer supports decompressing
  21. # zlib compressed tracks (both the CodecPrivate as well as the actual frames).
  22. FATE_MATROSKA-$(call ALLYES, MATROSKA_DEMUXER ZLIB) += fate-matroska-zlib-decompression
  23. fate-matroska-zlib-decompression: CMD = framecrc -i $(TARGET_SAMPLES)/mkv/subtitle_zlib.mks -c:s copy
  24. # This tests that the matroska demuxer can decompress lzo compressed tracks.
  25. FATE_MATROSKA-$(CONFIG_MATROSKA_DEMUXER) += fate-matroska-lzo-decompression
  26. fate-matroska-lzo-decompression: CMD = framecrc -i $(TARGET_SAMPLES)/mkv/lzo.mka -c copy
  27. # This tests that the ALAC extradata is correctly transformed upon remuxing.
  28. # It also tests setting the AV_DISPOSITION_COMMENT disposition as well as
  29. # writing creation_time metadata.
  30. FATE_MATROSKA_FFMPEG_FFPROBE-$(call REMUX, MATROSKA, MOV_DEMUXER) += fate-matroska-alac-remux
  31. fate-matroska-alac-remux: CMD = transcode mov $(TARGET_SAMPLES)/lossless-audio/inside.m4a matroska "-map 0:a -c copy -metadata creation_time=2009-01-25T16:08:26.000000Z -disposition +comment" "-c copy" "-show_entries format_tags:stream_disposition"
  32. # This tests that the matroska demuxer correctly propagates
  33. # the channel layout contained in vorbis comments in the CodecPrivate
  34. # of flac tracks. It also tests header removal compression.
  35. FATE_MATROSKA-$(call ALLYES, MATROSKA_DEMUXER FLAC_PARSER) += fate-matroska-flac-channel-mapping
  36. fate-matroska-flac-channel-mapping: CMD = framecrc -i $(TARGET_SAMPLES)/mkv/flac_channel_layouts.mka -map 0 -c:a copy
  37. # This tests that the Matroska muxer writes the channel layout
  38. # of FLAC tracks as a Vorbis comment in the CodecPrivate if necessary
  39. # and that FLAC extradata is correctly updated when a packet
  40. # with sidedata containing new extradata is encountered.
  41. # Furthermore it tests everything the matroska-flac-channel-mapping test
  42. # tests and it also tests the FLAC decoder and encoder, in particular
  43. # the latter's ability to send updated extradata.
  44. FATE_MATROSKA-$(call ALLYES, FLAC_DECODER FLAC_ENCODER FLAC_PARSER \
  45. MATROSKA_DEMUXER MATROSKA_MUXER) += fate-matroska-flac-extradata-update
  46. fate-matroska-flac-extradata-update: CMD = transcode matroska $(TARGET_SAMPLES)/mkv/flac_channel_layouts.mka \
  47. matroska "-map 0 -map 0:0 -c flac -frames:a:2 8" "-map 0 -c copy"
  48. # This tests that the Matroska/WebM muxer writes the AV1 CodecPrivate
  49. # via extradata obtained from packet side data. It also tests that
  50. # the aspect ratio is only written with pixels as DisplayUnit for WebM.
  51. FATE_MATROSKA-$(call REMUX, WEBM MATROSKA, IVF_DEMUXER AV1_PARSER EXTRACT_EXTRADATA_BSF) += fate-webm-av1-extradata-update
  52. fate-webm-av1-extradata-update: CMD = transcode ivf $(TARGET_SAMPLES)/av1/decode_model.ivf webm "-c copy -bsf extract_extradata -sar 3:1" "-c copy" "" "" "-nofind_stream_info" "-nofind_stream_info"
  53. # This test tests demuxing Vorbis and chapters from ogg and muxing it in and
  54. # demuxing it from Matroska/WebM. It furthermore tests the WebM muxer, in
  55. # particular its DASH mode. Finally, it tests writing the Cues at the front.
  56. FATE_MATROSKA_FFMPEG_FFPROBE-$(call ALLYES, MATROSKA_DEMUXER OGG_DEMUXER \
  57. VORBIS_DECODER VORBIS_PARSER WEBM_MUXER) \
  58. += fate-webm-dash-chapters
  59. 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
  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 -default_mode infer_no_subs" "-c:s copy" "-show_entries stream_tags=description"
  69. # This mainly tests the Matroska muxer's ability to shift the data
  70. # to create enough free space to write the Cues at the front.
  71. # The metadata_header_padding has been chosen so that three attempts
  72. # to write the Cues are necessary.
  73. # It also tests writing PCM audio in both endiannesses and putting
  74. # Cues with the same timestamp in the same CuePoint as well as
  75. # omitting CRC-32 elements when writing Matroska.
  76. FATE_MATROSKA-$(call TRANSCODE, PCM_S24BE PCM_S24LE, MATROSKA, WAV_DEMUXER) \
  77. += fate-matroska-move-cues-to-front
  78. fate-matroska-move-cues-to-front: CMD = transcode wav $(TARGET_SAMPLES)/audio-reference/divertimenti_2ch_96kHz_s24.wav matroska "-map 0 -map 0 -c:a:0 pcm_s24be -c:a:1 copy -cluster_time_limit 5 -cues_to_front yes -metadata_header_padding 7840 -write_crc32 0" "-map 0 -c copy -t 0.1"
  79. # This test covers the case in which a displaymatrix is not a rotation
  80. # and is therefore ignored by the muxer, i.e. the ffprobe output of
  81. # side data should be empty.
  82. FATE_MATROSKA_FFMPEG_FFPROBE-$(call REMUX, MATROSKA, MOV_DEMUXER H264_PARSER H264_DECODER) \
  83. += fate-matroska-non-rotation-displaymatrix
  84. fate-matroska-non-rotation-displaymatrix: CMD = transcode mov $(TARGET_SAMPLES)/mov/displaymatrix.mov matroska \
  85. "-c copy -frames:v 5" \
  86. "-c copy" \
  87. "-show_entries stream_side_data_list"
  88. # This tests DOVI (reading from MP4 and Matroska and writing to Matroska)
  89. # as well as writing the Cues at the front (by shifting data) if
  90. # the initially reserved amount of space turns out to be insufficient.
  91. FATE_MATROSKA_FFMPEG_FFPROBE-$(call REMUX, MATROSKA, MOV_DEMUXER HEVC_DECODER) \
  92. += fate-matroska-dovi-write-config7
  93. fate-matroska-dovi-write-config7: CMD = transcode mov $(TARGET_SAMPLES)/mov/dovi-p7.mp4 matroska "-map 0 -c copy -cues_to_front yes -reserve_index_space 40 -metadata_header_padding 64339" "-map 0 -c copy" "-show_entries stream_side_data_list"
  94. FATE_MATROSKA_FFMPEG_FFPROBE-$(call REMUX, MATROSKA, MOV_DEMUXER \
  95. HEVC_DECODER AAC_DECODER) \
  96. += fate-matroska-dovi-write-config8
  97. 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"
  98. # This tests the scenario like tickets #4536, #5784 where
  99. # the first packet (with the overall lowest dts) is a video packet,
  100. # whereas an audio packet to be muxed later has the overall lowest pts
  101. # which happens to be negative and therefore needs to be shifted.
  102. # (-ss 1.09 ensures that a video frame has the lowest dts of all packets;
  103. # yet there is an audio packet with the overall lowest pts. output_ts_offset
  104. # makes the pts of the audio packet, but not the leading video packet negative
  105. # so that we run into the above issue.)
  106. FATE_MATROSKA-$(call REMUX, MATROSKA, MPEGTS_DEMUXER MPEGVIDEO_PARSER \
  107. MPEG2VIDEO_DECODER EXTRACT_EXTRADATA_BSF \
  108. MP3FLOAT_DECODER) \
  109. += fate-matroska-avoid-negative-ts
  110. fate-matroska-avoid-negative-ts: CMD = transcode mpegts $(TARGET_SAMPLES)/mpeg2/t.mpg matroska "-c copy -ss 1.09 -output_ts_offset -60ms" "-c copy -t 0.4"
  111. # This tests writing the MS-compatibility modes V_MS/VFW/FOURCC and A_MS/ACM.
  112. # It furthermore tests writing the Cues at the front if the cues_to_front
  113. # option is set and more than enough space has been reserved in advance.
  114. # (Btw: The keyframe flags of the input video stream seem wrong.)
  115. FATE_MATROSKA-$(call REMUX, MATROSKA, AVI_DEMUXER SPEEX_DECODER) += fate-matroska-ms-mode
  116. fate-matroska-ms-mode: CMD = transcode avi $(TARGET_SAMPLES)/vp5/potter512-400-partial.avi matroska "-map 0 -c copy -cues_to_front yes -reserve_index_space 5000" "-map 0 -c copy -t 1"
  117. # This tests Matroska's QT-compatibility mode.
  118. FATE_MATROSKA-$(call REMUX, MATROSKA, MOV_DEMUXER) += fate-matroska-qt-mode
  119. fate-matroska-qt-mode: CMD = transcode mov $(TARGET_SAMPLES)/svq1/marymary-shackles.mov matroska "-c copy" "-c copy -t 3"
  120. # This test the following features of the Matroska muxer: Writing projection
  121. # stream side-data; not setting any track to default if the user requested it;
  122. # and modifying and writing colorspace properties.
  123. FATE_MATROSKA_FFMPEG_FFPROBE-$(call REMUX, MATROSKA, H264_DECODER H264_PARSER) \
  124. += fate-matroska-spherical-mono-remux
  125. 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"
  126. # The input file of the following test contains Content Light Level as well as
  127. # Mastering Display Metadata and so this test tests correct muxing and demuxing
  128. # of these. It furthermore also tests that this data is correctly propagated
  129. # when reencoding (here to ffv1).
  130. # Both input audio tracks are completely zero, so the noise bsf is used
  131. # to make this test interesting.
  132. FATE_MATROSKA_FFMPEG_FFPROBE-$(call TRANSCODE, FFV1 PRORES, MATROSKA, MXF_DEMUXER \
  133. PCM_S24LE_DECODER ARESAMPLE_FILTER \
  134. PCM_S16BE_ENCODER NOISE_BSF) \
  135. += fate-matroska-mastering-display-metadata
  136. 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=amount=-1:drop=-4" "-map 0 -c copy" "-show_entries stream_side_data_list:stream=index,codec_name"
  137. # This test tests remuxing annex B H.264 into Matroska. It also tests writing
  138. # the correct interlaced flags and overriding the sample aspect ratio, leading
  139. # to anamorphic video. Given that the input file has lots of filler material,
  140. # the h264_metadata filter is used to remove it as well as the H.264 AUD.
  141. # The video is decoded twice to show that this did not change the decoded
  142. # output. Furthermore, this also tests writing PCM with bitdepth 32.
  143. FATE_MATROSKA_FFMPEG_FFPROBE-$(call TRANSCODE, PCM_S32LE MP2, MATROSKA, \
  144. MPEGTS_DEMUXER H264_PARSER \
  145. H264_DECODER MPEGAUDIO_PARSER \
  146. EXTRACT_EXTRADATA_BSF \
  147. H264_METADATA_BSF \
  148. ARESAMPLE_FILTER \
  149. PCM_S32BE_ENCODER) \
  150. += fate-matroska-h264-remux
  151. 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"
  152. # Tests writing BlockAdditional and BlockGroups with ReferenceBlock elements;
  153. # it also tests setting a track as suitable for hearing impaired.
  154. # It also tests the capability of the VP8 parser to set the keyframe flag
  155. # (the input file lacks ReferenceBlock elements making everything a keyframe).
  156. FATE_MATROSKA_FFMPEG_FFPROBE-$(call REMUX, MATROSKA, VP8_PARSER) \
  157. += fate-matroska-vp8-alpha-remux
  158. 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"
  159. # The audio stream to be remuxed here has AV_DISPOSITION_VISUAL_IMPAIRED.
  160. FATE_MATROSKA_FFMPEG_FFPROBE-$(call REMUX, MATROSKA, MPEGTS_DEMUXER AC3_DECODER) \
  161. += fate-matroska-mpegts-remux
  162. 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 -default_mode infer" "-map 0 -c copy" "-show_entries stream_disposition:stream=index"
  163. # Tests maintaining codec delay while remuxing from Matroska.
  164. # For some reason, ffmpeg shifts the timestamps of the input file
  165. # to make them zero before reaching the muxer while it does not
  166. # for the ogg-opus-remux test. -avoid_negative_ts make_zero counters this.
  167. FATE_MATROSKA_FFMPEG_FFPROBE-$(call REMUX, MATROSKA, OPUS_PARSER OPUS_DECODER) += fate-matroska-opus-remux
  168. fate-matroska-opus-remux: CMD = transcode matroska $(TARGET_SAMPLES)/mkv/codec_delay_opus.mkv matroska "-avoid_negative_ts make_zero -c copy" "-copyts -c copy" "-show_packets -show_entries stream=codec_name,initial_padding -read_intervals %0.05"
  169. # Tests maintaining codec delay while remuxing from ogg.
  170. FATE_MATROSKA_FFMPEG_FFPROBE-$(call REMUX, MATROSKA, OGG_DEMUXER OPUS_PARSER OPUS_DECODER) += fate-matroska-ogg-opus-remux
  171. fate-matroska-ogg-opus-remux: CMD = transcode ogg $(TARGET_SAMPLES)/ogg/intro-partial.opus matroska "-c copy" "-copyts -c copy" "-show_packets -show_entries stream=codec_name,initial_padding -read_intervals %0.05"
  172. # This tests reencoding with an audio encoder that adds initial padding.
  173. # The initial padding is currently not maintained.
  174. FATE_MATROSKA_FFMPEG_FFPROBE-$(call REMUX, MATROSKA, MXF_DEMUXER PCM_S16LE_DECODER \
  175. MP2FIXED_ENCODER ARESAMPLE_FILTER \
  176. MPEG2VIDEO_DECODER MPEGVIDEO_PARSER \
  177. EXTRACT_EXTRADATA_BSF) += fate-matroska-encoding-delay
  178. fate-matroska-encoding-delay: CMD = transcode mxf $(TARGET_SAMPLES)/mxf/Sony-00001.mxf matroska "-c:v copy -af aresample -c:a mp2fixed" "-copyts -c copy" "-show_packets -show_entries stream=codec_name,initial_padding -read_intervals %0.05"
  179. FATE_MATROSKA-$(call REMUX, MATROSKA, SUP_DEMUXER) += fate-matroska-pgs-remux
  180. fate-matroska-pgs-remux: CMD = transcode sup $(TARGET_SAMPLES)/sub/pgs_sub.sup matroska "-copyts -c:s copy" "-copyts -c:s copy"
  181. # This test uses the setts bsf to derive the duration of every packet
  182. # except the last from the next packet's pts.
  183. FATE_MATROSKA-$(call REMUX, MATROSKA, SUP_DEMUXER PGS_FRAME_MERGE_BSF SETTS_BSF) += fate-matroska-pgs-remux-durations
  184. fate-matroska-pgs-remux-durations: CMD = transcode sup $(TARGET_SAMPLES)/sub/pgs_sub.sup matroska "-copyts -c:s copy -bsf pgs_frame_merge,setts=duration=if(gt(DURATION\,0)\,DURATION\,if(eq(PTS\,NOPTS)\,0\,if(eq(NEXT_PTS\,NOPTS)\,0\,NEXT_PTS-PTS))):pts=PTS" "-copyts -c:s copy"
  185. # This test muxes DVB subtitles twice into Matroska: Once normally
  186. # and once with durations derived via the setts filter. Said filter
  187. # sets the duration for every packet except the last it receives.
  188. # The "-t 20" also tests that the BSF is properly flushed even
  189. # when processing ended due to something else than the input's EOF.
  190. # Notice that the last packet of stream 0 before 20s is present,
  191. # but has no duration (like stream 1).
  192. FATE_MATROSKA-$(call REMUX, MATROSKA, MPEGTS_DEMUXER DVBSUB_PARSER SETTS_BSF) += fate-matroska-dvbsub-remux
  193. fate-matroska-dvbsub-remux: CMD = transcode mpegts $(TARGET_SAMPLES)/sub/dvbsubtest_filter.ts matroska "-map 0:s -map 0:s -t 20 -c copy -bsf:0 setts=duration=if(gt(DURATION\,0)\,DURATION\,if(eq(PTS\,NOPTS)\,0\,if(eq(NEXT_PTS\,NOPTS)\,0\,NEXT_PTS-PTS))):pts=PTS" "-map 0 -c copy"
  194. FATE_MATROSKA_FFPROBE-$(call ALLYES, MATROSKA_DEMUXER) += fate-matroska-spherical-mono
  195. 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
  196. # This test tests the handling of AVStereo3D information, in particular
  197. # the ability to set it via metadata in the muxer (the file itself is
  198. # actually an ordinary file with a single view). It also tests
  199. # correctly writing the display dimensions in the presence of stereo metadata.
  200. # The test also covers reformatting Theora extradata as well as testing
  201. # default_mode infer in the presence of tracks already marked as default.
  202. # It furthermore tests tag languages as well as stream languages,
  203. # in particular in their various forms (e.g. de vs deu vs ger for German)
  204. # and also the language-country code form.
  205. FATE_MATROSKA_FFMPEG_FFPROBE-$(call REMUX, MATROSKA, OGG_DEMUXER THEORA_DECODER) += fate-matroska-stereo_mode
  206. fate-matroska-stereo_mode: CMD = transcode ogg $(TARGET_SAMPLES)/vp3/offset_test.ogv matroska \
  207. "-c copy -write_crc32 0 -default_mode infer \
  208. -map 0 -disposition:s:0 +original+dub -metadata:s:0 language=ger \
  209. -map 0 -metadata:s:1 stereo_mode=left_right -metadata:s:1 language=ger-at -metadata:s:1 description-ger=Deutsch -metadata:s:1 description-fre=Francais \
  210. -map 0 -metadata:s:2 stereo_mode=bottom_top -metadata:s:2 language=eng -metadata:s:2 description-de=Deutsch -metadata:s:2 description-fra=Francais \
  211. -map 0 -metadata:s:3 stereo_mode=row_interleaved_rl -sar:3 3:1 -disposition:3 +default -metadata:s:3 language=deu-at \
  212. -map 0 -metadata:s:4 stereo_mode=col_interleaved_rl -sar:4 16:9 -metadata:s:4 language=fre -metadata:s:4 description-deu-at=Oesterreichisch \
  213. -map 0 -metadata:s:5 stereo_mode=anaglyph_cyan_red -sar:5 16:9 -disposition:5 +default -metadata:s:5 language=fra \
  214. -map 0 -metadata:s:6 stereo_mode=12 -sar:6 2:1 -metadata:s:6 language=de -metadata:s:6 description-deu=Deutsch" \
  215. "-map 0 -c copy" \
  216. "-show_entries stream_disposition=default,original,dub:stream_tags:stream_side_data_list"
  217. # The following test tests the various flavours of WebVTT in WebM.
  218. # It also tests that dispositions not supported by WebM are not written
  219. # (and therefore lost). It moreover tests that the muxer writes CuePoints
  220. # with multiple CueTrackPositions if the timestamps coincide.
  221. FATE_MATROSKA_FFMPEG_FFPROBE-$(call REMUX, WEBM MATROSKA, WEBVTT_DEMUXER) \
  222. += fate-webm-webvtt-remux
  223. 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:packet=stream_index,pts:packet_side_data_list -show_data_hash CRC32"
  224. FATE_MATROSKA_FFMPEG_FFPROBE-$(call REMUX, WEBM MATROSKA, VP9_PARSER) \
  225. += fate-webm-hdr10-plus-remux
  226. fate-webm-hdr10-plus-remux: CMD = transcode webm $(TARGET_SAMPLES)/mkv/hdr10_plus_vp9_sample.webm webm "-map 0 -c:v copy" "-map 0 -c:v copy" "-show_packets"
  227. FATE_MATROSKA_FFMPEG_FFPROBE-$(call REMUX, MATROSKA, VP9_PARSER) \
  228. += fate-matroska-hdr10-plus-remux
  229. 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"
  230. fate-matroska-side-data-pref-codec: CMD = run ffprobe$(PROGSSUF)$(EXESUF) $(TARGET_SAMPLES)/mkv/hdr10tags-both.mkv \
  231. -select_streams v:0 -show_streams -show_frames -show_entries stream=stream_side_data:frame=frame_side_data_list
  232. fate-matroska-side-data-pref-packet: CMD = run ffprobe$(PROGSSUF)$(EXESUF) $(TARGET_SAMPLES)/mkv/hdr10tags-both.mkv \
  233. -select_streams v:0 -show_streams -show_frames -show_entries stream=stream_side_data:frame=frame_side_data_list -side_data_prefer_packet mastering_display_metadata,content_light_level
  234. FATE_MATROSKA_FFPROBE-$(call ALLYES, MATROSKA_DEMUXER HEVC_DECODER) += fate-matroska-side-data-pref-codec fate-matroska-side-data-pref-packet
  235. FATE_SAMPLES_AVCONV += $(FATE_MATROSKA-yes)
  236. FATE_SAMPLES_FFPROBE += $(FATE_MATROSKA_FFPROBE-yes)
  237. FATE_SAMPLES_FFMPEG_FFPROBE += $(FATE_MATROSKA_FFMPEG_FFPROBE-yes)
  238. fate-matroska: $(FATE_MATROSKA-yes) $(FATE_MATROSKA_FFPROBE-yes) $(FATE_MATROSKA_FFMPEG_FFPROBE-yes)