Opened 6 years ago
Closed 6 years ago
#6873 closed defect (fixed)
Crash with muxing a lot of streams in Matroska
Reported by: | mkver | Owned by: | |
---|---|---|---|
Priority: | important | Component: | avformat |
Version: | git-master | Keywords: | mkv crash SIGSEGV regression |
Cc: | Blocked By: | ||
Blocking: | Reproduced by developer: | yes | |
Analyzed by developer: | no |
Description
The Matroska muxer currently doesn't handle muxing a lot of tracks (a lot = 127 or more). This seems to be a design choice: Line 115 of matroskeenc.c (I'm linking to github because git.ffmpeg.org just gives me a "Reading blob failed.") claims that the maximum number of tracks allowed in a Matroska file is 126 and line 2172 says that this assumes that there aren't too many tracks. In fact, the Matroska file format allows an effectively unlimited number of tracks: The TrackID number in the Block and the SimpleBlock Header is an EBML-coded integer (so the first bit that is set indicates the length in bytes of the integer). Notice furthermore that there are no reserved values for the TrackID EBML integer: 11111111 (which for the length of an EBML element indicates an unknown size) just means that the TrackID is 127.
Unfortunately ffmpeg doesn't handle the case of many tracks gracefully. There are instances where it crashes and there are instances where the output files are garbage.
a) My first sample file is "127.Tracks.126.Empty.mks". It has 127 tracks; the first 126 of these don't contain a packet at all. The last track has two subtitle packets. This source file is also the reason for the above remarks concerning TrackID, because I actually didn't expect the odd behaviour to begin with 127 tracks. Maybe a common function is used for TrackIDs and EBML size fields so that 127 is treated like a special case in both cases? Anyway, remuxing it gives me a crash (I'll attach the full log for this, but because trac complains that tickets can't be longer than 262144 characters I'll trim the following a bit):
ffmpeg started on 2017-11-26 at 13:56:34 Report written to "ffmpeg-20171126-135634.log" Command line: ffmpeg.exe -report -i 127.Tracks.126.Empty.mks -map 0 -c copy 127.Tracks.126.Empty.mkv ffmpeg version N-89243-g8794e0c037 Copyright (c) 2000-2017 the FFmpeg developers built with gcc 7.2.0 (Rev1, Built by MSYS2 project) configuration: --disable-decoders --disable-encoders --disable-filters --enable-debug=3 --disable-ffplay --disable-ffprobe --disable-stripping libavutil 56. 3.100 / 56. 3.100 libavcodec 58. 3.105 / 58. 3.105 libavformat 58. 2.102 / 58. 2.102 libavdevice 58. 0.100 / 58. 0.100 libavfilter 7. 4.100 / 7. 4.100 libswscale 5. 0.101 / 5. 0.101 libswresample 3. 0.101 / 3. 0.101 Splitting the commandline. Reading option '-report' ... matched as option 'report' (generate a report) with argument '1'. Reading option '-i' ... matched as input url with argument '127.Tracks.126.Empty.mks'. Reading option '-map' ... matched as option 'map' (set input stream mapping) with argument '0'. Reading option '-c' ... matched as option 'c' (codec name) with argument 'copy'. Reading option '127.Tracks.126.Empty.mkv' ... matched as output url. Finished splitting the commandline. Parsing a group of options: global . Applying option report (generate a report) with argument 1. Successfully parsed a group of options. Parsing a group of options: input url 127.Tracks.126.Empty.mks. Successfully parsed a group of options. Opening an input file: 127.Tracks.126.Empty.mks. [NULL @ 00000000005b6d00] Opening '127.Tracks.126.Empty.mks' for reading [file @ 00000000005b7640] Setting default whitelist 'file,crypto' [matroska,webm @ 00000000005b6d00] Format matroska,webm probed with size=2048 and score=100 st:0 removing common factor 1000000 from timebase st:1 removing common factor 1000000 from timebase [...] st:126 removing common factor 1000000 from timebase [matroska,webm @ 00000000005b6d00] Before avformat_find_stream_info() pos: 14842 bytes read:64835 seeks:1 nb_streams:127 [matroska,webm @ 00000000005b6d00] All info found [matroska,webm @ 00000000005b6d00] After avformat_find_stream_info() pos: 14842 bytes read:64835 seeks:1 frames:0 Input #0, matroska,webm, from '127.Tracks.126.Empty.mks': Metadata: encoder : libebml v1.3.5 + libmatroska v1.4.8 creation_time : 2017-11-25T14:57:03.000000Z Duration: 00:00:05.00, bitrate: 103 kb/s Stream #0:0, 0, 1/1000: Subtitle: subrip (default) Metadata: BPS : 0 BPS-eng : 0 DURATION : 00:00:00.000000000 DURATION-eng : 00:00:00.000000000 NUMBER_OF_FRAMES: 0 NUMBER_OF_FRAMES-eng: 0 NUMBER_OF_BYTES : 0 NUMBER_OF_BYTES-eng: 0 _STATISTICS_WRITING_APP: mkvmerge v18.0.0 ('Apricity') 64-bit _STATISTICS_WRITING_APP-eng: mkvmerge v18.0.0 ('Apricity') 64-bit _STATISTICS_WRITING_DATE_UTC: 2017-11-25 14:57:03 _STATISTICS_WRITING_DATE_UTC-eng: 2017-11-25 14:57:03 _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES [...] Stream #0:126, 0, 1/1000: Subtitle: subrip Metadata: BPS : 16 BPS-eng : 16 DURATION : 00:00:05.000000000 DURATION-eng : 00:00:05.000000000 NUMBER_OF_FRAMES: 2 NUMBER_OF_FRAMES-eng: 2 NUMBER_OF_BYTES : 10 NUMBER_OF_BYTES-eng: 10 _STATISTICS_WRITING_APP: mkvmerge v18.0.0 ('Apricity') 64-bit _STATISTICS_WRITING_APP-eng: mkvmerge v18.0.0 ('Apricity') 64-bit _STATISTICS_WRITING_DATE_UTC: 2017-11-25 14:57:03 _STATISTICS_WRITING_DATE_UTC-eng: 2017-11-25 14:57:03 _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES Successfully opened the file. Parsing a group of options: output url 127.Tracks.126.Empty.mkv. Applying option map (set input stream mapping) with argument 0. Applying option c (codec name) with argument copy. Successfully parsed a group of options. Opening an output file: 127.Tracks.126.Empty.mkv. [file @ 00000000022c7c40] Setting default whitelist 'file,crypto' Successfully opened the file. Output #0, matroska, to '127.Tracks.126.Empty.mkv': Metadata: encoder : Lavf58.2.102 Stream #0:0, 0, 1/1000: Subtitle: subrip (default) Metadata: BPS : 0 BPS-eng : 0 DURATION : 00:00:00.000000000 DURATION-eng : 00:00:00.000000000 NUMBER_OF_FRAMES: 0 NUMBER_OF_FRAMES-eng: 0 NUMBER_OF_BYTES : 0 NUMBER_OF_BYTES-eng: 0 _STATISTICS_WRITING_APP: mkvmerge v18.0.0 ('Apricity') 64-bit _STATISTICS_WRITING_APP-eng: mkvmerge v18.0.0 ('Apricity') 64-bit _STATISTICS_WRITING_DATE_UTC: 2017-11-25 14:57:03 _STATISTICS_WRITING_DATE_UTC-eng: 2017-11-25 14:57:03 _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES [...] Stream #0:126, 0, 1/1000: Subtitle: subrip Metadata: BPS : 16 BPS-eng : 16 DURATION : 00:00:05.000000000 DURATION-eng : 00:00:05.000000000 NUMBER_OF_FRAMES: 2 NUMBER_OF_FRAMES-eng: 2 NUMBER_OF_BYTES : 10 NUMBER_OF_BYTES-eng: 10 _STATISTICS_WRITING_APP: mkvmerge v18.0.0 ('Apricity') 64-bit _STATISTICS_WRITING_APP-eng: mkvmerge v18.0.0 ('Apricity') 64-bit _STATISTICS_WRITING_DATE_UTC: 2017-11-25 14:57:03 _STATISTICS_WRITING_DATE_UTC-eng: 2017-11-25 14:57:03 _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES Stream mapping: Stream #0:0 -> #0:0 (copy) [...] Stream #0:126 -> #0:126 (copy) Press [q] to stop, [?] for help cur_dts is invalid (this is harmless if it occurs once at the start per stream) [...] cur_dts is invalid (this is harmless if it occurs once at the start per stream) No more output streams to write to, finishing. [matroska @ 00000000021f19a0] get_metadata_duration returned: 5000000 [matroska @ 00000000021f19a0] Write early duration from metadata = 5000 [matroska @ 00000000021f19a0] Writing block at offset 12, size 5, pts 1000, dts 1000, duration 2000, keyframe 1 [matroska @ 00000000021f19a0] Writing block at offset 29, size 5, pts 4000, dts 4000, duration 2000, keyframe 1
Here is the gdb output for this crash:
Program received signal SIGSEGV, Segmentation fault. 0x00000001400bb5a5 in mkv_write_packet_internal (s=s@entry=0x21f19a0, pkt=pkt@entry=0x22f470, add_cue=add_cue@entry=0) at I:/media-autobuild_suite-master/build/ffmpeg-git/libavformat/matroskaenc. c:2415 2415 FFMAX(mkv->stream_durations[pkt->stream_index], ts + duratio n); (gdb) bt #0 0x00000001400bb5a5 in mkv_write_packet_internal (s=s@entry=0x21f19a0, pkt=pkt@entry=0x22f470, add_cue=add_cue@entry=0) at I:/media-autobuild_suite-master/build/ffmpeg-git/libavformat/matroskaenc. c:2415 #1 0x00000001400bc921 in mkv_write_packet (pkt=0x22f470, s=0x21f19a0) at I:/media-autobuild_suite-master/build/ffmpeg-git/libavformat/matroskaenc. c:2491 #2 mkv_write_flush_packet (s=0x21f19a0, pkt=0x22f470) at I:/media-autobuild_suite-master/build/ffmpeg-git/libavformat/matroskaenc. c:2513 #3 0x0000000140100e43 in write_packet (pkt=0x22f470, s=0x21f19a0) at I:/media-autobuild_suite-master/build/ffmpeg-git/libavformat/mux.c:754 #4 av_write_trailer (s=s@entry=0x21f19a0) at I:/media-autobuild_suite-master/build/ffmpeg-git/libavformat/mux.c:1273 #5 0x0000000140023bdd in transcode () at I:/media-autobuild_suite-master/build/ffmpeg-git/fftools/ffmpeg.c:4643 #6 0x00000001407ac5f2 in main (argc=<optimized out>, argv=<optimized out>) at I:/media-autobuild_suite-master/build/ffmpeg-git/fftools/ffmpeg.c:4812 (gdb) disass $pc-32,$pc+32 Dump of assembler code from 0x1400bb585 to 0x1400bb5c5: 0x00000001400bb585 <mkv_write_packet_internal+693>: mov %esi,%eax 0x00000001400bb587 <mkv_write_packet_internal+695>: cmovge 0xa0(%r15),%rax 0x00000001400bb58f <mkv_write_packet_internal+703>: mov %rax,0xa0(%r15) 0x00000001400bb596 <mkv_write_packet_internal+710>: xor %eax,%eax 0x00000001400bb598 <mkv_write_packet_internal+712>: test %rdx,%rdx 0x00000001400bb59b <mkv_write_packet_internal+715>: je 0x1400bb5af <mkv_ write_packet_internal+735> 0x00000001400bb59d <mkv_write_packet_internal+717>: movslq 0x24(%r14),%rcx 0x00000001400bb5a1 <mkv_write_packet_internal+721>: lea (%rdx,%rcx,8),%rd x => 0x00000001400bb5a5 <mkv_write_packet_internal+725>: cmp %rsi,(%rdx) 0x00000001400bb5a8 <mkv_write_packet_internal+728>: cmovge (%rdx),%rsi 0x00000001400bb5ac <mkv_write_packet_internal+732>: mov %rsi,(%rdx) 0x00000001400bb5af <mkv_write_packet_internal+735>: add $0xb8,%rsp 0x00000001400bb5b6 <mkv_write_packet_internal+742>: pop %rbx 0x00000001400bb5b7 <mkv_write_packet_internal+743>: pop %rsi 0x00000001400bb5b8 <mkv_write_packet_internal+744>: pop %rdi 0x00000001400bb5b9 <mkv_write_packet_internal+745>: pop %rbp 0x00000001400bb5ba <mkv_write_packet_internal+746>: pop %r12 0x00000001400bb5bc <mkv_write_packet_internal+748>: pop %r13 0x00000001400bb5be <mkv_write_packet_internal+750>: pop %r14 0x00000001400bb5c0 <mkv_write_packet_internal+752>: pop %r15 0x00000001400bb5c2 <mkv_write_packet_internal+754>: retq 0x00000001400bb5c3 <mkv_write_packet_internal+755>: lea 0x775d2e(%rip),%r 8 # 0x1408312f8 <ebml_header+1176> End of assembler dump. (gdb) info all-registers rax 0x0 0 rbx 0x7d0 2000 rcx 0x7e 126 rdx 0xfa8 4008 rsi 0x1770 6000 rdi 0x2338080 36929664 rbp 0x198e1 0x198e1 rsp 0x22f210 0x22f210 r8 0x0 0 r9 0x0 0 r10 0xa 10 r11 0x22f1e0 2290144 r12 0x7e 126 r13 0x1d 29 r14 0x22f470 2290800 r15 0x21f1fc0 35594176 rip 0x1400bb5a5 0x1400bb5a5 <mkv_write_packet_internal+725> eflags 0x10206 [ PF IF RF ] cs 0x33 51 ss 0x2b 43 ds 0x0 0 es 0x0 0 fs 0x0 0 gs 0x0 0 st0 0 (raw 0x00000000000000000000) st1 0 (raw 0x00000000000000000000) st2 0 (raw 0x00000000000000000000) st3 0 (raw 0x00000000000000000000) st4 0 (raw 0x00000000000000000000) st5 0 (raw 0x00000000000000000000) st6 0 (raw 0x00000000000000000000) st7 5 (raw 0x4001a000000000000000) fctrl 0x37f 895 fstat 0x0 0 ftag 0x0 0 fiseg 0x0 0 fioff 0x407a169b 1081743003 foseg 0x0 0 fooff 0x22ddb0 2284976 fop 0x0 0 xmm0 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000} xmm1 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000} xmm2 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000} xmm3 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000} xmm4 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000} xmm5 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000} xmm6 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0, 0x0, 0x0, 0x80, 0x0 <repeats 12 times>}, v8_int16 = {0x0, 0x8000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x80000000, 0x0, 0x0, 0x0}, v2_int64 = {0x80000000, 0x0}, uint128 = 0x00000000000000000000000080000000} xmm7 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0, 0x0, 0x0, 0x80, 0x0 <repeats 12 times>}, v8_int16 = {0x0, 0x8000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x80000000, 0x0, 0x0, 0x0}, v2_int64 = {0x80000000, 0x0}, uint128 = 0x00000000000000000000000080000000} xmm8 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0, 0x0, 0x0, 0x80, 0x0 <repeats 12 times>}, v8_int16 = {0x0, 0x8000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x80000000, 0x0, 0x0, 0x0}, v2_int64 = {0x80000000, 0x0}, uint128 = 0x00000000000000000000000080000000} xmm9 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000} xmm10 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000} xmm11 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000} xmm12 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000} xmm13 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000} xmm14 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000} xmm15 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000} mxcsr 0x1fa0 [ PE IM DM ZM OM UM PM ]
For some reason no crash occurs if one uses a source file like "127.Tracks.126.Empty.mks", but where the last track has only one packet.
Notice also that although the above log claims to write the two blocks it doesn't. See the attached file "127.Tracks.126.Empty.mkv".
b) My second sample has 128 tracks, the first 127 of them empty. The last track contains exactly one packet. This gives a crash upon remuxing, too:
ffmpeg started on 2017-11-26 at 14:32:34 Report written to "ffmpeg-20171126-143234.log" Command line: "I:\\media-autobuild_suite-master\\local64\\bin-video\\ffmpeg.exe" -report -i 128.Tracks.127.Empty.mks -map 0 -c copy 128.Tracks.127.Empty.mkv ffmpeg version N-89243-g8794e0c037 Copyright (c) 2000-2017 the FFmpeg developers built with gcc 7.2.0 (Rev1, Built by MSYS2 project) configuration: --disable-decoders --disable-encoders --disable-filters --enable-debug=3 --disable-ffplay --disable-ffprobe --disable-stripping libavutil 56. 3.100 / 56. 3.100 libavcodec 58. 3.105 / 58. 3.105 libavformat 58. 2.102 / 58. 2.102 libavdevice 58. 0.100 / 58. 0.100 libavfilter 7. 4.100 / 7. 4.100 libswscale 5. 0.101 / 5. 0.101 libswresample 3. 0.101 / 3. 0.101 Splitting the commandline. Reading option '-report' ... matched as option 'report' (generate a report) with argument '1'. Reading option '-i' ... matched as input url with argument '128.Tracks.127.Empty.mks'. Reading option '-map' ... matched as option 'map' (set input stream mapping) with argument '0'. Reading option '-c' ... matched as option 'c' (codec name) with argument 'copy'. Reading option '128.Tracks.127.Empty.mkv' ... matched as output url. Finished splitting the commandline. Parsing a group of options: global . Applying option report (generate a report) with argument 1. Successfully parsed a group of options. Parsing a group of options: input url 128.Tracks.127.Empty.mks. Successfully parsed a group of options. Opening an input file: 128.Tracks.127.Empty.mks. [NULL @ 0000000000596d00] Opening '128.Tracks.127.Empty.mks' for reading [file @ 0000000000597640] Setting default whitelist 'file,crypto' [matroska,webm @ 0000000000596d00] Format matroska,webm probed with size=2048 and score=100 st:0 removing common factor 1000000 from timebase st:1 removing common factor 1000000 from timebase st:2 removing common factor 1000000 from timebase st:3 removing common factor 1000000 from timebase st:4 removing common factor 1000000 from timebase st:5 removing common factor 1000000 from timebase st:6 removing common factor 1000000 from timebase st:7 removing common factor 1000000 from timebase st:8 removing common factor 1000000 from timebase st:9 removing common factor 1000000 from timebase st:10 removing common factor 1000000 from timebase st:11 removing common factor 1000000 from timebase st:12 removing common factor 1000000 from timebase st:13 removing common factor 1000000 from timebase st:14 removing common factor 1000000 from timebase st:15 removing common factor 1000000 from timebase st:16 removing common factor 1000000 from timebase st:17 removing common factor 1000000 from timebase st:18 removing common factor 1000000 from timebase st:19 removing common factor 1000000 from timebase st:20 removing common factor 1000000 from timebase st:21 removing common factor 1000000 from timebase st:22 removing common factor 1000000 from timebase st:23 removing common factor 1000000 from timebase st:24 removing common factor 1000000 from timebase st:25 removing common factor 1000000 from timebase st:26 removing common factor 1000000 from timebase st:27 removing common factor 1000000 from timebase st:28 removing common factor 1000000 from timebase st:29 removing common factor 1000000 from timebase st:30 removing common factor 1000000 from timebase st:31 removing common factor 1000000 from timebase st:32 removing common factor 1000000 from timebase st:33 removing common factor 1000000 from timebase st:34 removing common factor 1000000 from timebase st:35 removing common factor 1000000 from timebase st:36 removing common factor 1000000 from timebase st:37 removing common factor 1000000 from timebase st:38 removing common factor 1000000 from timebase st:39 removing common factor 1000000 from timebase st:40 removing common factor 1000000 from timebase st:41 removing common factor 1000000 from timebase st:42 removing common factor 1000000 from timebase st:43 removing common factor 1000000 from timebase st:44 removing common factor 1000000 from timebase st:45 removing common factor 1000000 from timebase st:46 removing common factor 1000000 from timebase st:47 removing common factor 1000000 from timebase st:48 removing common factor 1000000 from timebase st:49 removing common factor 1000000 from timebase st:50 removing common factor 1000000 from timebase st:51 removing common factor 1000000 from timebase st:52 removing common factor 1000000 from timebase st:53 removing common factor 1000000 from timebase st:54 removing common factor 1000000 from timebase st:55 removing common factor 1000000 from timebase st:56 removing common factor 1000000 from timebase st:57 removing common factor 1000000 from timebase st:58 removing common factor 1000000 from timebase st:59 removing common factor 1000000 from timebase st:60 removing common factor 1000000 from timebase st:61 removing common factor 1000000 from timebase st:62 removing common factor 1000000 from timebase st:63 removing common factor 1000000 from timebase st:64 removing common factor 1000000 from timebase st:65 removing common factor 1000000 from timebase st:66 removing common factor 1000000 from timebase st:67 removing common factor 1000000 from timebase st:68 removing common factor 1000000 from timebase st:69 removing common factor 1000000 from timebase st:70 removing common factor 1000000 from timebase st:71 removing common factor 1000000 from timebase st:72 removing common factor 1000000 from timebase st:73 removing common factor 1000000 from timebase st:74 removing common factor 1000000 from timebase st:75 removing common factor 1000000 from timebase st:76 removing common factor 1000000 from timebase st:77 removing common factor 1000000 from timebase st:78 removing common factor 1000000 from timebase st:79 removing common factor 1000000 from timebase st:80 removing common factor 1000000 from timebase st:81 removing common factor 1000000 from timebase st:82 removing common factor 1000000 from timebase st:83 removing common factor 1000000 from timebase st:84 removing common factor 1000000 from timebase st:85 removing common factor 1000000 from timebase st:86 removing common factor 1000000 from timebase st:87 removing common factor 1000000 from timebase st:88 removing common factor 1000000 from timebase st:89 removing common factor 1000000 from timebase st:90 removing common factor 1000000 from timebase st:91 removing common factor 1000000 from timebase st:92 removing common factor 1000000 from timebase st:93 removing common factor 1000000 from timebase st:94 removing common factor 1000000 from timebase st:95 removing common factor 1000000 from timebase st:96 removing common factor 1000000 from timebase st:97 removing common factor 1000000 from timebase st:98 removing common factor 1000000 from timebase st:99 removing common factor 1000000 from timebase st:100 removing common factor 1000000 from timebase st:101 removing common factor 1000000 from timebase st:102 removing common factor 1000000 from timebase st:103 removing common factor 1000000 from timebase st:104 removing common factor 1000000 from timebase st:105 removing common factor 1000000 from timebase st:106 removing common factor 1000000 from timebase st:107 removing common factor 1000000 from timebase st:108 removing common factor 1000000 from timebase st:109 removing common factor 1000000 from timebase st:110 removing common factor 1000000 from timebase st:111 removing common factor 1000000 from timebase st:112 removing common factor 1000000 from timebase st:113 removing common factor 1000000 from timebase st:114 removing common factor 1000000 from timebase st:115 removing common factor 1000000 from timebase st:116 removing common factor 1000000 from timebase st:117 removing common factor 1000000 from timebase st:118 removing common factor 1000000 from timebase st:119 removing common factor 1000000 from timebase st:120 removing common factor 1000000 from timebase st:121 removing common factor 1000000 from timebase st:122 removing common factor 1000000 from timebase st:123 removing common factor 1000000 from timebase st:124 removing common factor 1000000 from timebase st:125 removing common factor 1000000 from timebase st:126 removing common factor 1000000 from timebase st:127 removing common factor 1000000 from timebase [matroska,webm @ 0000000000596d00] Before avformat_find_stream_info() pos: 14917 bytes read:14960 seeks:0 nb_streams:128 [matroska,webm @ 0000000000596d00] All info found [matroska,webm @ 0000000000596d00] After avformat_find_stream_info() pos: 14917 bytes read:14960 seeks:0 frames:0 Input #0, matroska,webm, from '128.Tracks.127.Empty.mks': Metadata: encoder : libebml v1.3.5 + libmatroska v1.4.8 creation_time : 2017-11-26T13:10:44.000000Z Duration: 00:00:02.00, bitrate: 59 kb/s Stream #0:0, 0, 1/1000: Subtitle: subrip (default) Stream #0:1, 0, 1/1000: Subtitle: subrip Stream #0:2, 0, 1/1000: Subtitle: subrip Stream #0:3, 0, 1/1000: Subtitle: subrip Stream #0:4, 0, 1/1000: Subtitle: subrip Stream #0:5, 0, 1/1000: Subtitle: subrip Stream #0:6, 0, 1/1000: Subtitle: subrip Stream #0:7, 0, 1/1000: Subtitle: subrip Stream #0:8, 0, 1/1000: Subtitle: subrip Stream #0:9, 0, 1/1000: Subtitle: subrip Stream #0:10, 0, 1/1000: Subtitle: subrip Stream #0:11, 0, 1/1000: Subtitle: subrip Stream #0:12, 0, 1/1000: Subtitle: subrip Stream #0:13, 0, 1/1000: Subtitle: subrip Stream #0:14, 0, 1/1000: Subtitle: subrip Stream #0:15, 0, 1/1000: Subtitle: subrip Stream #0:16, 0, 1/1000: Subtitle: subrip Stream #0:17, 0, 1/1000: Subtitle: subrip Stream #0:18, 0, 1/1000: Subtitle: subrip Stream #0:19, 0, 1/1000: Subtitle: subrip Stream #0:20, 0, 1/1000: Subtitle: subrip Stream #0:21, 0, 1/1000: Subtitle: subrip Stream #0:22, 0, 1/1000: Subtitle: subrip Stream #0:23, 0, 1/1000: Subtitle: subrip Stream #0:24, 0, 1/1000: Subtitle: subrip Stream #0:25, 0, 1/1000: Subtitle: subrip Stream #0:26, 0, 1/1000: Subtitle: subrip Stream #0:27, 0, 1/1000: Subtitle: subrip Stream #0:28, 0, 1/1000: Subtitle: subrip Stream #0:29, 0, 1/1000: Subtitle: subrip Stream #0:30, 0, 1/1000: Subtitle: subrip Stream #0:31, 0, 1/1000: Subtitle: subrip Stream #0:32, 0, 1/1000: Subtitle: subrip Stream #0:33, 0, 1/1000: Subtitle: subrip Stream #0:34, 0, 1/1000: Subtitle: subrip Stream #0:35, 0, 1/1000: Subtitle: subrip Stream #0:36, 0, 1/1000: Subtitle: subrip Stream #0:37, 0, 1/1000: Subtitle: subrip Stream #0:38, 0, 1/1000: Subtitle: subrip Stream #0:39, 0, 1/1000: Subtitle: subrip Stream #0:40, 0, 1/1000: Subtitle: subrip Stream #0:41, 0, 1/1000: Subtitle: subrip Stream #0:42, 0, 1/1000: Subtitle: subrip Stream #0:43, 0, 1/1000: Subtitle: subrip Stream #0:44, 0, 1/1000: Subtitle: subrip Stream #0:45, 0, 1/1000: Subtitle: subrip Stream #0:46, 0, 1/1000: Subtitle: subrip Stream #0:47, 0, 1/1000: Subtitle: subrip Stream #0:48, 0, 1/1000: Subtitle: subrip Stream #0:49, 0, 1/1000: Subtitle: subrip Stream #0:50, 0, 1/1000: Subtitle: subrip Stream #0:51, 0, 1/1000: Subtitle: subrip Stream #0:52, 0, 1/1000: Subtitle: subrip Stream #0:53, 0, 1/1000: Subtitle: subrip Stream #0:54, 0, 1/1000: Subtitle: subrip Stream #0:55, 0, 1/1000: Subtitle: subrip Stream #0:56, 0, 1/1000: Subtitle: subrip Stream #0:57, 0, 1/1000: Subtitle: subrip Stream #0:58, 0, 1/1000: Subtitle: subrip Stream #0:59, 0, 1/1000: Subtitle: subrip Stream #0:60, 0, 1/1000: Subtitle: subrip Stream #0:61, 0, 1/1000: Subtitle: subrip Stream #0:62, 0, 1/1000: Subtitle: subrip Stream #0:63, 0, 1/1000: Subtitle: subrip Stream #0:64, 0, 1/1000: Subtitle: subrip Stream #0:65, 0, 1/1000: Subtitle: subrip Stream #0:66, 0, 1/1000: Subtitle: subrip Stream #0:67, 0, 1/1000: Subtitle: subrip Stream #0:68, 0, 1/1000: Subtitle: subrip Stream #0:69, 0, 1/1000: Subtitle: subrip Stream #0:70, 0, 1/1000: Subtitle: subrip Stream #0:71, 0, 1/1000: Subtitle: subrip Stream #0:72, 0, 1/1000: Subtitle: subrip Stream #0:73, 0, 1/1000: Subtitle: subrip Stream #0:74, 0, 1/1000: Subtitle: subrip Stream #0:75, 0, 1/1000: Subtitle: subrip Stream #0:76, 0, 1/1000: Subtitle: subrip Stream #0:77, 0, 1/1000: Subtitle: subrip Stream #0:78, 0, 1/1000: Subtitle: subrip Stream #0:79, 0, 1/1000: Subtitle: subrip Stream #0:80, 0, 1/1000: Subtitle: subrip Stream #0:81, 0, 1/1000: Subtitle: subrip Stream #0:82, 0, 1/1000: Subtitle: subrip Stream #0:83, 0, 1/1000: Subtitle: subrip Stream #0:84, 0, 1/1000: Subtitle: subrip Stream #0:85, 0, 1/1000: Subtitle: subrip Stream #0:86, 0, 1/1000: Subtitle: subrip Stream #0:87, 0, 1/1000: Subtitle: subrip Stream #0:88, 0, 1/1000: Subtitle: subrip Stream #0:89, 0, 1/1000: Subtitle: subrip Stream #0:90, 0, 1/1000: Subtitle: subrip Stream #0:91, 0, 1/1000: Subtitle: subrip Stream #0:92, 0, 1/1000: Subtitle: subrip Stream #0:93, 0, 1/1000: Subtitle: subrip Stream #0:94, 0, 1/1000: Subtitle: subrip Stream #0:95, 0, 1/1000: Subtitle: subrip Stream #0:96, 0, 1/1000: Subtitle: subrip Stream #0:97, 0, 1/1000: Subtitle: subrip Stream #0:98, 0, 1/1000: Subtitle: subrip Stream #0:99, 0, 1/1000: Subtitle: subrip Stream #0:100, 0, 1/1000: Subtitle: subrip Stream #0:101, 0, 1/1000: Subtitle: subrip Stream #0:102, 0, 1/1000: Subtitle: subrip Stream #0:103, 0, 1/1000: Subtitle: subrip Stream #0:104, 0, 1/1000: Subtitle: subrip Stream #0:105, 0, 1/1000: Subtitle: subrip Stream #0:106, 0, 1/1000: Subtitle: subrip Stream #0:107, 0, 1/1000: Subtitle: subrip Stream #0:108, 0, 1/1000: Subtitle: subrip Stream #0:109, 0, 1/1000: Subtitle: subrip Stream #0:110, 0, 1/1000: Subtitle: subrip Stream #0:111, 0, 1/1000: Subtitle: subrip Stream #0:112, 0, 1/1000: Subtitle: subrip Stream #0:113, 0, 1/1000: Subtitle: subrip Stream #0:114, 0, 1/1000: Subtitle: subrip Stream #0:115, 0, 1/1000: Subtitle: subrip Stream #0:116, 0, 1/1000: Subtitle: subrip Stream #0:117, 0, 1/1000: Subtitle: subrip Stream #0:118, 0, 1/1000: Subtitle: subrip Stream #0:119, 0, 1/1000: Subtitle: subrip Stream #0:120, 0, 1/1000: Subtitle: subrip Stream #0:121, 0, 1/1000: Subtitle: subrip Stream #0:122, 0, 1/1000: Subtitle: subrip Stream #0:123, 0, 1/1000: Subtitle: subrip Stream #0:124, 0, 1/1000: Subtitle: subrip Stream #0:125, 0, 1/1000: Subtitle: subrip Stream #0:126, 0, 1/1000: Subtitle: subrip Stream #0:127, 0, 1/1000: Subtitle: subrip Successfully opened the file. Parsing a group of options: output url 128.Tracks.127.Empty.mkv. Applying option map (set input stream mapping) with argument 0. Applying option c (codec name) with argument copy. Successfully parsed a group of options. Opening an output file: 128.Tracks.127.Empty.mkv. [file @ 000000000225bba0] Setting default whitelist 'file,crypto' Successfully opened the file. Output #0, matroska, to '128.Tracks.127.Empty.mkv': Metadata: encoder : Lavf58.2.102 Stream #0:0, 0, 1/1000: Subtitle: subrip (default) Stream #0:1, 0, 1/1000: Subtitle: subrip Stream #0:2, 0, 1/1000: Subtitle: subrip Stream #0:3, 0, 1/1000: Subtitle: subrip Stream #0:4, 0, 1/1000: Subtitle: subrip Stream #0:5, 0, 1/1000: Subtitle: subrip Stream #0:6, 0, 1/1000: Subtitle: subrip Stream #0:7, 0, 1/1000: Subtitle: subrip Stream #0:8, 0, 1/1000: Subtitle: subrip Stream #0:9, 0, 1/1000: Subtitle: subrip Stream #0:10, 0, 1/1000: Subtitle: subrip Stream #0:11, 0, 1/1000: Subtitle: subrip Stream #0:12, 0, 1/1000: Subtitle: subrip Stream #0:13, 0, 1/1000: Subtitle: subrip Stream #0:14, 0, 1/1000: Subtitle: subrip Stream #0:15, 0, 1/1000: Subtitle: subrip Stream #0:16, 0, 1/1000: Subtitle: subrip Stream #0:17, 0, 1/1000: Subtitle: subrip Stream #0:18, 0, 1/1000: Subtitle: subrip Stream #0:19, 0, 1/1000: Subtitle: subrip Stream #0:20, 0, 1/1000: Subtitle: subrip Stream #0:21, 0, 1/1000: Subtitle: subrip Stream #0:22, 0, 1/1000: Subtitle: subrip Stream #0:23, 0, 1/1000: Subtitle: subrip Stream #0:24, 0, 1/1000: Subtitle: subrip Stream #0:25, 0, 1/1000: Subtitle: subrip Stream #0:26, 0, 1/1000: Subtitle: subrip Stream #0:27, 0, 1/1000: Subtitle: subrip Stream #0:28, 0, 1/1000: Subtitle: subrip Stream #0:29, 0, 1/1000: Subtitle: subrip Stream #0:30, 0, 1/1000: Subtitle: subrip Stream #0:31, 0, 1/1000: Subtitle: subrip Stream #0:32, 0, 1/1000: Subtitle: subrip Stream #0:33, 0, 1/1000: Subtitle: subrip Stream #0:34, 0, 1/1000: Subtitle: subrip Stream #0:35, 0, 1/1000: Subtitle: subrip Stream #0:36, 0, 1/1000: Subtitle: subrip Stream #0:37, 0, 1/1000: Subtitle: subrip Stream #0:38, 0, 1/1000: Subtitle: subrip Stream #0:39, 0, 1/1000: Subtitle: subrip Stream #0:40, 0, 1/1000: Subtitle: subrip Stream #0:41, 0, 1/1000: Subtitle: subrip Stream #0:42, 0, 1/1000: Subtitle: subrip Stream #0:43, 0, 1/1000: Subtitle: subrip Stream #0:44, 0, 1/1000: Subtitle: subrip Stream #0:45, 0, 1/1000: Subtitle: subrip Stream #0:46, 0, 1/1000: Subtitle: subrip Stream #0:47, 0, 1/1000: Subtitle: subrip Stream #0:48, 0, 1/1000: Subtitle: subrip Stream #0:49, 0, 1/1000: Subtitle: subrip Stream #0:50, 0, 1/1000: Subtitle: subrip Stream #0:51, 0, 1/1000: Subtitle: subrip Stream #0:52, 0, 1/1000: Subtitle: subrip Stream #0:53, 0, 1/1000: Subtitle: subrip Stream #0:54, 0, 1/1000: Subtitle: subrip Stream #0:55, 0, 1/1000: Subtitle: subrip Stream #0:56, 0, 1/1000: Subtitle: subrip Stream #0:57, 0, 1/1000: Subtitle: subrip Stream #0:58, 0, 1/1000: Subtitle: subrip Stream #0:59, 0, 1/1000: Subtitle: subrip Stream #0:60, 0, 1/1000: Subtitle: subrip Stream #0:61, 0, 1/1000: Subtitle: subrip Stream #0:62, 0, 1/1000: Subtitle: subrip Stream #0:63, 0, 1/1000: Subtitle: subrip Stream #0:64, 0, 1/1000: Subtitle: subrip Stream #0:65, 0, 1/1000: Subtitle: subrip Stream #0:66, 0, 1/1000: Subtitle: subrip Stream #0:67, 0, 1/1000: Subtitle: subrip Stream #0:68, 0, 1/1000: Subtitle: subrip Stream #0:69, 0, 1/1000: Subtitle: subrip Stream #0:70, 0, 1/1000: Subtitle: subrip Stream #0:71, 0, 1/1000: Subtitle: subrip Stream #0:72, 0, 1/1000: Subtitle: subrip Stream #0:73, 0, 1/1000: Subtitle: subrip Stream #0:74, 0, 1/1000: Subtitle: subrip Stream #0:75, 0, 1/1000: Subtitle: subrip Stream #0:76, 0, 1/1000: Subtitle: subrip Stream #0:77, 0, 1/1000: Subtitle: subrip Stream #0:78, 0, 1/1000: Subtitle: subrip Stream #0:79, 0, 1/1000: Subtitle: subrip Stream #0:80, 0, 1/1000: Subtitle: subrip Stream #0:81, 0, 1/1000: Subtitle: subrip Stream #0:82, 0, 1/1000: Subtitle: subrip Stream #0:83, 0, 1/1000: Subtitle: subrip Stream #0:84, 0, 1/1000: Subtitle: subrip Stream #0:85, 0, 1/1000: Subtitle: subrip Stream #0:86, 0, 1/1000: Subtitle: subrip Stream #0:87, 0, 1/1000: Subtitle: subrip Stream #0:88, 0, 1/1000: Subtitle: subrip Stream #0:89, 0, 1/1000: Subtitle: subrip Stream #0:90, 0, 1/1000: Subtitle: subrip Stream #0:91, 0, 1/1000: Subtitle: subrip Stream #0:92, 0, 1/1000: Subtitle: subrip Stream #0:93, 0, 1/1000: Subtitle: subrip Stream #0:94, 0, 1/1000: Subtitle: subrip Stream #0:95, 0, 1/1000: Subtitle: subrip Stream #0:96, 0, 1/1000: Subtitle: subrip Stream #0:97, 0, 1/1000: Subtitle: subrip Stream #0:98, 0, 1/1000: Subtitle: subrip Stream #0:99, 0, 1/1000: Subtitle: subrip Stream #0:100, 0, 1/1000: Subtitle: subrip Stream #0:101, 0, 1/1000: Subtitle: subrip Stream #0:102, 0, 1/1000: Subtitle: subrip Stream #0:103, 0, 1/1000: Subtitle: subrip Stream #0:104, 0, 1/1000: Subtitle: subrip Stream #0:105, 0, 1/1000: Subtitle: subrip Stream #0:106, 0, 1/1000: Subtitle: subrip Stream #0:107, 0, 1/1000: Subtitle: subrip Stream #0:108, 0, 1/1000: Subtitle: subrip Stream #0:109, 0, 1/1000: Subtitle: subrip Stream #0:110, 0, 1/1000: Subtitle: subrip Stream #0:111, 0, 1/1000: Subtitle: subrip Stream #0:112, 0, 1/1000: Subtitle: subrip Stream #0:113, 0, 1/1000: Subtitle: subrip Stream #0:114, 0, 1/1000: Subtitle: subrip Stream #0:115, 0, 1/1000: Subtitle: subrip Stream #0:116, 0, 1/1000: Subtitle: subrip Stream #0:117, 0, 1/1000: Subtitle: subrip Stream #0:118, 0, 1/1000: Subtitle: subrip Stream #0:119, 0, 1/1000: Subtitle: subrip Stream #0:120, 0, 1/1000: Subtitle: subrip Stream #0:121, 0, 1/1000: Subtitle: subrip Stream #0:122, 0, 1/1000: Subtitle: subrip Stream #0:123, 0, 1/1000: Subtitle: subrip Stream #0:124, 0, 1/1000: Subtitle: subrip Stream #0:125, 0, 1/1000: Subtitle: subrip Stream #0:126, 0, 1/1000: Subtitle: subrip Stream #0:127, 0, 1/1000: Subtitle: subrip Stream mapping: Stream #0:0 -> #0:0 (copy) Stream #0:1 -> #0:1 (copy) Stream #0:2 -> #0:2 (copy) Stream #0:3 -> #0:3 (copy) Stream #0:4 -> #0:4 (copy) Stream #0:5 -> #0:5 (copy) Stream #0:6 -> #0:6 (copy) Stream #0:7 -> #0:7 (copy) Stream #0:8 -> #0:8 (copy) Stream #0:9 -> #0:9 (copy) Stream #0:10 -> #0:10 (copy) Stream #0:11 -> #0:11 (copy) Stream #0:12 -> #0:12 (copy) Stream #0:13 -> #0:13 (copy) Stream #0:14 -> #0:14 (copy) Stream #0:15 -> #0:15 (copy) Stream #0:16 -> #0:16 (copy) Stream #0:17 -> #0:17 (copy) Stream #0:18 -> #0:18 (copy) Stream #0:19 -> #0:19 (copy) Stream #0:20 -> #0:20 (copy) Stream #0:21 -> #0:21 (copy) Stream #0:22 -> #0:22 (copy) Stream #0:23 -> #0:23 (copy) Stream #0:24 -> #0:24 (copy) Stream #0:25 -> #0:25 (copy) Stream #0:26 -> #0:26 (copy) Stream #0:27 -> #0:27 (copy) Stream #0:28 -> #0:28 (copy) Stream #0:29 -> #0:29 (copy) Stream #0:30 -> #0:30 (copy) Stream #0:31 -> #0:31 (copy) Stream #0:32 -> #0:32 (copy) Stream #0:33 -> #0:33 (copy) Stream #0:34 -> #0:34 (copy) Stream #0:35 -> #0:35 (copy) Stream #0:36 -> #0:36 (copy) Stream #0:37 -> #0:37 (copy) Stream #0:38 -> #0:38 (copy) Stream #0:39 -> #0:39 (copy) Stream #0:40 -> #0:40 (copy) Stream #0:41 -> #0:41 (copy) Stream #0:42 -> #0:42 (copy) Stream #0:43 -> #0:43 (copy) Stream #0:44 -> #0:44 (copy) Stream #0:45 -> #0:45 (copy) Stream #0:46 -> #0:46 (copy) Stream #0:47 -> #0:47 (copy) Stream #0:48 -> #0:48 (copy) Stream #0:49 -> #0:49 (copy) Stream #0:50 -> #0:50 (copy) Stream #0:51 -> #0:51 (copy) Stream #0:52 -> #0:52 (copy) Stream #0:53 -> #0:53 (copy) Stream #0:54 -> #0:54 (copy) Stream #0:55 -> #0:55 (copy) Stream #0:56 -> #0:56 (copy) Stream #0:57 -> #0:57 (copy) Stream #0:58 -> #0:58 (copy) Stream #0:59 -> #0:59 (copy) Stream #0:60 -> #0:60 (copy) Stream #0:61 -> #0:61 (copy) Stream #0:62 -> #0:62 (copy) Stream #0:63 -> #0:63 (copy) Stream #0:64 -> #0:64 (copy) Stream #0:65 -> #0:65 (copy) Stream #0:66 -> #0:66 (copy) Stream #0:67 -> #0:67 (copy) Stream #0:68 -> #0:68 (copy) Stream #0:69 -> #0:69 (copy) Stream #0:70 -> #0:70 (copy) Stream #0:71 -> #0:71 (copy) Stream #0:72 -> #0:72 (copy) Stream #0:73 -> #0:73 (copy) Stream #0:74 -> #0:74 (copy) Stream #0:75 -> #0:75 (copy) Stream #0:76 -> #0:76 (copy) Stream #0:77 -> #0:77 (copy) Stream #0:78 -> #0:78 (copy) Stream #0:79 -> #0:79 (copy) Stream #0:80 -> #0:80 (copy) Stream #0:81 -> #0:81 (copy) Stream #0:82 -> #0:82 (copy) Stream #0:83 -> #0:83 (copy) Stream #0:84 -> #0:84 (copy) Stream #0:85 -> #0:85 (copy) Stream #0:86 -> #0:86 (copy) Stream #0:87 -> #0:87 (copy) Stream #0:88 -> #0:88 (copy) Stream #0:89 -> #0:89 (copy) Stream #0:90 -> #0:90 (copy) Stream #0:91 -> #0:91 (copy) Stream #0:92 -> #0:92 (copy) Stream #0:93 -> #0:93 (copy) Stream #0:94 -> #0:94 (copy) Stream #0:95 -> #0:95 (copy) Stream #0:96 -> #0:96 (copy) Stream #0:97 -> #0:97 (copy) Stream #0:98 -> #0:98 (copy) Stream #0:99 -> #0:99 (copy) Stream #0:100 -> #0:100 (copy) Stream #0:101 -> #0:101 (copy) Stream #0:102 -> #0:102 (copy) Stream #0:103 -> #0:103 (copy) Stream #0:104 -> #0:104 (copy) Stream #0:105 -> #0:105 (copy) Stream #0:106 -> #0:106 (copy) Stream #0:107 -> #0:107 (copy) Stream #0:108 -> #0:108 (copy) Stream #0:109 -> #0:109 (copy) Stream #0:110 -> #0:110 (copy) Stream #0:111 -> #0:111 (copy) Stream #0:112 -> #0:112 (copy) Stream #0:113 -> #0:113 (copy) Stream #0:114 -> #0:114 (copy) Stream #0:115 -> #0:115 (copy) Stream #0:116 -> #0:116 (copy) Stream #0:117 -> #0:117 (copy) Stream #0:118 -> #0:118 (copy) Stream #0:119 -> #0:119 (copy) Stream #0:120 -> #0:120 (copy) Stream #0:121 -> #0:121 (copy) Stream #0:122 -> #0:122 (copy) Stream #0:123 -> #0:123 (copy) Stream #0:124 -> #0:124 (copy) Stream #0:125 -> #0:125 (copy) Stream #0:126 -> #0:126 (copy) Stream #0:127 -> #0:127 (copy) Press [q] to stop, [?] for help cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) cur_dts is invalid (this is harmless if it occurs once at the start per stream) No more output streams to write to, finishing. [matroska @ 0000000001d72920] get_metadata_duration returned: 0 [matroska @ 0000000001d72920] Writing block at offset 12, size 5, pts 1000, dts 1000, duration 2000, keyframe 1 [matroska @ 0000000001d72920] end duration = 3000
Here is the gdb output:
Program received signal SIGSEGV, Segmentation fault. mkv_write_trailer (s=0x1d72920) at I:/media-autobuild_suite-master/build/ffmpeg-git/libavformat/matroskaenc. c:2597 2597 if (mkv->stream_duration_offsets[i] > 0) { (gdb) bt #0 mkv_write_trailer (s=0x1d72920) at I:/media-autobuild_suite-master/build/ffmpeg-git/libavformat/matroskaenc. c:2597 #1 0x0000000140100fa0 in av_write_trailer (s=s@entry=0x1d72920) at I:/media-autobuild_suite-master/build/ffmpeg-git/libavformat/mux.c:1296 #2 0x0000000140023bdd in transcode () at I:/media-autobuild_suite-master/build/ffmpeg-git/fftools/ffmpeg.c:4643 #3 0x00000001407ac5f2 in main (argc=<optimized out>, argv=<optimized out>) at I:/media-autobuild_suite-master/build/ffmpeg-git/fftools/ffmpeg.c:4812 (gdb) disass $pc-32,$pc+32 Dump of assembler code from 0x1400bc080 to 0x1400bc0c0: 0x00000001400bc080 <mkv_write_trailer+752>: mov %eax,0x38(%rsp) 0x00000001400bc084 <mkv_write_trailer+756>: test %edx,%edx 0x00000001400bc086 <mkv_write_trailer+758>: je 0x1400bc0bf <mkv_write_tr ailer+815> 0x00000001400bc088 <mkv_write_trailer+760>: mov 0x550(%rbx),%rcx 0x00000001400bc08f <mkv_write_trailer+767>: lea 0x40(%rsp),%r14 0x00000001400bc094 <mkv_write_trailer+772>: xor %r15d,%r15d 0x00000001400bc097 <mkv_write_trailer+775>: nopw 0x0(%rax,%rax,1) => 0x00000001400bc0a0 <mkv_write_trailer+784>: cmpq $0x0,(%rcx,%r15,8) 0x00000001400bc0a5 <mkv_write_trailer+789>: lea 0x0(,%r15,8),%rax 0x00000001400bc0ad <mkv_write_trailer+797>: jg 0x1400bc1e3 <mkv_write_tr ailer+1107> 0x00000001400bc0b3 <mkv_write_trailer+803>: lea 0x1(%r15),%eax 0x00000001400bc0b7 <mkv_write_trailer+807>: add $0x1,%r15 0x00000001400bc0bb <mkv_write_trailer+811>: cmp %eax,%edx 0x00000001400bc0bd <mkv_write_trailer+813>: ja 0x1400bc0a0 <mkv_write_tr ailer+784> 0x00000001400bc0bf <mkv_write_trailer+815>: mov 0x38(%rsp),%rdx End of assembler dump. (gdb) info all-registers rax 0x223d 8765 rbx 0x1d72f40 30879552 rcx 0x0 0 rdx 0x80 128 rsi 0x1d72920 30877984 rdi 0x2652080 40181888 rbp 0x1d72f48 0x1d72f48 rsp 0x22f320 0x22f320 r8 0x1 1 r9 0x1 1 r10 0x590158 5833048 r11 0x22ee18 2289176 r12 0x1d7308c 30879884 r13 0x3a9c 15004 r14 0x22f360 2290528 r15 0x0 0 rip 0x1400bc0a0 0x1400bc0a0 <mkv_write_trailer+784> eflags 0x10246 [ PF ZF IF RF ] cs 0x33 51 ss 0x2b 43 ds 0x0 0 es 0x0 0 fs 0x0 0 gs 0x0 0 st0 0 (raw 0x00000000000000000000) st1 0 (raw 0x00000000000000000000) st2 0 (raw 0x00000000000000000000) st3 0 (raw 0x00000000000000000000) st4 0 (raw 0x00000000000000000000) st5 0 (raw 0x00000000000000000000) st6 0 (raw 0x00000000000000000000) st7 2 (raw 0x40008000000000000000) fctrl 0x37f 895 fstat 0x0 0 ftag 0x0 0 fiseg 0x0 0 fioff 0x407a169b 1081743003 foseg 0x0 0 fooff 0x22ddb0 2284976 fop 0x0 0 xmm0 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000} xmm1 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000} xmm2 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000} xmm3 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000} xmm4 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000} xmm5 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000} xmm6 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0, 0x0, 0x0, 0x80, 0x0 <repeats 12 times>}, v8_int16 = {0x0, 0x8000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x80000000, 0x0, 0x0, 0x0}, v2_int64 = {0x80000000, 0x0}, uint128 = 0x00000000000000000000000080000000} xmm7 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0, 0x0, 0x0, 0x80, 0x0 <repeats 12 times>}, v8_int16 = {0x0, 0x8000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x80000000, 0x0, 0x0, 0x0}, v2_int64 = {0x80000000, 0x0}, uint128 = 0x00000000000000000000000080000000} xmm8 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0, 0x0, 0x0, 0x80, 0x0 <repeats 12 times>}, v8_int16 = {0x0, 0x8000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x80000000, 0x0, 0x0, 0x0}, v2_int64 = {0x80000000, 0x0}, uint128 = 0x00000000000000000000000080000000} xmm9 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000} xmm10 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000} xmm11 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000} xmm12 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000} xmm13 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000} xmm14 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000} xmm15 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000} mxcsr 0x1fa0 [ PE IM DM ZM OM UM PM ]
This time the block has been written; even the cues have been written. But the TrackID is written as 0x80 in the block, indicating an invalid TrackID 0.
c) I didn't get crashes when the tracks with TrackID 127 and 128 are empty (contain no packets). But the actually written TrackIDs for such tracks are wrong: 129 becomes 1, 130 2... This can be reproduced with "129.Tracks.128.Empty.mks".
Attachments (4)
Change History (13)
by , 6 years ago
Attachment: | 127.Tracks.126.Empty.mks added |
---|
by , 6 years ago
Attachment: | 128.Tracks.127.Empty.mks added |
---|
128 tracks, the first 127 of which are empty, the last one contains one block.
by , 6 years ago
Attachment: | ffmpeg-20171126-135634.log added |
---|
The report generated by ffmpeg in case a) outlined above.
comment:1 by , 6 years ago
While more then 127 tracks is technically allowed, the mkv specification discourages using more then that. Obviously avformat should not crash, so that should be fixed.
follow-up: 3 comment:2 by , 6 years ago
Keywords: | regression added |
---|
Why are there two samples allowing to reproduce the issue?
Please do not attach samples that do not allow to reproduce, this has often lead to confusion in the past.
comment:3 by , 6 years ago
Replying to cehoyos:
Why are there two samples allowing to reproduce the issue?
Please do not attach samples that do not allow to reproduce, this has often lead to confusion in the past.
Because there might be two different reasons for the crashes. At least the gdb output shows that the segmentation fault occurs at line 2597 for b), for a) it's 2415. So I have uploaded samples for both. But I considered all of these three bugs to be so closely related that I have only opened one ticket. I have also uploaded a sample for c) (namely that the TrackID actually written to the blocks of the file are always only the seven least significant bits).
comment:4 by , 6 years ago
Reproduced by developer: | set |
---|---|
Status: | new → open |
For the 127 sample, this is a regression since 31852540d4fba0c4e8a16d0b3ddff08fc98e48fd
follow-up: 7 comment:6 by , 6 years ago
For the 128 sample, this is a regression since 7be0f48a32155ef9f471ffc5a1b41d662ea337f1
follow-up: 8 comment:7 by , 6 years ago
Replying to cehoyos:
For the 128 sample, this is a regression since 7be0f48a32155ef9f471ffc5a1b41d662ea337f1
That commit added a stream limit, but didn't enforce it anywhere...
Of course things are crashing with more than 126 streams. Code introduced in that commit is trying to write timestamps beyond the last_track_timestamp buffer, overwriting unrelated fields in the MatroskaMuxContext struct in the process, which currently means the stream duration pointers.
With more than 128 streams you would probably get a crash in lines 2182/2184 instead.
comment:8 by , 6 years ago
Replying to jamrial:
With more than 128 streams you would probably get a crash in lines 2182/2184 instead.
This is not what I experienced: It's just that the TrackIDs are not correct: The TrackID is encoded in one byte and therefore only the 7 least significant bits are correct. But there is no crash (in my tests).
comment:9 by , 6 years ago
Resolution: | → fixed |
---|---|
Status: | open → closed |
The stream limit is now effective enforced since 9d464dc3fccb53f1e7c83e3453084c1a7fb90503.
127 tracks, the first 126 of which are empty, the last one contains two blocks.