ffmpeg.mak 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269
  1. FATE_FFMPEG-$(call FILTERFRAMECRC, COLOR) += fate-ffmpeg-filter_complex
  2. fate-ffmpeg-filter_complex: CMD = framecrc -filter_complex color=d=1:r=5 -fflags +bitexact
  3. # Ticket 6603
  4. FATE_FFMPEG-$(call FILTERFRAMECRC, AEVALSRC ASETNSAMPLES ARESAMPLE, AC3_FIXED_ENCODER) += fate-ffmpeg-filter_complex_audio
  5. fate-ffmpeg-filter_complex_audio: CMD = framecrc -auto_conversion_filters -filter_complex "aevalsrc=0:d=0.1,asetnsamples=1537" -c ac3_fixed
  6. # Ticket 6375, use case of NoX
  7. FATE_SAMPLES_FFMPEG-$(call FRAMECRC, MOV, PNG ALAC, ARESAMPLE_FILTER) += fate-ffmpeg-attached_pics
  8. fate-ffmpeg-attached_pics: CMD = threads=2 framecrc -i $(TARGET_SAMPLES)/lossless-audio/inside.m4a -threads 1 -max_muxing_queue_size 16 -af aresample
  9. FATE_SAMPLES_FFMPEG-$(call FILTERDEMDEC, COLORKEY OVERLAY SCALE, MPEGPS IMAGE_PPM_PIPE, CAVS PPM, CAVSVIDEO_PARSER) += fate-ffmpeg-filter_colorkey
  10. fate-ffmpeg-filter_colorkey: tests/data/filtergraphs/colorkey
  11. fate-ffmpeg-filter_colorkey: CMD = framecrc -auto_conversion_filters -idct simple -fflags +bitexact -flags +bitexact -sws_flags +accurate_rnd+bitexact -i $(TARGET_SAMPLES)/cavs/cavs.mpg -fflags +bitexact -flags +bitexact -sws_flags +accurate_rnd+bitexact -i $(TARGET_SAMPLES)/lena.pnm -an -/filter_complex $(TARGET_PATH)/tests/data/filtergraphs/colorkey -sws_flags +accurate_rnd+bitexact -fflags +bitexact -flags +bitexact -qscale 2 -frames:v 10
  12. FATE_FFMPEG-$(call FILTERFRAMECRC, COLOR) += fate-ffmpeg-lavfi
  13. fate-ffmpeg-lavfi: CMD = framecrc -lavfi color=d=1:r=5 -fflags +bitexact
  14. FATE_FFMPEG-$(call ENCDEC2, MPEG4, RAWVIDEO, AVI, RAWVIDEO_DEMUXER FRAMECRC_MUXER) += fate-force_key_frames
  15. fate-force_key_frames: tests/data/vsynth1.yuv
  16. fate-force_key_frames: CMD = enc_dec \
  17. "rawvideo -s 352x288 -pix_fmt yuv420p" tests/data/vsynth1.yuv \
  18. avi "-c mpeg4 -g 240 -qscale 10 -force_key_frames 0.5,0:00:01.5" \
  19. framecrc "" "-skip_frame nokey"
  20. # test -force_key_frames source with and without framerate conversion
  21. # * we don't care about the actual video content, so replace it with
  22. # a 2x2 black square to speed up encoding
  23. # * force mpeg2video to only emit keyframes when explicitly requested
  24. fate-force_key_frames-source: CMD = framecrc -i $(TARGET_SAMPLES)/h264/intra_refresh.h264 \
  25. -vf crop=2:2,drawbox=color=black:t=fill \
  26. -c:v mpeg2video -g 400 -sc_threshold 99999 \
  27. -force_key_frames source
  28. fate-force_key_frames-source-drop: CMD = framecrc -i $(TARGET_SAMPLES)/h264/intra_refresh.h264 \
  29. -vf crop=2:2,drawbox=color=black:t=fill \
  30. -c:v mpeg2video -g 400 -sc_threshold 99999 \
  31. -force_key_frames source -r 1
  32. fate-force_key_frames-source-dup: CMD = framecrc -i $(TARGET_SAMPLES)/h264/intra_refresh.h264 \
  33. -vf crop=2:2,drawbox=color=black:t=fill \
  34. -c:v mpeg2video -g 400 -sc_threshold 99999 \
  35. -force_key_frames source -r 39 -force_fps -strict experimental
  36. FATE_SAMPLES_FFMPEG-$(call ENCDEC, MPEG2VIDEO H264, FRAMECRC H264, CROP_FILTER DRAWBOX_FILTER) += \
  37. fate-force_key_frames-source fate-force_key_frames-source-drop fate-force_key_frames-source-dup
  38. # Tests that the video is properly autorotated using the contained
  39. # display matrix and that the generated file does not contain
  40. # a display matrix any more.
  41. FATE_SAMPLES_FFMPEG_FFPROBE-$(call TRANSCODE, MPEG2VIDEO, MOV, H264_DECODER AAC_FIXED_DECODER AC3_FIXED_ENCODER EXTRACT_EXTRADATA_BSF) += fate-autorotate
  42. fate-autorotate: CMD = transcode "mov -c:a aac_fixed" $(TARGET_SAMPLES)/filter/sample-in-issue-505.mov mov "-c:v mpeg2video -c:a ac3_fixed" "-c copy -t 0.5" "-show_entries stream_side_data_list"
  43. FATE_SAMPLES_FFMPEG-$(call FILTERDEMDEC, OVERLAY SCALE, RAWVIDEO VOBSUB, RAWVIDEO DVDSUB, DVDSUB_ENCODER) += fate-sub2video
  44. fate-sub2video: tests/data/vsynth_lena.yuv
  45. fate-sub2video: CMD = framecrc -auto_conversion_filters \
  46. -f rawvideo -r 5 -s 352x288 -pix_fmt yuv420p -i $(TARGET_PATH)/tests/data/vsynth_lena.yuv \
  47. -ss 132 -i $(TARGET_SAMPLES)/sub/vobsub.idx \
  48. -filter_complex "sws_flags=+accurate_rnd+bitexact\;[0:0]scale=720:480[v]\;[v][1:0]overlay[v2]" \
  49. -map "[v2]" -c:v rawvideo -threads 1 -map 1:s -c:s dvdsub
  50. # Very basic sub2video example, decode and convert to AVFrame with sub2video.
  51. # Attempt to not touch timestamps.
  52. FATE_SAMPLES_FFMPEG-$(call FRAMECRC, VOBSUB, DVDSUB, SCALE_FILTER) += fate-sub2video_basic
  53. fate-sub2video_basic: CMD = framecrc -auto_conversion_filters \
  54. -i $(TARGET_SAMPLES)/sub/vobsub.idx \
  55. -pix_fmt bgra \
  56. -fps_mode passthrough -copyts \
  57. -filter_complex "sws_flags=+accurate_rnd+bitexact\;[0:s:0]scale" \
  58. -c:v rawvideo -threads 1
  59. # Time-limited run with a sample that doesn't require seeking and
  60. # contains samples within the initial period.
  61. FATE_SAMPLES_FFMPEG-$(call FRAMECRC, SUP, PGSSUB, SCALE_FILTER RAWVIDEO_ENCODER) += fate-sub2video_time_limited
  62. fate-sub2video_time_limited: CMD = framecrc -auto_conversion_filters \
  63. -i $(TARGET_SAMPLES)/sub/pgs_sub.sup \
  64. -pix_fmt bgra \
  65. -fps_mode passthrough -copyts \
  66. -t 15 \
  67. -filter_complex "sws_flags=+accurate_rnd+bitexact\;[0:s:0]scale" \
  68. -c:v rawvideo -threads 1
  69. FATE_FFMPEG-$(call ENCDEC, PCM_S16LE, PCM_S16LE) += fate-unknown_layout-pcm
  70. fate-unknown_layout-pcm: $(AREF)
  71. fate-unknown_layout-pcm: CMD = md5 \
  72. -guess_layout_max 0 -f s16le -ac 1 -ar 44100 -i $(TARGET_PATH)/$(AREF) -f s16le
  73. FATE_FFMPEG-$(call FILTERDEMDECENCMUX, ARESAMPLE, PCM_S32LE, PCM_S32LE, AC3_FIXED, AC3) += fate-unknown_layout-ac3
  74. fate-unknown_layout-ac3: $(AREF)
  75. fate-unknown_layout-ac3: CMD = md5 -auto_conversion_filters \
  76. -guess_layout_max 0 -f s32le -ac 1 -ar 44100 -i $(TARGET_PATH)/$(AREF) \
  77. -f ac3 -flags +bitexact -c ac3_fixed
  78. FATE_FFMPEG-$(call FILTERDEMDEC, AMIX ARESAMPLE SINE, RAWVIDEO, \
  79. PCM_S16LE RAWVIDEO, LAVFI_INDEV \
  80. MPEG4_ENCODER AC3_FIXED_ENCODER) \
  81. += fate-shortest
  82. fate-shortest: tests/data/vsynth1.yuv
  83. fate-shortest: CMD = framecrc -auto_conversion_filters -f lavfi -i "sine=3000:d=10" -f lavfi -i "sine=1000:d=1" -sws_flags +accurate_rnd+bitexact -fflags +bitexact -flags +bitexact -idct simple -f rawvideo -s 352x288 -pix_fmt yuv420p -i $(TARGET_PATH)/tests/data/vsynth1.yuv -filter_complex "[0:a:0][1:a:0]amix=inputs=2[audio]" -map 2:v:0 -map "[audio]" -sws_flags +accurate_rnd+bitexact -fflags +bitexact -flags +bitexact -idct simple -dct fastint -qscale 10 -threads 1 -c:v mpeg4 -c:a ac3_fixed -shortest
  84. # test interleaving video with a sparse subtitle stream
  85. FATE_SAMPLES_FFMPEG-$(call ALLYES, COLOR_FILTER, VOBSUB_DEMUXER, MATROSKA_DEMUXER,, \
  86. RAWVIDEO_ENCODER, MATROSKA_MUXER, FRAMECRC_MUXER) += fate-shortest-sub
  87. fate-shortest-sub: CMD = transcode \
  88. vobsub $(TARGET_SAMPLES)/sub/vobsub.idx matroska \
  89. "-filter_complex 'color=s=1x1:rate=1:duration=400' -pix_fmt rgb24 -allow_raw_vfw 1 -c:s copy -c:v rawvideo" \
  90. "-map 0 -c copy -shortest -shortest_buf_duration 40 -max_delay 1"
  91. # Basic test for fix_sub_duration, which calculates duration based on the
  92. # following subtitle's pts.
  93. FATE_SAMPLES_FFMPEG-$(call FILTERDEMDECENCMUX, MOVIE, MPEGVIDEO, \
  94. MPEG2VIDEO, SUBRIP, SRT, LAVFI_INDEV \
  95. MPEGVIDEO_PARSER CCAPTION_DECODER PIPE_PROTOCOL) \
  96. += fate-ffmpeg-fix_sub_duration
  97. fate-ffmpeg-fix_sub_duration: CMD = fmtstdout srt -fix_sub_duration \
  98. -real_time 1 -f lavfi \
  99. -i "movie=$(TARGET_SAMPLES)/sub/Closedcaption_rollup.m2v[out0+subcc]"
  100. # Basic test for fix_sub_duration_heartbeat, which causes a buffered subtitle
  101. # to be pushed out when a video keyframe is received from an encoder.
  102. FATE_SAMPLES_FFMPEG-$(call FILTERDEMDECENCMUX, MOVIE, MPEGVIDEO, \
  103. MPEG2VIDEO, SUBRIP, SRT, LAVFI_INDEV \
  104. MPEGVIDEO_PARSER CCAPTION_DECODER \
  105. MPEG2VIDEO_ENCODER NULL_MUXER PIPE_PROTOCOL) \
  106. += fate-ffmpeg-fix_sub_duration_heartbeat
  107. fate-ffmpeg-fix_sub_duration_heartbeat: CMD = fmtstdout srt -fix_sub_duration \
  108. -real_time 1 -f lavfi \
  109. -i "movie=$(TARGET_SAMPLES)/sub/Closedcaption_rollup.m2v[out0+subcc]" \
  110. -map 0:v -map 0:s -fix_sub_duration_heartbeat:v:0 \
  111. -c:v mpeg2video -b:v 2M -g 30 -sc_threshold 1000000000 \
  112. -c:s srt \
  113. -f null -
  114. # FIXME: the integer AAC decoder does not produce the same output on all platforms
  115. # so until that is fixed we use the volume filter to silence the data
  116. FATE_SAMPLES_FFMPEG-$(call FRAMECRC, MATROSKA, H264 AAC_FIXED, PCM_S32LE_ENCODER VOLUME_FILTER ARESAMPLE_FILTER) += fate-ffmpeg-streamloop-transcode-av
  117. fate-ffmpeg-streamloop-transcode-av: CMD = \
  118. framecrc -auto_conversion_filters -stream_loop 3 -c:a aac_fixed -i $(TARGET_SAMPLES)/mkv/1242-small.mkv \
  119. -af volume=0:precision=fixed -c:a pcm_s32le
  120. FATE_STREAMCOPY-$(call REMUX, MP4 MOV, EAC3_DEMUXER) += fate-copy-trac3074
  121. fate-copy-trac3074: CMD = transcode eac3 $(TARGET_SAMPLES)/eac3/csi_miami_stereo_128_spx.eac3\
  122. mp4 "-codec copy -map 0" "-codec copy"
  123. FATE_STREAMCOPY-$(call TRANSCODE, RAWVIDEO DVVIDEO, MOV, PCM_S16LE_DECODER) += fate-copy-trac236
  124. fate-copy-trac236: CMD = transcode mov $(TARGET_SAMPLES)/mov/fcp_export8-236.mov\
  125. mov "-codec copy -map 0"
  126. FATE_STREAMCOPY-$(call TRANSCODE, RAWVIDEO MPEG2VIDEO, MXF, MPEGTS_DEMUXER MPEGVIDEO_PARSER MPEGAUDIO_PARSER MP2_DECODER ARESAMPLE_FILTER PCM_S16LE_DECODER) += fate-copy-trac4914
  127. fate-copy-trac4914: CMD = transcode mpegts $(TARGET_SAMPLES)/mpeg2/xdcam8mp2-1s_small.ts\
  128. mxf "-c:a pcm_s16le -af aresample -c:v copy"
  129. FATE_STREAMCOPY-$(call TRANSCODE, RAWVIDEO MPEG2VIDEO, AVI, MPEGTS_DEMUXER MPEGVIDEO_PARSER MPEGAUDIO_PARSER EXTRACT_EXTRADATA_BSF MP2_DECODER ARESAMPLE_FILTER) += fate-copy-trac4914-avi
  130. fate-copy-trac4914-avi: CMD = transcode mpegts $(TARGET_SAMPLES)/mpeg2/xdcam8mp2-1s_small.ts\
  131. avi "-c:a copy -c:v copy" "-af aresample"
  132. FATE_STREAMCOPY-$(call TRANSCODE, RAWVIDEO H264, AVI, H264_DEMUXER H264_PARSER EXTRACT_EXTRADATA_BSF) += fate-copy-trac2211-avi
  133. fate-copy-trac2211-avi: CMD = transcode "h264 -r 14" $(TARGET_SAMPLES)/h264/bbc2.sample.h264\
  134. avi "-c:v copy"
  135. ifneq (,$(filter fate-lavf-apng,$(FATE_LAVF_VIDEO)))
  136. FATE_STREAMCOPY-$(call TRANSCODE, RAWVIDEO APNG, APNG) += fate-copy-apng
  137. endif
  138. fate-copy-apng: fate-lavf-apng
  139. fate-lavf-apng: KEEP_FILES ?= 1
  140. fate-copy-apng: CMD = transcode apng tests/data/lavf/lavf.apng apng "-c:v copy"
  141. FATE_STREAMCOPY-$(call DEMMUX, OGG, OGG) += fate-limited_input_seek fate-limited_input_seek-copyts
  142. fate-limited_input_seek: CMD = md5 -ss 1.5 -t 1.3 -i $(TARGET_SAMPLES)/vorbis/moog_small.ogg -c:a copy -fflags +bitexact -f ogg
  143. fate-limited_input_seek-copyts: CMD = md5 -ss 1.5 -t 1.3 -i $(TARGET_SAMPLES)/vorbis/moog_small.ogg -c:a copy -copyts -fflags +bitexact -f ogg
  144. FATE_STREAMCOPY-$(call REMUX, PSP MOV, H264_PARSER H264_DECODER) += fate-copy-psp
  145. fate-copy-psp: CMD = transcode "mov" $(TARGET_SAMPLES)/h264/wwwq_cut.mp4\
  146. psp "-c copy" "-codec copy"
  147. FATE_STREAMCOPY-$(call FRAMEMD5, FLV, H264) += fate-ffmpeg-streamloop-copy
  148. fate-ffmpeg-streamloop-copy: CMD = framemd5 -stream_loop 2 -i $(TARGET_SAMPLES)/flv/streamloop.flv -c copy
  149. tests/data/audio_shorter_than_video.nut: TAG = GEN
  150. tests/data/audio_shorter_than_video.nut: tests/data/vsynth_lena.yuv
  151. tests/data/audio_shorter_than_video.nut: ffmpeg$(PROGSSUF)$(EXESUF) | tests/data
  152. $(M)$(TARGET_EXEC) $(TARGET_PATH)/$< -nostdin \
  153. -sws_flags +accurate_rnd+bitexact -fflags +bitexact -flags +bitexact -idct simple -f rawvideo -s 352x288 -pix_fmt yuv420p -i $(TARGET_PATH)/tests/data/vsynth_lena.yuv \
  154. -f lavfi -i "sine=1000:d=1" \
  155. -sws_flags +accurate_rnd+bitexact -fflags +bitexact -flags +bitexact -idct simple -dct fastint -qscale 10 -c:v mpeg4 -threads 1 -c:a pcm_s16le -bitexact \
  156. -y $(TARGET_PATH)/tests/data/audio_shorter_than_video.nut 2>/dev/null
  157. FATE_STREAMCOPY-$(call FRAMEMD5, NUT, RAWVIDEO PCM_S16LE MPEG4, \
  158. RAWVIDEO_DEMUXER LAVFI_INDEV \
  159. MPEG4_ENCODER PCM_S16LE_ENCODER \
  160. SINE_FILTER ARESAMPLE_FILTER AMIX_FILTER \
  161. NUT_MUXER AC3_FIXED_ENCODER) \
  162. += fate-copy-shortest1 fate-copy-shortest2
  163. fate-copy-shortest1 fate-copy-shortest2: tests/data/audio_shorter_than_video.nut
  164. fate-copy-shortest1: CMD = framemd5 -auto_conversion_filters -fflags +bitexact -flags +bitexact -f lavfi -i "sine=3000:d=10" -f lavfi -i "sine=1000:d=1" -i $(TARGET_PATH)/tests/data/audio_shorter_than_video.nut -filter_complex "[0:a:0][1:a:0]amix=inputs=2[audio]" -map 2:v:0 -map "[audio]" -fflags +bitexact -flags +bitexact -c:v copy -c:a ac3_fixed -shortest
  165. fate-copy-shortest2: CMD = framemd5 -auto_conversion_filters -fflags +bitexact -flags +bitexact -f lavfi -i "sine=3000:d=10" -i $(TARGET_PATH)/tests/data/audio_shorter_than_video.nut -filter_complex "[0:a:0][1:a:0]amix=inputs=2[audio]" -map 1:v:0 -map "[audio]" -fflags +bitexact -flags +bitexact -c:v copy -c:a ac3_fixed -shortest
  166. fate-streamcopy: $(FATE_STREAMCOPY-yes)
  167. FATE_SAMPLES_FFMPEG-yes += $(FATE_STREAMCOPY-yes)
  168. FATE_SAMPLES_FFMPEG-$(call TRANSCODE, RAWVIDEO, MATROSKA, MOV_DEMUXER QTRLE_DECODER) += fate-rgb24-mkv
  169. fate-rgb24-mkv: CMD = transcode "mov" $(TARGET_SAMPLES)/qtrle/aletrek-rle.mov\
  170. matroska "-c:v rawvideo -threads 1 -pix_fmt rgb24 -allow_raw_vfw 1 -frames:v 1"
  171. FATE_SAMPLES_FFMPEG-$(call REMUX, MOV, AAC_DEMUXER AAC_DECODER AAC_PARSER AAC_ADTSTOASC_BSF) += fate-adtstoasc_ticket3715
  172. fate-adtstoasc_ticket3715: CMD = transcode "aac" $(TARGET_SAMPLES)/aac/foo.aac\
  173. mov "-c copy -bsf:a aac_adtstoasc" "-codec copy"
  174. FATE_SAMPLES_FFMPEG-$(call REMUX, H264, MOV_DEMUXER H264_MP4TOANNEXB_BSF H264_PARSER H264_DECODER EXTRACT_EXTRADATA_BSF) += fate-h264_mp4toannexb_ticket2991
  175. fate-h264_mp4toannexb_ticket2991: CMD = transcode "mp4" $(TARGET_SAMPLES)/h264/wwwq_cut.mp4\
  176. h264 "-c:v copy -bsf:v h264_mp4toannexb" "-codec copy"
  177. FATE_SAMPLES_FFMPEG-$(call TRANSCODE, MPEG4 MPEG2VIDEO, AVI, MPEGPS_DEMUXER MPEGVIDEO_DEMUXER MPEGVIDEO_PARSER EXTRACT_EXTRADATA_BSF REMOVE_EXTRADATA_BSF) += fate-ffmpeg-bsf-remove-k fate-ffmpeg-bsf-remove-r fate-ffmpeg-bsf-remove-e
  178. fate-ffmpeg-bsf-remove-k: CMD = transcode "mpeg" $(TARGET_SAMPLES)/mpeg2/matrixbench_mpeg2.lq1.mpg\
  179. avi "-bsf:v remove_extra=k" "-codec copy"
  180. fate-ffmpeg-bsf-remove-r: CMD = transcode "mpeg" $(TARGET_SAMPLES)/mpeg2/matrixbench_mpeg2.lq1.mpg\
  181. avi "-bsf:v remove_extra=keyframe" "-codec copy"
  182. fate-ffmpeg-bsf-remove-e: CMD = transcode "mpeg" $(TARGET_SAMPLES)/mpeg2/matrixbench_mpeg2.lq1.mpg\
  183. avi "-bsf:v remove_extra=e" "-codec copy"
  184. FATE_SAMPLES_FFMPEG-$(call DEMMUX, APNG, FRAMECRC, SETTS_BSF PIPE_PROTOCOL) += fate-ffmpeg-setts-bsf
  185. fate-ffmpeg-setts-bsf: CMD = framecrc -i $(TARGET_SAMPLES)/apng/clock.png -c:v copy -bsf:v "setts=duration=if(eq(NEXT_PTS\,NOPTS)\,PREV_OUTDURATION\,(NEXT_PTS-PTS)/2):ts=PTS/2" -fflags +bitexact
  186. FATE_TIME_BASE-$(call PARSERDEMDEC, MPEGVIDEO, MPEGPS, MPEG2VIDEO, MPEGVIDEO_DEMUXER MXF_MUXER) += fate-time_base
  187. fate-time_base: CMD = md5 -i $(TARGET_SAMPLES)/mpeg2/dvd_single_frame.vob -an -sn -c:v copy -r 25 -fflags +bitexact -f mxf
  188. FATE_SAMPLES_FFMPEG-yes += $(FATE_TIME_BASE-yes)
  189. # test -r used as an input option
  190. fate-ffmpeg-input-r: CMD = framecrc -r 27 -idct simple -bitexact -i $(TARGET_SAMPLES)/mpeg2/sony-ct3.bs
  191. FATE_SAMPLES_FFMPEG-$(call FRAMECRC, MPEGVIDEO, MPEG2VIDEO) += fate-ffmpeg-input-r
  192. # file with completely undecodable TTA audio stream
  193. # by default should exit with error code 69
  194. fate-ffmpeg-error-rate-fail: CMD = ffmpeg -i $(TARGET_SAMPLES)/mkv/h264_tta_undecodable.mkv -c:v copy -f null -; test $$? -eq 69
  195. fate-ffmpeg-error-rate-pass: CMD = ffmpeg -i $(TARGET_SAMPLES)/mkv/h264_tta_undecodable.mkv -c:v copy -f null - -max_error_rate 1
  196. FATE_SAMPLES_FFMPEG-$(call ENCDEC, PCM_S16LE TTA, NULL MATROSKA) += fate-ffmpeg-error-rate-fail fate-ffmpeg-error-rate-pass
  197. # test input -bsf
  198. # use -stream_loop, because it tests flushing bsfs
  199. fate-ffmpeg-bsf-input: CMD = framecrc -stream_loop 2 -bsf setts=PTS*2 -i $(TARGET_SAMPLES)/hevc/extradata-reload-multi-stsd.mov -c copy
  200. FATE_SAMPLES_FFMPEG-$(call FRAMECRC, MOV, , SETTS_BSF) += fate-ffmpeg-bsf-input
  201. # Test behaviour when a complex filtergraph returns EOF on one of its inputs,
  202. # but other inputs are still active.
  203. # cf. #10803
  204. fate-ffmpeg-filter-in-eof: tests/data/vsynth1.yuv
  205. fate-ffmpeg-filter-in-eof: CMD = framecrc \
  206. -f rawvideo -s 352x288 -pix_fmt yuv420p -t 1 -i $(TARGET_PATH)/tests/data/vsynth1.yuv \
  207. -f rawvideo -s 352x288 -pix_fmt yuv420p -t 1 -i $(TARGET_PATH)/tests/data/vsynth1.yuv \
  208. -filter_complex "[0][1]concat" -c:v rawvideo
  209. FATE_FFMPEG-$(call FRAMECRC, RAWVIDEO, RAWVIDEO, CONCAT_FILTER) += fate-ffmpeg-filter-in-eof
  210. # Test termination on streamcopy with -t as an output option.
  211. fate-ffmpeg-streamcopy-t: tests/data/vsynth1.yuv
  212. fate-ffmpeg-streamcopy-t: CMP = null
  213. fate-ffmpeg-streamcopy-t: CMD = ffmpeg \
  214. -stream_loop -1 -f rawvideo -s 352x288 -pix_fmt yuv420p -i $(TARGET_PATH)/tests/data/vsynth1.yuv \
  215. -c copy -f null -t 1 -
  216. FATE_FFMPEG-$(call REMUX, RAWVIDEO) += fate-ffmpeg-streamcopy-t
  217. # Test loopback decoding and passing the output to a complex graph.
  218. fate-ffmpeg-loopback-decoding: tests/data/vsynth1.yuv
  219. fate-ffmpeg-loopback-decoding: CMD = transcode \
  220. "rawvideo -s 352x288 -pix_fmt yuv420p" $(TARGET_PATH)/tests/data/vsynth1.yuv nut \
  221. "-map 0:v:0 -c:v mpeg2video -f null - -flags +bitexact -idct simple -threads $$threads -dec 0:0 -filter_complex '[0:v][dec:0]hstack[stack]' -map '[stack]' -c:v ffv1" ""
  222. FATE_FFMPEG-$(call ENCDEC2, MPEG2VIDEO, FFV1, NUT, HSTACK_FILTER PIPE_PROTOCOL FRAMECRC_MUXER) += fate-ffmpeg-loopback-decoding
  223. # test matching by stream disposition
  224. fate-ffmpeg-spec-disposition: CMD = framecrc -i $(TARGET_SAMPLES)/mpegts/pmtchange.ts -map '0:disp:visual_impaired+descriptions:1' -c copy
  225. FATE_FFMPEG-$(call FRAMECRC, MPEGTS,,) += fate-ffmpeg-spec-disposition