mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-28 20:53:54 +02:00
96e5e6abb9
The patch will make audio and subtitle packets be marked as AV_PKT_FLAG_KEY. For audio, it'll caused the audio sample to be sync sample. To verify ref/fate/movenc results: 1. Get the movenc test data [lmwang@vpn ffmpeg]$ libavformat/tests/movenc -w && mkdir -p audio_old && mv *.mp4 audio_old_ After applied the patch: [lmwang@vpn ffmpeg]$ make fate-movenc SAMPLES=../fate-suite [lmwang@vpn ffmpeg]$ libavformat/tests/movenc -w && mkdir -p audio_key && mv *.mp4 audio_key 2. Get l-smash and build boxdumper https://github.com/l-smash/l-smash.git 3. dump the box of crc change mp4 and diff -u [lmwang@vpn ffmpeg]$ ../l-smash/cli/boxdumper --box audio_key/non-empty-moov-no-elst.mp4 > audio_key/non-empty-moov-no-elst.log [lmwang@vpn ffmpeg]$ ../l-smash/cli/boxdumper --box audio_old/non-empty-moov-no-elst.mp4 > audio_old/non-empty-moov-no-elst.log [lmwang@vpn ffmpeg]$ diff -u audio_key/non-empty-moov-no-elst.log audio_old/non-empty-moov-no-elst.log - default_sample_flags = 0x02000000 - independent - sync sample + default_sample_flags = 0x01010000 + dependent + non-sync sample 4. have checked the change of crc are caused by default_sample_flags non-empty-moov.mp4, non-empty-moov-elst.mp4, non-empty-moov-no-elst.mp4, empty-moov.mp4, delay-moov-content.mp4, empty-moov-second-frag.mp4, empty-moov-second-frag-discont.mp4, delay-moov-second-frag-discont.mp4, delay-moov-elst-second-frag.mp4 etc 5 For subtitle, it'll effect for tests/ref/fate/binsub-movtextenc and tests/ref/fate/sub2video, that's expecting result for the subtitle is marked as keyframe. Below is the checking result of binsub-movtextenc: [lmwang@vpn ffmpeg]$ ./ffmpeg -i ../fate-suite/sub/MovText_capability_tester.mp4 -map 0 -scodec mov_text -f mp4 -flags +bitexact -fflags +bitexact -movflags frag_keyframe+empty_moov audio_key/binsub-movtextenc.mp4 [lmwang@vpn ffmpeg]$ ./ffmpeg -i ../fate-suite/sub/MovText_capability_tester.mp4 -map 0 -scodec mov_text -f mp4 -flags +bitexact -fflags +bitexact -movflags frag_keyframe+empty_moov audio_old/binsub-movtextenc.mp4 [lmwang@vpn ffmpeg]$../l-smash/cli/boxdumper audio_key/binsub-movtextenc.mp4 > audio_key/binsub-movtextenc.log [lmwang@vpn ffmpeg]$../l-smash/cli/boxdumper audio_old/binsub-movtextenc.mp4 > audio_old/binsub-movtextenc.log [lmwang@vpn ffmpeg]$ diff -u audio_key/binsub-movtextenc.log audio_old/binsub-movtextenc.log .... // the key difference is the flag for sync sample - flags = 0x000701 + flags = 0x000301 data-offset-present sample-duration-present sample-size-present - sample-flags-present sample_count = 6 - data_offset = 188 + data_offset = 164 sample[0] sample_duration = 1570000 sample_size = 21 - sample_flags = 0x02000000 - independent - sync sample - degradation_priority = 0 sample[1] sample_duration = 510000 sample_size = 2 - sample_flags = 0x01010000 - dependent - non-sync sample - degradation_priority = 0 sample[2] sample_duration = 1690000 sample_size = 9 - sample_flags = 0x02000000 - independent - sync sample - degradation_priority = 0 Suggested-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com> Suggested-by: Nicolas George <george@nsup.org> Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
154 lines
8.2 KiB
Plaintext
154 lines
8.2 KiB
Plaintext
write_data len 36, time nopts, type header atom ftyp
|
|
write_data len 2389, time nopts, type header atom -
|
|
write_data len 788, time 1000000, type sync atom moof
|
|
write_data len 110, time nopts, type trailer atom -
|
|
5f401347fc3c771b819e2449d69d4861 3323 non-empty-moov
|
|
write_data len 36, time nopts, type header atom ftyp
|
|
write_data len 2721, time nopts, type header atom -
|
|
write_data len 908, time 966667, type sync atom moof
|
|
write_data len 110, time nopts, type trailer atom -
|
|
4267feee527adf8cd4f7b36ac0fc0872 3775 non-empty-moov-elst
|
|
write_data len 36, time nopts, type header atom ftyp
|
|
write_data len 2629, time nopts, type header atom -
|
|
write_data len 908, time 1000000, type sync atom moof
|
|
write_data len 110, time nopts, type trailer atom -
|
|
44077b9ad45f3e16fafe4e5ada54e9b0 3683 non-empty-moov-no-elst
|
|
write_data len 24, time nopts, type header atom ftyp
|
|
write_data len 1171, time nopts, type header atom -
|
|
write_data len 728, time 0, type sync atom moof
|
|
write_data len 828, time nopts, type unknown atom -
|
|
write_data len 728, time 999999, type sync atom moof
|
|
write_data len 812, time nopts, type unknown atom -
|
|
write_data len 148, time nopts, type trailer atom -
|
|
92ce825ff40505ec8676191705adb7e7 4439 ismv
|
|
write_data len 36, time nopts, type header atom ftyp
|
|
write_data len 1123, time nopts, type header atom -
|
|
write_data len 796, time 0, type sync atom moof
|
|
write_data len 788, time 1000000, type sync atom moof
|
|
write_data len 148, time nopts, type trailer atom -
|
|
08f4b3ad3a3ea224b2ee731476b9056b 2891 empty-moov
|
|
write_data len 36, time nopts, type header atom ftyp
|
|
write_data len 1123, time nopts, type header atom -
|
|
write_data len 1068, time 0, type sync atom moof
|
|
write_data len 908, time 1000000, type sync atom moof
|
|
write_data len 148, time nopts, type trailer atom -
|
|
d7a2dcb43eb0f95f92669f55fc7adeba 3283 empty-moov-no-elst
|
|
write_data len 36, time nopts, type header atom ftyp
|
|
write_data len 1123, time nopts, type header atom -
|
|
write_data len 900, time -33333, type sync atom moof
|
|
write_data len 908, time 966667, type sync atom moof
|
|
write_data len 148, time nopts, type trailer atom -
|
|
ea70ca697306976879be408431c27aee 3115 empty-moov-no-elst-no-adjust
|
|
write_data len 1159, time nopts, type header atom ftyp
|
|
write_data len 796, time 0, type sync atom moof
|
|
write_data len 788, time 1000000, type sync atom moof
|
|
write_data len 148, time nopts, type trailer atom -
|
|
08f4b3ad3a3ea224b2ee731476b9056b 2891 delay-moov
|
|
write_data len 1231, time nopts, type header atom ftyp
|
|
write_data len 916, time -33333, type sync atom moof
|
|
write_data len 908, time 966667, type sync atom moof
|
|
write_data len 148, time nopts, type trailer atom -
|
|
314cc3b6296f4ee583b328a34be50b2f 3203 delay-moov-elst
|
|
write_data len 1195, time nopts, type header atom ftyp
|
|
write_data len 836, time 0, type sync atom moof
|
|
write_data len 67, time nopts, type trailer atom -
|
|
95d6f59a7354b0cfe7ce49927baada4e 2098 delay-moov-empty-track
|
|
write_data len 1195, time nopts, type header atom ftyp
|
|
write_data len 360, time 0, type sync atom moof
|
|
write_data len 360, time 1000000, type sync atom moof
|
|
write_data len 86, time nopts, type trailer atom -
|
|
8805d72a27b340ea229c16edde78f974 2001 delay-moov-empty-track-flush
|
|
write_data len 36, time nopts, type header atom ftyp
|
|
write_data len 1123, time nopts, type header atom -
|
|
351ae2c8b6d35d98b4848c309cce6704 1159 empty-moov-header
|
|
write_data len 796, time 0, type sync atom moof
|
|
write_data len 788, time 1000000, type sync atom moof
|
|
289ee982188d66988a374a462b0b5376 1584 empty-moov-content
|
|
write_data len 148, time nopts, type trailer atom -
|
|
write_data len 1159, time nopts, type header atom ftyp
|
|
351ae2c8b6d35d98b4848c309cce6704 1159 delay-moov-header
|
|
write_data len 796, time 0, type sync atom moof
|
|
write_data len 788, time 1000000, type sync atom moof
|
|
289ee982188d66988a374a462b0b5376 1584 delay-moov-content
|
|
write_data len 148, time nopts, type trailer atom -
|
|
write_data len 28, time nopts, type header atom -
|
|
write_data len 1123, time nopts, type header atom -
|
|
write_data len 884, time 0, type sync atom sidx
|
|
write_data len 876, time 1000000, type sync atom sidx
|
|
c0307f99a2a362205b7e3d65b1066f86 876 empty-moov-second-frag
|
|
write_data len 148, time nopts, type trailer atom -
|
|
write_data len 28, time nopts, type header atom -
|
|
write_data len 1123, time nopts, type header atom -
|
|
write_data len 876, time 1000000, type sync atom sidx
|
|
c0307f99a2a362205b7e3d65b1066f86 876 empty-moov-second-frag-discont
|
|
write_data len 110, time nopts, type trailer atom -
|
|
write_data len 1223, time nopts, type header atom -
|
|
write_data len 876, time 1000000, type sync atom sidx
|
|
c0307f99a2a362205b7e3d65b1066f86 876 delay-moov-second-frag-discont
|
|
write_data len 110, time nopts, type trailer atom -
|
|
write_data len 1223, time nopts, type header atom ftyp
|
|
b3811928793ed0749927eb2f7958421c 1223 delay-moov-elst-init
|
|
write_data len 988, time -33333, type sync atom sidx
|
|
write_data len 996, time 966667, type sync atom sidx
|
|
0df125407c7e81978ce722e0ae4f6f84 996 delay-moov-elst-second-frag
|
|
write_data len 148, time nopts, type trailer atom -
|
|
write_data len 1223, time nopts, type header atom ftyp
|
|
b3811928793ed0749927eb2f7958421c 1223 delay-moov-elst-init-discont
|
|
write_data len 996, time 966667, type sync atom sidx
|
|
0df125407c7e81978ce722e0ae4f6f84 996 delay-moov-elst-second-frag-discont
|
|
write_data len 110, time nopts, type trailer atom -
|
|
write_data len 1223, time nopts, type header atom ftyp
|
|
041ac8efc35a0d023c26d05eedb20403 1223 delay-moov-elst-signal-init
|
|
write_data len 1004, time -33333, type sync atom sidx
|
|
write_data len 996, time 966667, type sync atom sidx
|
|
5a583d89318827d2569eecbeaa18c238 996 delay-moov-elst-signal-second-frag
|
|
write_data len 148, time nopts, type trailer atom -
|
|
write_data len 1223, time nopts, type header atom ftyp
|
|
041ac8efc35a0d023c26d05eedb20403 1223 delay-moov-elst-signal-init-discont
|
|
write_data len 996, time 966667, type sync atom sidx
|
|
5a583d89318827d2569eecbeaa18c238 996 delay-moov-elst-signal-second-frag-discont
|
|
write_data len 110, time nopts, type trailer atom -
|
|
write_data len 1247, time nopts, type header atom ftyp
|
|
80511a51d1ac9cde62337eed7176ae03 1247 delay-moov-elst-signal-init-discont-largets
|
|
write_data len 996, time 279621233333, type sync atom sidx
|
|
dc695d65e8a0cdafee28acd8a5ccf81a 996 delay-moov-elst-signal-second-frag-discont-largets
|
|
write_data len 110, time nopts, type trailer atom -
|
|
write_data len 1223, time nopts, type header atom ftyp
|
|
write_data len 2572, time -333333, type sync atom sidx
|
|
write_data len 996, time 5166667, type sync atom sidx
|
|
write_data len 148, time nopts, type trailer atom -
|
|
d37a7eda807912b9ed05ccfe003a9e4f 4939 vfr
|
|
write_data len 1223, time nopts, type header atom ftyp
|
|
write_data len 2572, time -333333, type sync atom sidx
|
|
write_data len 996, time 5166667, type sync atom sidx
|
|
write_data len 148, time nopts, type trailer atom -
|
|
d37a7eda807912b9ed05ccfe003a9e4f 4939 vfr-noduration
|
|
write_data len 1231, time nopts, type header atom ftyp
|
|
write_data len 1500, time -333333, type sync atom moof
|
|
write_data len 1500, time nopts, type unknown atom -
|
|
write_data len 916, time nopts, type unknown atom -
|
|
write_data len 1500, time 9666667, type sync atom moof
|
|
write_data len 1500, time nopts, type unknown atom -
|
|
write_data len 1004, time nopts, type unknown atom -
|
|
write_data len 148, time nopts, type trailer atom -
|
|
08b6401dc81912e5264245b7233c4ab3 9299 large_frag
|
|
write_data len 1231, time nopts, type header atom ftyp
|
|
write_data len 684, time -33333, type sync atom moof
|
|
write_data len 504, time 800000, type boundary atom moof
|
|
write_data len 420, time 1266667, type boundary atom moof
|
|
write_data len 668, time 1566667, type sync atom moof
|
|
write_data len 440, time 2233333, type boundary atom moof
|
|
write_data len 262, time nopts, type trailer atom -
|
|
a5d087611a9229ba91eb0964cf2f17d9 4209 vfr-noduration-interleave
|
|
write_data len 1231, time nopts, type header atom ftyp
|
|
write_data len 916, time 0, type sync atom moof
|
|
write_data len 908, time 1000000, type sync atom moof
|
|
write_data len 148, time nopts, type trailer atom -
|
|
d81c3a0ce5940a2db74c99ad435e0560 3203 delay-moov-elst-neg-cts
|
|
write_data len 36, time nopts, type header atom ftyp
|
|
write_data len 1123, time nopts, type header atom -
|
|
write_data len 900, time 0, type sync atom moof
|
|
write_data len 908, time 1000000, type sync atom moof
|
|
write_data len 148, time nopts, type trailer atom -
|
|
3be575022e446855bca1e45b7942cc0c 3115 empty-moov-neg-cts
|