Opened 11 years ago
Closed 9 years ago
#3515 closed defect (needs_more_info)
Crashes or artifacts when playing a specific file/stream
Reported by: | Rafał Hirsz | Owned by: | |
---|---|---|---|
Priority: | important | Component: | undetermined |
Version: | unspecified | Keywords: | crash vlc |
Cc: | Blocked By: | ||
Blocking: | Reproduced by developer: | no | |
Analyzed by developer: | no |
Description
Trying to stream http://s3.amazonaws.com/ffmpeg-testing/badaccess.mp4 using Chromium or VLC results in artifacts and/or crashes.
Why am I submitting this bug report here? Both apps' video playing capabilities are powered by ffmpeg, so I think that the issue lies here somewhere.
The problem is, I cannot reproduce this problem using just ffmpeg/ffplay. In addition to that, other videos encoded using the same software and settings are played back properly in all players, so I think that's not an issue with the video.
I tested several configurations of players and operating systems while trying to play both the stream and the downloaded file. These are my results:
Local file | Stream | |
---|---|---|
Chrome 33 / OS X | crashes tab | crashes tab |
Chromium git-3ca16748 / OS X | crashes tab | crashes tab |
Chrome 33 / Windows (Native) | works | works |
Chrome 33 / Windows (VM on OS X) | crashes tab | crashes tab |
Chrome 33 / Linux | not tested | sometimes plays with artifacts, sometimes crashes |
VLC 2.1.4 / OS X | crashes | plays with artifacts, then crashes whole system |
VLC 2.1.3 / Windows | crashes | crashes |
ffplay git-31c21d2f | works | works (low framerate) |
QuickTime / OS X | works | works |
Firefox 28 / OS X | works | works |
Safari 7.0.2 / OS X | works | works |
I've managed to attach lldb to the Chromium tab process twice. One time I've got (sorry for not saving much information):
* thread #11: tid = 0x7eb97, 0x213cc453 ffmpegsumo.so`ff_put_h264_chroma_mc8_rnd_ssse3 + 67, stop reason = EXC_BAD_ACCESS (code=1, address=0x23c58160)
The other time I've got:
* thread #16: tid = 0x24989, 0x213eb082 ffmpegsumo.so`ff_pred8x8_vertical_8_mmx + 50, stop reason = EXC_BAD_ACCESS (code=1, address=0x22283160) frame #0: 0x213eb082 ffmpegsumo.so`ff_pred8x8_vertical_8_mmx + 50 ffmpegsumo.so`ff_pred8x8_vertical_8_mmx + 50: -> 0x213eb082: movq %mm0, (%eax,%ecx,2) 0x213eb086: ret 0x213eb087: jmp 0x213eb090 ; ff_pred8x8_horizontal_8_mmx 0x213eb089: nop (lldb) bt * thread #16: tid = 0x24989, 0x213eb082 ffmpegsumo.so`ff_pred8x8_vertical_8_mmx + 50, stop reason = EXC_BAD_ACCESS (code=1, address=0x22283160) * frame #0: 0x213eb082 ffmpegsumo.so`ff_pred8x8_vertical_8_mmx + 50 frame #1: 0x21264bdf ffmpegsumo.so`hl_decode_mb_simple_8(h=<unavailable>) + 1663 at h264_mb_template.c:162 frame #2: 0x2126ceb6 ffmpegsumo.so`decode_slice(avctx=<unavailable>, arg=0xb0080db4) + 406 at h264.c:4485 frame #3: 0x2126cbf2 ffmpegsumo.so`execute_decode_slices(h=0x24be0000, context_count=<unavailable>) + 82 at h264.c:4636 frame #4: 0x2125a8ce ffmpegsumo.so`decode_nal_units(h=<unavailable>, buf=<unavailable>, buf_size=2118106720, parse_extradata=<unavailable>) + 2046 at h264.c:4999 frame #5: 0x21268124 ffmpegsumo.so`decode_frame(avctx=<unavailable>, data=<unavailable>, got_frame=<unavailable>, avpkt=0x7e3fbebc) + 324 at h264.c:5136 frame #6: 0x213533dc ffmpegsumo.so`frame_worker_thread(arg=0x7e3fbe00) + 492 at pthread_frame.c:153 frame #7: 0x907bb5fb libsystem_pthread.dylib`_pthread_body + 144
I couldn't get more crash dumps out of Chromium, because suddenly the tabs started to close with status 0 without any crash reports that could be handled by lldb. :(
Also, I'd like to note that the local file VLC crash was also because of a EXC_BAD_ACCESS.
How to reproduce:
Open http://s3.amazonaws.com/ffmpeg-testing/badaccess.mp4 using Chromium, Chrome or VLC.
Change History (7)
comment:1 by , 11 years ago
Keywords: | crash added |
---|---|
Priority: | normal → important |
comment:2 by , 11 years ago
I made a new one.
* thread #53: tid = 0x14718, 0x26666082 ffmpegsumo.so`ff_pred8x8_vertical_8_mmx + 50, stop reason = EXC_BAD_ACCESS (code=1, address=0x33beb160) frame #0: 0x26666082 ffmpegsumo.so`ff_pred8x8_vertical_8_mmx + 50 ffmpegsumo.so`ff_pred8x8_vertical_8_mmx + 50: -> 0x26666082: movq %mm0, (%eax,%ecx,2) 0x26666086: ret 0x26666087: jmp 0x26666090 ; ff_pred8x8_horizontal_8_mmx 0x26666089: nop (lldb) bt * thread #53: tid = 0x14718, 0x26666082 ffmpegsumo.so`ff_pred8x8_vertical_8_mmx + 50, stop reason = EXC_BAD_ACCESS (code=1, address=0x33beb160) * frame #0: 0x26666082 ffmpegsumo.so`ff_pred8x8_vertical_8_mmx + 50 frame #1: 0x264dfbdf ffmpegsumo.so`hl_decode_mb_simple_8(h=<unavailable>) + 1663 at h264_mb_template.c:162 frame #2: 0x264e7eb6 ffmpegsumo.so`decode_slice(avctx=<unavailable>, arg=0xbabdadb4) + 406 at h264.c:4485 frame #3: 0x264e7bf2 ffmpegsumo.so`execute_decode_slices(h=0x2cfb5000, context_count=<unavailable>) + 82 at h264.c:4636 frame #4: 0x264d58ce ffmpegsumo.so`decode_nal_units(h=<unavailable>, buf=<unavailable>, buf_size=535452056, parse_extradata=<unavailable>) + 2046 at h264.c:4999 frame #5: 0x264e3124 ffmpegsumo.so`decode_frame(avctx=<unavailable>, data=<unavailable>, got_frame=<unavailable>, avpkt=0x1fea59f4) + 324 at h264.c:5136 frame #6: 0x265ce3dc ffmpegsumo.so`frame_worker_thread(arg=0x1fea5938) + 492 at pthread_frame.c:153 frame #7: 0x907bb5fb libsystem_pthread.dylib`_pthread_body + 144 frame #8: 0x907bb485 libsystem_pthread.dylib`_pthread_start + 130 (lldb) disassemble --start-address 0x26666062 --end-address 0x266660A2 ffmpegsumo.so`ff_pred8x8_vertical_8_mmx + 18: 0x26666062: jg 0x26666068 ; ff_pred8x8_vertical_8_mmx + 24 0x26666064: decl %eax 0x26666065: leal (%eax,%ecx,2), %eax 0x26666068: movq %mm0, (%eax,%ecx) 0x2666606c: movq %mm0, (%eax,%ecx,2) 0x26666070: leal (%eax,%ecx,2), %eax 0x26666073: movq %mm0, (%eax,%ecx) 0x26666077: movq %mm0, (%eax,%ecx,2) 0x2666607b: leal (%eax,%ecx,2), %eax 0x2666607e: movq %mm0, (%eax,%ecx) -> 0x26666082: movq %mm0, (%eax,%ecx,2) 0x26666086: ret 0x26666087: jmp 0x26666090 ; ff_pred8x8_horizontal_8_mmx 0x26666089: nop 0x2666608a: nop 0x2666608b: nop 0x2666608c: nop 0x2666608d: nop 0x2666608e: nop 0x2666608f: nop ffmpegsumo.so`ff_pred8x8_horizontal_8_mmx: 0x26666090: movl 0x4(%esp), %eax 0x26666094: movl 0x8(%esp), %ecx 0x26666098: movl $0x4, %edx 0x2666609d: movd -0x4(%eax), %mm0 (lldb) register read --all General Purpose Registers: eax = 0x33beae20 ebx = 0x000001a0 ecx = 0x000001a0 edx = 0x33bc5000 edi = 0x33b9fa00 esi = 0x2cfb5000 ebp = 0xbabdad38 esp = 0xbabdac6c ss = 0x00000023 eflags = 0x00010206 Chromium Framework`(anonymous namespace)::SubprocessNeedsResourceBundle(std::string const&) + 278 at chrome_main_delegate.cc:258 eip = 0x26666082 ffmpegsumo.so`ff_pred8x8_vertical_8_mmx + 50 cs = 0x0000001b ds = 0x00000023 es = 0x00000023 fs = 0x00000023 gs = 0x0000000f ax = 0xae20 bx = 0x01a0 cx = 0x01a0 dx = 0x5000 di = 0xfa00 si = 0x5000 bp = 0xad38 sp = 0xac6c ah = 0xae bh = 0x01 ch = 0x01 dh = 0x50 al = 0x20 bl = 0xa0 cl = 0xa0 dl = 0x00 dil = 0x00 sil = 0x00 bpl = 0x38 spl = 0x6c Floating Point Registers: fctrl = 0x037f fstat = 0x0000 ftag = 0xff fop = 0x0000 fioff = 0x00000000 fiseg = 0x0000 fooff = 0x00000000 foseg = 0x0000 mxcsr = 0x00001f80 Chromium`switches::kDisableThreadedHTMLParser + 18 mxcsrmask = 0x0000ffff Chromium Framework`(anonymous namespace)::InitializeUserDataDir() + 895 at chrome_main_delegate.cc:379 stmm0 = {0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0xff 0xff} stmm1 = {0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0xff 0xff} stmm2 = {0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xff 0xff} stmm3 = {0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xff 0xff} stmm4 = {0xf8 0xff 0xf8 0xff 0x00 0x00 0x00 0x00 0xff 0xff} stmm5 = {0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0xff 0xff} stmm6 = {0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xff 0xff} stmm7 = {0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xff 0xff} xmm0 = {0x18 0x47 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00} xmm1 = {0x7f 0x7f 0x7f 0x7f 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00} xmm2 = {0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00} xmm3 = {0x01 0x00 0x01 0x00 0x01 0x00 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00} xmm4 = {0x80 0x80 0x80 0x80 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00} xmm5 = {0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00} xmm6 = {0x00 0x00 0x01 0x01 0x00 0x01 0x00 0x00 0x00 0x00 0x01 0x00 0x00 0x00 0x00 0x00} xmm7 = {0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00} Exception State Registers: trapno = 0x0000000e err = 0x00000006 faultvaddr = 0x33beb160
comment:3 by , 11 years ago
Keywords: | vlc added |
---|
follow-up: 5 comment:4 by , 11 years ago
Unable to reproduce using linux Chrome 35.0.1916.27 / VLC 2.0.8 / ffmpeg HEAD.
comment:5 by , 11 years ago
Replying to pross:
Unable to reproduce using linux Chrome 35.0.1916.27 / VLC 2.0.8 / ffmpeg HEAD.
It was reported against vlc 2.1.3 (and is reproducible with the official Windows build using FFmpeg).
comment:6 by , 11 years ago
The movie plays properly on OS X Chrome 37.0.2000.0, so I presume the issue has been fixed by the Chromium guys somewhere between SVN revision 258919 and 271298.
Maybe it would be possible to somehow extract the fix for VLC from there?
comment:7 by , 9 years ago
Resolution: | → needs_more_info |
---|---|
Status: | new → closed |
Could you provide register content for the backtrace you made?