1FATE_MOV = fate-mov-3elist \ 2 fate-mov-3elist-1ctts \ 3 fate-mov-1elist-1ctts \ 4 fate-mov-1elist-noctts \ 5 fate-mov-elist-starts-ctts-2ndsample \ 6 fate-mov-1elist-ends-last-bframe \ 7 fate-mov-2elist-elist1-ends-bframe \ 8 fate-mov-3elist-encrypted \ 9 fate-mov-frag-encrypted \ 10 fate-mov-tenc-only-encrypted \ 11 fate-mov-invalid-elst-entry-count \ 12 fate-mov-gpmf-remux \ 13 fate-mov-440hz-10ms \ 14 fate-mov-ibi-elst-starts-b \ 15 fate-mov-elst-ends-betn-b-and-i \ 16 fate-mov-frag-overlap \ 17 fate-mov-bbi-elst-starts-b \ 18 fate-mov-neg-firstpts-discard-frames \ 19 fate-mov-stream-shorter-than-movie \ 20 21FATE_MOV_FFPROBE = fate-mov-neg-firstpts-discard \ 22 fate-mov-neg-firstpts-discard-vorbis \ 23 fate-mov-aac-2048-priming \ 24 fate-mov-zombie \ 25 fate-mov-init-nonkeyframe \ 26 fate-mov-displaymatrix \ 27 fate-mov-spherical-mono \ 28 fate-mov-guess-delay-1 \ 29 fate-mov-guess-delay-2 \ 30 fate-mov-guess-delay-3 \ 31 fate-mov-mp4-with-mov-in24-ver \ 32 fate-mov-mp4-extended-atom \ 33 34FATE_MOV_FASTSTART = fate-mov-faststart-4gb-overflow \ 35 36FATE_SAMPLES_AVCONV += $(FATE_MOV) 37FATE_SAMPLES_FFPROBE += $(FATE_MOV_FFPROBE) 38FATE_SAMPLES_FASTSTART += $(FATE_MOV_FASTSTART) 39 40fate-mov: $(FATE_MOV) $(FATE_MOV_FFPROBE) $(FATE_MOV_FASTSTART) 41 42# Make sure we handle edit lists correctly in normal cases. 43fate-mov-1elist-noctts: CMD = framemd5 -i $(TARGET_SAMPLES)/mov/mov-1elist-noctts.mov 44fate-mov-1elist-1ctts: CMD = framemd5 -i $(TARGET_SAMPLES)/mov/mov-1elist-1ctts.mov 45fate-mov-3elist: CMD = framemd5 -i $(TARGET_SAMPLES)/mov/mov-3elist.mov 46fate-mov-3elist-1ctts: CMD = framemd5 -i $(TARGET_SAMPLES)/mov/mov-3elist-1ctts.mov 47 48# Edit list with encryption 49fate-mov-3elist-encrypted: CMD = framemd5 -decryption_key 12345678901234567890123456789012 -i $(TARGET_SAMPLES)/mov/mov-3elist-encrypted.mov 50 51# Fragmented encryption with senc boxes in movie fragments. 52fate-mov-frag-encrypted: CMD = framemd5 -decryption_key 12345678901234567890123456789012 -i $(TARGET_SAMPLES)/mov/mov-frag-encrypted.mp4 53 54# Full-sample encryption and constant IV using only tenc atom (no senc/saio/saiz). 55fate-mov-tenc-only-encrypted: CMD = framemd5 -decryption_key 12345678901234567890123456789012 -i $(TARGET_SAMPLES)/mov/mov-tenc-only-encrypted.mp4 56 57# Makes sure that the CTTS is also modified when we fix avindex in mov.c while parsing edit lists. 58fate-mov-elist-starts-ctts-2ndsample: CMD = framemd5 -i $(TARGET_SAMPLES)/mov/mov-elist-starts-ctts-2ndsample.mov 59 60# Makes sure that we handle edit lists ending on a B-frame correctly. 61# The last frame in decoding order which is B-frame should be output, but the last but-one P-frame shouldn't be 62# output. 63fate-mov-1elist-ends-last-bframe: CMD = framemd5 -i $(TARGET_SAMPLES)/mov/mov-1elist-ends-last-bframe.mov 64 65# Makes sure that we handle timestamps of packets in case of multiple edit lists with one of them ending on a B-frame correctly. 66fate-mov-2elist-elist1-ends-bframe: CMD = framemd5 -i $(TARGET_SAMPLES)/mov/mov-2elist-elist1-ends-bframe.mov 67 68# Makes sure that if edit list ends on a B-frame but before the I-frame, then we output the B-frame but discard the I-frame. 69fate-mov-elst-ends-betn-b-and-i: CMD = framemd5 -i $(TARGET_SAMPLES)/mov/elst_ends_betn_b_and_i.mp4 70 71# Makes sure that we handle edit lists and start padding correctly. 72fate-mov-440hz-10ms: CMD = framemd5 -i $(TARGET_SAMPLES)/mov/440hz-10ms.m4a -af aresample 73 74# Makes sure that we handle invalid edit list entry count correctly. 75fate-mov-invalid-elst-entry-count: CMD = framemd5 -idct simple -flags +bitexact -i $(TARGET_SAMPLES)/mov/invalid_elst_entry_count.mov 76 77# Makes sure that 1st key-frame is picked when, 78# i) One B-frame between 2 key-frames 79# ii) Edit list starts on B-frame. 80# iii) Both key-frames have their DTS < edit list start 81# i.e. Pts Order: I-B-I 82fate-mov-ibi-elst-starts-b: CMD = framemd5 -flags +bitexact -i $(TARGET_SAMPLES)/mov/mov_ibi_elst_starts_b.mov 83 84# Makes sure that we handle overlapping framgments 85fate-mov-frag-overlap: CMD = framemd5 -i $(TARGET_SAMPLES)/mov/frag_overlap.mp4 86 87# Makes sure that we pick the right frames according to edit list when there is no keyframe with PTS < edit list start. 88# For example, when video starts on a B-frame, and edit list starts on that B-frame too. 89# GOP structure : B B I in presentation order. 90fate-mov-bbi-elst-starts-b: CMD = framemd5 -flags +bitexact -acodec aac_fixed -i $(TARGET_SAMPLES)/h264/twofields_packet.mp4 -af aresample 91 92# Makes sure that the stream start_time is not negative when the first packet is a DISCARD packet with negative timestamp. 93fate-mov-neg-firstpts-discard: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_entries stream=start_time -bitexact $(TARGET_SAMPLES)/mov/mov_neg_first_pts_discard.mov 94 95# Makes sure that the VORBIS audio stream start_time is not negative when the first few packets are DISCARD packets 96# with negative timestamps (skip_samples is not set for Vorbis, so ffmpeg computes start_time as negative if not specified by demuxer). 97fate-mov-neg-firstpts-discard-vorbis: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_entries stream=start_time -bitexact $(TARGET_SAMPLES)/mov/mov_neg_first_pts_discard_vorbis.mp4 98 99# Makes sure that expected frames are generated for mov_neg_first_pts_discard.mov with -vsync 1 100fate-mov-neg-firstpts-discard-frames: CMD = framemd5 -flags +bitexact -i $(TARGET_SAMPLES)/mov/mov_neg_first_pts_discard.mov -vsync 1 101 102# Makes sure that no frame is dropped/duplicated with fps filter due to start_time / duration miscalculations. 103fate-mov-stream-shorter-than-movie: CMD = framemd5 -flags +bitexact -i $(TARGET_SAMPLES)/mov/mov_stream_shorter_than_movie.mov -vf fps=fps=24 -an 104 105fate-mov-aac-2048-priming: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_packets -print_format compact $(TARGET_SAMPLES)/mov/aac-2048-priming.mov 106 107fate-mov-zombie: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_streams -show_packets -show_frames -bitexact -print_format compact $(TARGET_SAMPLES)/mov/white_zombie_scrunch-part.mov 108 109fate-mov-init-nonkeyframe: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_packets -print_format compact -select_streams v $(TARGET_SAMPLES)/mov/mp4-init-nonkeyframe.mp4 110 111fate-mov-displaymatrix: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_entries stream=display_aspect_ratio,sample_aspect_ratio:stream_side_data_list -select_streams v -v 0 $(TARGET_SAMPLES)/mov/displaymatrix.mov 112 113fate-mov-spherical-mono: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_entries stream_side_data_list -select_streams v -v 0 $(TARGET_SAMPLES)/mov/spherical.mov 114 115fate-mov-gpmf-remux: CMD = md5 -i $(TARGET_SAMPLES)/mov/fake-gp-media-with-real-gpmf.mp4 -map 0 -c copy -fflags +bitexact -f mp4 116fate-mov-gpmf-remux: CMP = oneline 117fate-mov-gpmf-remux: REF = 6361cf3c2b9e6962c2eafbda138125f4 118 119fate-mov-guess-delay-1: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_entries stream=has_b_frames -select_streams v $(TARGET_SAMPLES)/h264/h264_3bf_nopyramid_nobsrestriction.mp4 120fate-mov-guess-delay-2: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_entries stream=has_b_frames -select_streams v $(TARGET_SAMPLES)/h264/h264_3bf_pyramid_nobsrestriction.mp4 121fate-mov-guess-delay-3: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_entries stream=has_b_frames -select_streams v $(TARGET_SAMPLES)/h264/h264_4bf_pyramid_nobsrestriction.mp4 122 123fate-mov-faststart-4gb-overflow: CMD = run tools/qt-faststart$(EXESUF) $(TARGET_SAMPLES)/mov/faststart-4gb-overflow.mov $(TARGET_PATH)/faststart-4gb-overflow-output.mov > /dev/null ; do_md5sum faststart-4gb-overflow-output.mov | cut -d " " -f1 ; rm faststart-4gb-overflow-output.mov 124fate-mov-faststart-4gb-overflow: CMP = oneline 125fate-mov-faststart-4gb-overflow: REF = bc875921f151871e787c4b4023269b29 126 127fate-mov-mp4-with-mov-in24-ver: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_entries stream=codec_name -select_streams 1 $(TARGET_SAMPLES)/mov/mp4-with-mov-in24-ver.mp4 128 129fate-mov-mp4-extended-atom: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_packets -print_format compact -select_streams v $(TARGET_SAMPLES)/mov/extended_atom_size_probe 130