Thank you for your response. First, a proper bug report following the guidelines:
I am trying to play a video file. It's an h264, 720p video stream in a matroska container. The file is 1744119808 Bytes (1.7GB) large. When I try to play it in vlc (vlc foo.mkv), it crashes at the same point some 5 to 7 seconds into the file every time. A gdb session with disassembly and a register dump for vlc as suggested for avplay (which does not crash, output below) is further below. vlc --verbose 2 foo.mkv: http://bpaste.net/show/82438/ valgrind foo.mkv: http://bpaste.net/show/82436/ valgrind -v foo.mkv: http://bpaste.net/show/AWprB2k03dpY2ilhU3cA/ When I try to reproduce the problem in vlc with a non-huge sample of the file, no crash occurs. The crash in vlc does not occur with a 264062 kiB sample. It does occur with a 264843 kiB sample. I hope this helps. Kind regards, Lorenz ** The avplay output: avplay version 0.8.5-6:0.8.5-1, Copyright (c) 2003-2012 the Libav developers built on Jan 13 2013 12:05:48 with gcc 4.7.2 [matroska,webm @ 0x955360] Estimating duration from bitrate, this may be inaccurate Input #0, matroska,webm, from 'foo.mkv': Duration: 00:43:47.33, start: 0.000000, bitrate: 384 kb/s Stream #0.0(eng): Video: h264 (High), yuv420p, 1280x720, PAR 1:1 DAR 16:9, 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc Stream #0.1: Audio: ac3, 48000 Hz, stereo, s16, 384 kb/s (default) [matroska,webm @ 0x955360] Unknown entry 0xBDKB sq= 0B f=0/0 f=0/0 [matroska,webm @ 0x955360] Unknown entry 0x89KB sq= 0B f=0/0 [matroska,webm @ 0x955360] Unknown entry 0xB1 [matroska,webm @ 0x955360] Invalid EBML number size tag 0x06 at pos 53004489 (0x328c8c9) [h264 @ 0x1247ec0] Reference 2 >= 2B vq= 200KB sq= 0B f=0/0 [h264 @ 0x1247ec0] error while decoding MB 40 23, bytestream (64205) [h264 @ 0x1247ec0] concealing 1769 DC, 1769 AC, 1769 MV errors ^C 7.43 A-V: -4.511 s:0.0 aq= 0KB vq= 0KB sq= 0B f=0/0 At that point, it hangs. ** vlc gdb session with disassembly and register dump: GNU gdb (GDB) 7.4.1-debian Copyright (C) 2012 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html > This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-linux-gnu". For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>... Reading symbols from /usr/bin/vlc...Reading symbols from /usr/lib/debug/usr/bin/vlc...done. done. (gdb) run Starting program: /usr/bin/vlc foo.mkv warning: no loadable sections found in added symbol-file system-supplied DSO at 0x7ffff7ffa000 [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". [New Thread 0x7fffee855700 (LWP 11938)] [New Thread 0x7fffec8f4700 (LWP 11939)] [0x605108] main libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface. [New Thread 0x7fffe9a48700 (LWP 11940)] [New Thread 0x7fffe2065700 (LWP 11941)] [Thread 0x7fffec8f4700 (LWP 11939) exited] [Thread 0x7fffe2065700 (LWP 11941) exited] [New Thread 0x7fffe2065700 (LWP 11942)] [New Thread 0x7fffec8f4700 (LWP 11943)] [New Thread 0x7fffd4195700 (LWP 11944)] [New Thread 0x7fffcc8bd700 (LWP 11945)] [New Thread 0x7fffc462c700 (LWP 11946)] [New Thread 0x7fffd56dd700 (LWP 11947)] terminate called after throwing an instance of 'libebml::CRTError' what(): Error allocating data: Cannot allocate memory Program received signal SIGABRT, Aborted. [Switching to Thread 0x7fffe2065700 (LWP 11942)] 0x00007ffff69c2475 in *__GI_raise (sig=<optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64 64 ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory. (gdb) bt #0 0x00007ffff69c2475 in *__GI_raise (sig=<optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64 #1 0x00007ffff69c56f0 in *__GI_abort () at abort.c:92 #2 0x00007ffff721789d in __gnu_cxx::__verbose_terminate_handler() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6 #3 0x00007ffff7215996 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6 #4 0x00007ffff72159c3 in std::terminate() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6 #5 0x00007ffff7215bee in __cxa_throw () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6 #6 0x00007fffe80313c6 in libebml::EbmlBinary::ReadData(libebml::IOCallback&, libebml::ScopeMode) () from /usr/lib/x86_64-linux-gnu/libebml.so.3 #7 0x00007fffe3b7a500 in libmatroska::KaxInternalBlock::ReadData(libebml::IOCallback&, libebml::ScopeMode) () from /usr/lib/x86_64-linux-gnu/libmatroska.so.5 #8 0x00007fffe3dcf592 in matroska_segment_c::BlockGet (this=0xa8d9b0, pp_block=<optimized out>, pp_simpleblock=<optimized out>, pb_key_picture=<optimized out>, pb_discardable_picture=0x7fffe2064d67, pi_duration=0x7fffe2064d78) at matroska_segment.cpp:1558 #9 0x00007fffe3dc6d1e in Demux (p_demux=0x7fffd0000cb8) at mkv.cpp:692 #10 0x00007ffff792f40b in demux_Demux (p_demux=0x7fffd0000cb8) at input/demux.h:44 #11 MainLoopDemux (i_start_mdate=1966156018, pb_demux_polled=<synthetic pointer>, pb_changed=<synthetic pointer>, p_input=0xaa8168) at input/input.c:591 #12 MainLoop (p_input=p_input@entry=0xaa8168, b_interactive=b_interactive@entry=true) at input/input.c:765 #13 0x00007ffff792fad5 in Run (obj=0xaa8168) at input/input.c:553 #14 0x00007ffff76c3b50 in start_thread (arg=<optimized out>) at pthread_create.c:304 #15 0x00007ffff6a6aa7d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112 #16 0x0000000000000000 in ?? () (gdb) disass $pc-32,$pc+32 Dump of assembler code from 0x7ffff69c2455 to 0x7ffff69c2495: 0x00007ffff69c2455 <*__GI_raise+21>: mov $0xf000000,%edx 0x00007ffff69c245a <*__GI_raise+26>: add $0x8964c689,%eax 0x00007ffff69c245f <*__GI_raise+31>: add $0x25,%al 0x00007ffff69c2461 <*__GI_raise+33>: rolb (%rdx) 0x00007ffff69c2463 <*__GI_raise+35>: add %al,(%rax) 0x00007ffff69c2465 <*__GI_raise+37>: movslq %edi,%rdx 0x00007ffff69c2468 <*__GI_raise+40>: movslq %esi,%rsi 0x00007ffff69c246b <*__GI_raise+43>: movslq %eax,%rdi 0x00007ffff69c246e <*__GI_raise+46>: mov $0xea,%eax 0x00007ffff69c2473 <*__GI_raise+51>: syscall => 0x00007ffff69c2475 <*__GI_raise+53>: cmp $0xfffffffffffff000,%rax 0x00007ffff69c247b <*__GI_raise+59>: ja 0x7ffff69c2492 <*__GI_raise+82> 0x00007ffff69c247d <*__GI_raise+61>: repz retq 0x00007ffff69c247f <*__GI_raise+63>: nop 0x00007ffff69c2480 <*__GI_raise+64>: test %eax,%eax 0x00007ffff69c2482 <*__GI_raise+66>: jg 0x7ffff69c2465 <*__GI_raise+37> 0x00007ffff69c2484 <*__GI_raise+68>: test $0x7fffffff,%eax 0x00007ffff69c2489 <*__GI_raise+73>: jne 0x7ffff69c24a2 <*__GI_raise+98> 0x00007ffff69c248b <*__GI_raise+75>: mov %esi,%eax 0x00007ffff69c248d <*__GI_raise+77>: nopl (%rax) 0x00007ffff69c2490 <*__GI_raise+80>: jmp 0x7ffff69c2465 <*__GI_raise+37> 0x00007ffff69c2492 <*__GI_raise+82>: mov 0x35197f(%rip),%rdx # 0x7ffff6d13e18 End of assembler dump. (gdb) info all-registers rax 0x0 0 rbx 0x7fffe4041678 140737018861176 rcx 0xffffffffffffffff -1 rdx 0x6 6 rsi 0x2ea6 11942 rdi 0x2e6a 11882 rbp 0x603140 0x603140 rsp 0x7fffe2064a88 0x7fffe2064a88 r8 0xa 10 r9 0x7fffe2065700 140736985454336 r10 0x8 8 r11 0x206 518 r12 0x7fffe403e0c0 140737018847424 r13 0x7fffe2064d67 140736985451879 r14 0xa8d9b0 11065776 r15 0x7fffe403f8b0 140737018853552 rip 0x7ffff69c2475 0x7ffff69c2475 <*__GI_raise+53> eflags 0x206 [ PF IF ] 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 0 (raw 0x00000000000000000000) fctrl 0x37f 895 fstat 0x0 0 ftag 0xffff 65535 fiseg 0x0 0 fioff 0x0 0 foseg 0x0 0 fooff 0x0 0 fop 0x0 0 mxcsr 0x9fe8 [ OE PE DAZ IM DM ZM OM UM PM FZ ] ymm0 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0x0 <repeats 32 times>}, v16_int16 = {0x0 <repeats 16 times>}, v8_int32 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x0, 0x0, 0x0, 0x0}, v2_int128 = {0x00000000000000000000000000000000, 0x00000000000000000000000000000000}} ymm1 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0x0 <repeats 32 times>}, v16_int16 = {0x0 <repeats 16 times>}, v8_int32 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x0, 0x0, 0x0, 0x0}, v2_int128 = {0x00000000000000000000000000000000, 0x00000000000000000000000000000000}} ymm2 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x8000000000000000, 0x8000000000000000, 0x0, 0x0}, v32_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0 <repeats 16 times>}, v16_int16 = {0x0, 0x0, 0xff00, 0xffff, 0xff00, 0xffff, 0xffff, 0xffff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int32 = {0x0, 0xffffff00, 0xffffff00, 0xffffffff, 0x0, 0x0, 0x0, 0x0}, v4_int64 = { 0xffffff0000000000, 0xffffffffffffff00, 0x0, 0x0}, v2_int128 = {0xffffffffffffff00ffffff0000000000, 0x00000000000000000000000000000000}} ymm3 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0x0 <repeats 32 times>}, v16_int16 = {0x0 <repeats 16 times>}, v8_int32 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x0, 0x0, 0x0, 0x0}, v2_int128 = {0x00000000000000000000000000000000, 0x00000000000000000000000000000000}} ymm4 {v8_float = {0x0, 0x10200000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x8000000000000000, 0x8000000000000000, 0x0, 0x0}, v32_int8 = {0x99, 0xe5, 0x63, 0xf0, 0xfc, 0x9d, 0xa4, 0xd4, 0xb0, 0xb0, 0x89, 0x6e, 0x44, 0xe7, 0x12, 0x6d, 0x0 <repeats 16 times>}, v16_int16 = {0xe599, 0xf063, 0x9dfc, 0xd4a4, 0xb0b0, 0x6e89, 0xe744, 0x6d12, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int32 = {0xf063e599, 0xd4a49dfc, 0x6e89b0b0, 0x6d12e744, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0xd4a49dfcf063e599, 0x6d12e7446e89b0b0, 0x0, 0x0}, v2_int128 = {0x6d12e7446e89b0b0d4a49dfcf063e599, 0x00000000000000000000000000000000}} ymm5 {v8_float = {0x0, 0x0, 0x62a2c, 0xfff2c70f, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x8000000000000000, 0x0, 0x0}, v32_int8 = {0x8b, 0x77, 0x3, 0xec, 0x2b, 0x37, 0x7e, 0x27, 0x95, 0x45, 0xc5, 0x48, 0x1a, 0x8f, 0x53, 0xc9, 0x0 <repeats 16 times>}, v16_int16 = {0x778b, 0xec03, 0x372b, 0x277e, 0x4595, 0x48c5, 0x8f1a, 0xc953, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int32 = {0xec03778b, 0x277e372b, 0x48c54595, 0xc9538f1a, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x277e372bec03778b, 0xc9538f1a48c54595, 0x0, 0x0}, v2_int128 = {0xc9538f1a48c54595277e372bec03778b, 0x00000000000000000000000000000000}} ymm6 {v8_float = {0x62a2c, 0xfff2c70f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x8000000000000000, 0x8000000000000000, 0x0, 0x0}, v32_int8 = {0x95, 0x45, 0xc5, 0x48, 0x1a, 0x8f, 0x53, 0xc9, 0xca, 0x39, 0x9b, 0x2e, 0x6e, 0x70, 0xf2, 0xdd, 0x0 <repeats 16 times>}, v16_int16 = {0x4595, 0x48c5, 0x8f1a, 0xc953, 0x39ca, 0x2e9b, 0x706e, 0xddf2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int32 = {0x48c54595, 0xc9538f1a, 0x2e9b39ca, 0xddf2706e, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0xc9538f1a48c54595, 0xddf2706e2e9b39ca, 0x0, 0x0}, v2_int128 = {0xddf2706e2e9b39cac9538f1a48c54595, 0x00000000000000000000000000000000}} ymm7 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0xf0, 0x42, 0x36, 0x1, 0x0, 0x0, 0x0, 0x0, 0x70, 0x31, 0x8b, 0x0 <repeats 21 times>}, v16_int16 = {0x42f0, 0x136, 0x0, 0x0, 0x3170, 0x8b, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int32 = {0x13642f0, 0x0, 0x8b3170, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x13642f0, 0x8b3170, 0x0, 0x0}, v2_int128 = {0x00000000008b317000000000013642f0, 0x00000000000000000000000000000000}} ymm8 {v8_float = {0x1, 0xfffffffd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0xffffffffffffffd2, 0x0, 0x0, 0x0}, v32_int8 = {0xf, 0x2d, 0xc2, 0x3f, 0x9e, 0x6, 0x47, 0xc0, 0x0 <repeats 24 times>}, v16_int16 = {0x2d0f, 0x3fc2, 0x69e, 0xc047, 0x0 <repeats 12 times>}, v8_int32 = {0x3fc22d0f, 0xc047069e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0xc047069e3fc22d0f, 0x0, 0x0, 0x0}, v2_int128 = {0x0000000000000000c047069e3fc22d0f, 0x00000000000000000000000000000000}} ymm9 {v8_float = {0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x1, 0x0, 0x0, 0x0}, v32_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0x3f, 0x0 <repeats 24 times>}, v16_int16 = {0x0, 0x0, 0x0, 0x3ff0, 0x0 <repeats 12 times>}, v8_int32 = {0x0, 0x3ff00000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x3ff0000000000000, 0x0, 0x0, 0x0}, v2_int128 = {0x00000000000000003ff0000000000000, 0x00000000000000000000000000000000}} ymm10 {v8_float = {0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x1, 0x0, 0x0, 0x0}, v32_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0x3f, 0x0 <repeats 24 times>}, v16_int16 = {0x0, 0x0, 0x0, 0x3ff0, 0x0 <repeats 12 times>}, v8_int32 = {0x0, 0x3ff00000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x3ff0000000000000, 0x0, 0x0, 0x0}, v2_int128 = {0x00000000000000003ff0000000000000, 0x00000000000000000000000000000000}} ymm11 {v8_float = {0x9689a800, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0x6a, 0xa2, 0x65, 0x50, 0xf2, 0xea, 0x8f, 0xbd, 0x0 <repeats 24 times>}, v16_int16 = {0xa26a, 0x5065, 0xeaf2, 0xbd8f, 0x0 <repeats 12 times>}, v8_int32 = {0x5065a26a, 0xbd8feaf2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0xbd8feaf25065a26a, 0x0, 0x0, 0x0}, v2_int128 = {0x0000000000000000bd8feaf25065a26a, 0x00000000000000000000000000000000}} ymm12 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0x29, 0xf2, 0x88, 0x6c, 0xa6, 0x49, 0xde, 0x3e, 0x0 <repeats 24 times>}, v16_int16 = {0xf229, 0x6c88, 0x49a6, 0x3ede, 0x0 <repeats 12 times>}, v8_int32 = {0x6c88f229, 0x3ede49a6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x3ede49a66c88f229, 0x0, 0x0, 0x0}, v2_int128 = {0x00000000000000003ede49a66c88f229, 0x00000000000000000000000000000000}} ymm13 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0xb3, 0x12, 0x58, 0x17, 0x64, 0x46, 0xe6, 0x3b, 0x0 <repeats 24 times>}, v16_int16 = {0x12b3, 0x1758, 0x4664, 0x3be6, 0x0 <repeats 12 times>}, v8_int32 = {0x175812b3, 0x3be64664, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x3be64664175812b3, 0x0, 0x0, 0x0}, v2_int128 = {0x00000000000000003be64664175812b3, 0x00000000000000000000000000000000}} ymm14 {v8_float = {0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x2d, 0x0, 0x0, 0x0}, v32_int8 = {0xc0, 0x9, 0xf2, 0x16, 0xb5, 0xdf, 0x46, 0x40, 0x0 <repeats 24 times>}, v16_int16 = {0x9c0, 0x16f2, 0xdfb5, 0x4046, 0x0 <repeats 12 times>}, v8_int32 = {0x16f209c0, 0x4046dfb5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x4046dfb516f209c0, 0x0, 0x0, 0x0}, v2_int128 = {0x00000000000000004046dfb516f209c0, 0x00000000000000000000000000000000}} ymm15 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0x0, 0x1d, 0xd4, 0xf9, 0xfd, 0x2e, 0x6b, 0x3f, 0x0 <repeats 24 times>}, v16_int16 = {0x1d00, 0xf9d4, 0x2efd, 0x3f6b, 0x0 <repeats 12 times>}, v8_int32 = {0xf9d41d00, 0x3f6b2efd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x3f6b2efdf9d41d00, 0x0, 0x0, 0x0}, v2_int128 = {0x00000000000000003f6b2efdf9d41d00, 0x00000000000000000000000000000000}} (gdb) quit