Opened 14 years ago
Closed 12 years ago
#238 closed enhancement (fixed)
ffplay fails to play file with changing pixel format
Reported by: | Carl Eugen Hoyos | Owned by: | |
---|---|---|---|
Priority: | wish | Component: | ffplay |
Version: | git-master | Keywords: | mjpeg |
Cc: | Blocked By: | ||
Blocking: | Reproduced by developer: | yes | |
Analyzed by developer: | no |
Description
Attached file can be converted with ffmpeg, but crashes ffplay.
(gdb) r -i test.mjpeg ffplay version git-N-30219-g07586b6, Copyright (c) 2003-2011 the FFmpeg developers built on May 25 2011 17:18:11 with gcc 4.5.3 configuration: --cc='/usr/local/gcc-4.5.3/bin/gcc -m32' --enable-gpl libavutil 51. 2. 2 / 51. 2. 2 libavcodec 53. 6. 0 / 53. 6. 0 libavformat 53. 2. 0 / 53. 2. 0 libavdevice 53. 0. 0 / 53. 0. 0 libavfilter 2. 11. 0 / 2. 11. 0 libswscale 0. 14. 0 / 0. 14. 0 libpostproc 51. 2. 0 / 51. 2. 0 [mjpeg @ 0x8d22080] Estimating duration from bitrate, this may be inaccurate Input #0, mjpeg, from 'test.mjpeg': Duration: N/A, bitrate: N/A Stream #0.0: Video: mjpeg, gray, 640x360 [PAR 1:1 DAR 16:9], 25 fps, 25 tbr, 1200k tbn, 25 tbc [New Thread 0xf6812b70 (LWP 21670)] [New Thread 0xf5e11b70 (LWP 21671)] [ffsink @ 0xf5f00960] auto-inserting filter 'auto-inserted scaler 0' between the filter 'src' and the filter 'out' [scale @ 0xf5f00d60] w:640 h:360 fmt:gray -> w:640 h:360 fmt:yuv420p flags:0x4 1306337048.96 A-V: 0.000 s:0.0 aq= 0KB vq= 200KB sq= 0B f=0/0 Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0xf6812b70 (LWP 21670)] 0x08496d5b in ff_put_pixels_clamped_mmx (block=0x8d347c0, pixels=0x0, line_size=0) at libavcodec/x86/dsputil_mmx.c:244 244 __asm__ volatile( (gdb) bt #0 0x08496d5b in ff_put_pixels_clamped_mmx (block=0x8d347c0, pixels=0x0, line_size=0) at libavcodec/x86/dsputil_mmx.c:244 #1 0x08302e22 in mjpeg_decode_scan (Al=0, Ah=0, nb_components=3, s=0x8d34280, mb_bitmask=<value optimized out>, reference=<value optimized out>) at libavcodec/mjpegdec.c:863 #2 ff_mjpeg_decode_sos (Al=0, Ah=0, nb_components=3, s=0x8d34280, mb_bitmask=<value optimized out>, reference=<value optimized out>) at libavcodec/mjpegdec.c:1046 #3 ff_mjpeg_decode_frame (Al=0, Ah=0, nb_components=3, s=0x8d34280, mb_bitmask=<value optimized out>, reference=<value optimized out>) at libavcodec/mjpegdec.c:1530 #4 0x0841ff61 in avcodec_decode_video2 (avctx=0x8d23520, picture=0xf5f00800, got_picture_ptr=0xf68120bc, avpkt=0xf6812078) at libavcodec/utils.c:743 #5 0x0804e3c0 in get_video_frame (pkt=0xf6812068, pts=<value optimized out>, frame=0xf5f00800, is=0xf7014020) at ffplay.c:1517 #6 input_request_frame (pkt=0xf6812068, pts=<value optimized out>, frame=0xf5f00800, is=0xf7014020) at ffplay.c:1673 #7 0x0805b56f in avfilter_request_frame (link=0xf5f010e0) at libavfilter/avfilter.c:405 #8 0x0805550e in get_filtered_video_frame (ctx=0xf5f00960, frame=0xf5f00480, picref_ptr=0xf6812318, tb=0xf6812300) at cmdutils.c:931 #9 0x0804f722 in video_thread (arg=0xf7014020) at ffplay.c:1815 #10 0xf7e03391 in ?? () from /usr/lib/libSDL-1.2.so.0 #11 0xf7e4f6eb in ?? () from /usr/lib/libSDL-1.2.so.0 #12 0xf7ddf6e5 in start_thread () from /lib/libpthread.so.0 #13 0xf7ddf600 in ?? () from /lib/libpthread.so.0 (gdb) disass $pc-32 $pc+32 Dump of assembler code from 0x8496d3b to 0x8496d7b: 0x08496d3b <ff_put_pixels_clamped_mmx+27>: movq 0x18(%ecx),%mm3 0x08496d3f <ff_put_pixels_clamped_mmx+31>: movq 0x20(%ecx),%mm4 0x08496d43 <ff_put_pixels_clamped_mmx+35>: movq 0x28(%ecx),%mm5 0x08496d47 <ff_put_pixels_clamped_mmx+39>: movq 0x30(%ecx),%mm6 0x08496d4b <ff_put_pixels_clamped_mmx+43>: movq 0x38(%ecx),%mm7 0x08496d4f <ff_put_pixels_clamped_mmx+47>: packuswb %mm1,%mm0 0x08496d52 <ff_put_pixels_clamped_mmx+50>: packuswb %mm3,%mm2 0x08496d55 <ff_put_pixels_clamped_mmx+53>: packuswb %mm5,%mm4 0x08496d58 <ff_put_pixels_clamped_mmx+56>: packuswb %mm7,%mm6 0x08496d5b <ff_put_pixels_clamped_mmx+59>: movq %mm0,(%ebx) 0x08496d5e <ff_put_pixels_clamped_mmx+62>: movq %mm2,(%ebx,%eax,1) 0x08496d62 <ff_put_pixels_clamped_mmx+66>: movq %mm4,(%ebx,%eax,2) 0x08496d66 <ff_put_pixels_clamped_mmx+70>: movq %mm6,(%ebx,%edx,1) 0x08496d6a <ff_put_pixels_clamped_mmx+74>: lea (%ebx,%eax,4),%ebx 0x08496d6d <ff_put_pixels_clamped_mmx+77>: add $0x40,%ecx 0x08496d70 <ff_put_pixels_clamped_mmx+80>: movq (%ecx),%mm0 0x08496d73 <ff_put_pixels_clamped_mmx+83>: movq 0x8(%ecx),%mm1 0x08496d77 <ff_put_pixels_clamped_mmx+87>: movq 0x10(%ecx),%mm2 End of assembler dump. (gdb) info all-registers eax 0x0 0 ecx 0x8d347c0 148064192 edx 0x0 0 ebx 0x0 0 esp 0xf6811ea8 0xf6811ea8 ebp 0x2 0x2 esi 0x2 2 edi 0x0 0 eip 0x8496d5b 0x8496d5b <ff_put_pixels_clamped_mmx+59> eflags 0x210286 [ PF SF IF RF ID ] cs 0x23 35 ss 0x2b 43 ds 0x2b 43 es 0x2b 43 fs 0x0 0 gs 0x63 99 st0 -nan(0x8080808080808080) (raw 0xffff8080808080808080) st1 -nan(0x80008000800080) (raw 0xffff0080008000800080) st2 -nan(0x8080808080808080) (raw 0xffff8080808080808080) st3 -nan(0x80008000800080) (raw 0xffff0080008000800080) st4 -nan(0x8080808080808080) (raw 0xffff8080808080808080) st5 -nan(0x80008000800080) (raw 0xffff0080008000800080) st6 -nan(0x8080808080808080) (raw 0xffff8080808080808080) st7 -nan(0x80008000800080) (raw 0xffff0080008000800080) fctrl 0x37f 895 fstat 0x20 32 ftag 0xaaaa 43690 fiseg 0x0 0 fioff 0x804fbed 134544365 foseg 0x0 0 fooff 0xf70e0cac -150074196 fop 0x59c 1436 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 <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} xmm7 {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 0x1f80 [ IM DM ZM OM UM PM ] mm0 {uint64 = 0x8080808080808080, v2_int32 = {0x80808080, 0x80808080}, v4_int16 = {0x8080, 0x8080, 0x8080, 0x8080}, v8_int8 = {0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80}} mm1 {uint64 = 0x80008000800080, v2_int32 = {0x800080, 0x800080}, v4_int16 = {0x80, 0x80, 0x80, 0x80}, v8_int8 = {0x80, 0x0, 0x80, 0x0, 0x80, 0x0, 0x80, 0x0}} mm2 {uint64 = 0x8080808080808080, v2_int32 = {0x80808080, 0x80808080}, v4_int16 = {0x8080, 0x8080, 0x8080, 0x8080}, v8_int8 = {0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80}} mm3 {uint64 = 0x80008000800080, v2_int32 = {0x800080, 0x800080}, v4_int16 = {0x80, 0x80, 0x80, 0x80}, v8_int8 = {0x80, 0x0, 0x80, 0x0, 0x80, 0x0, 0x80, 0x0}} mm4 {uint64 = 0x8080808080808080, v2_int32 = {0x80808080, 0x80808080}, v4_int16 = {0x8080, 0x8080, 0x8080, 0x8080}, v8_int8 = {0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80}} mm5 {uint64 = 0x80008000800080, v2_int32 = {0x800080, 0x800080}, v4_int16 = {0x80, 0x80, 0x80, 0x80}, v8_int8 = {0x80, 0x0, 0x80, 0x0, 0x80, 0x0, 0x80, 0x0}} mm6 {uint64 = 0x8080808080808080, v2_int32 = {0x80808080, 0x80808080}, v4_int16 = {0x8080, 0x8080, 0x8080, 0x8080}, v8_int8 = {0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80}} mm7 {uint64 = 0x80008000800080, v2_int32 = {0x800080, 0x800080}, v4_int16 = {0x80, 0x80, 0x80, 0x80}, v8_int8 = {0x80, 0x0, 0x80, 0x0, 0x80, 0x0, 0x80, 0x0}}
Attachments (1)
Change History (4)
by , 14 years ago
Attachment: | test.mjpeg added |
---|
comment:1 by , 13 years ago
Keywords: | mjpeg added |
---|
comment:2 by , 13 years ago
Priority: | normal → wish |
---|---|
Status: | new → open |
Summary: | ffplay crashes on mjpeg file → ffplay fails to play file with changing pixel format |
Type: | defect → enhancement |
comment:3 by , 12 years ago
Component: | undetermined → FFplay |
---|---|
Resolution: | → fixed |
Status: | open → closed |
Fixed by Marton Balint.
Note:
See TracTickets
for help on using tickets.
The crash has been fixed, but playback is not possible yet.