[FFmpeg-trac] #3226(avcodec:new): SEGFAULT in libavcodec in ff_emu_edge_vfix3_mmx.body_loop when playing video in vlc.
FFmpeg
trac at avcodec.org
Sat Dec 14 20:47:12 CET 2013
#3226: SEGFAULT in libavcodec in ff_emu_edge_vfix3_mmx.body_loop when playing
video in vlc.
-----------------------------------+----------------------------------
Reporter: michalsrb | Type: defect
Status: new | Priority: normal
Component: avcodec | Version: 2.1.1
Keywords: | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
-----------------------------------+----------------------------------
Summary: Playing a video in vlc crashes with SEGFAULT in libavcodec. Crash
happens at random time (each time different). System is opensuse 12.3.
Video information:
{{{
Input #0, avi, from 'Videos/Boy Meets World Season 1 - 7 DVDRip/Season
4/Boy.Meets.World.S04E06.DVDRip.XviD-NODLABS.avi':
Metadata:
encoder : Nandub v1.0rc2
Duration: 00:21:57.70, start: 0.000000, bitrate: 1108 kb/s
Stream #0:0: Video: mpeg4 (Advanced Simple Profile) (XVID /
0x44495658), yuv420p, 512x384 [SAR 1:1 DAR 4:3], 29.97 tbr, 29.97 tbn,
29.97 tbc
Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 48000 Hz, stereo, s16p,
135 kb/s
}}}
Backtrace:
{{{
#0 ff_emu_edge_vfix3_mmx.body_loop () at libavcodec/x86/videodsp.asm:333
#1 0x00007fffcadc4f5c in emulated_edge_mc (h_extend_var=<optimized out>,
hfix_tbl=0x7fffcb1db220 <hfixtbl_sse2>, v_extend_var=<optimized out>,
vfix_tbl=0x7fffcb1db160 <vfixtbl_sse>, h=192, w=3, src_y=<optimized
out>, src_x=<optimized out>, block_h=9, block_w=<optimized out>,
src_stride=<optimized out>,
src=<optimized out>, dst_stride=256, dst=<optimized out>) at
libavcodec/x86/videodsp_init.c:175
#2 emulated_edge_mc_sse2 (buf=0x7fffcc04b410
"\200\200\200\202\201\201\202\202\203", buf_stride=256, src=<optimized
out>, src_stride=<optimized out>,
block_w=<optimized out>, block_h=9, src_x=253, src_y=184, w=256,
h=192) at libavcodec/x86/videodsp_init.c:232
#3 0x00007fffcab8bf03 in mpeg_motion_internal (mb_y=23, is_mpeg12=0,
h=16, motion_y=0, motion_x=117, pix_op=0x7fffb4c16ec8,
ref_picture=<optimized out>,
field_select=0, bottom_field=0, field_based=0, dest_cr=0x7fffcc05a840
"\202\202\202\202\201\201\201\200", dest_cb=0x7fffcc058840 "vvwwwxxx",
dest_y=0x7fffcc056840
"\026\026\026\026\026\026\025\025\031\032\033\035\037\"\" ",
s=0x7fffb4c148c0) at libavcodec/mpegvideo_motion.c:333
#4 mpeg_motion (s=0x7fffb4c148c0, dest_y=0x7fffcc056840
"\026\026\026\026\026\026\025\025\031\032\033\035\037\"\" ",
dest_cb=0x7fffcc058840 "vvwwwxxx",
dest_cr=0x7fffcc05a840 "\202\202\202\202\201\201\201\200",
field_select=0, ref_picture=<optimized out>, pix_op=0x7fffb4c16ec8,
motion_x=117, motion_y=0, h=16,
mb_y=23) at libavcodec/mpegvideo_motion.c:384
#5 0x00007fffcab8c9e7 in MPV_motion_internal (is_mpeg12=<optimized out>,
qpix_op=<optimized out>, pix_op=<optimized out>, ref_picture=<optimized
out>,
dir=<optimized out>, dest_cr=<optimized out>, dest_cb=<optimized out>,
dest_y=<optimized out>, s=<optimized out>) at
libavcodec/mpegvideo_motion.c:958
#6 ff_MPV_motion (s=s at entry=0x7fffb4c148c0,
dest_y=dest_y at entry=0x7fffcc056840
"\026\026\026\026\026\026\025\025\031\032\033\035\037\"\" ",
dest_cb=dest_cb at entry=0x7fffcc058840 "vvwwwxxx",
dest_cr=dest_cr at entry=0x7fffcc05a840 "\202\202\202\202\201\201\201\200",
dir=dir at entry=1,
ref_picture=ref_picture at entry=0x7fffb4c152d8, pix_op=0x7fffb4c16ec8,
qpix_op=0x7fffb4c169d8) at libavcodec/mpegvideo_motion.c:992
#7 0x00007fffcab74973 in MPV_decode_mb_internal (is_mpeg12=0,
lowres_flag=0, block=<optimized out>, s=0x7fffb4c148c0) at
libavcodec/mpegvideo.c:2796
#8 ff_MPV_decode_mb (s=s at entry=0x7fffb4c148c0, block=<optimized out>) at
libavcodec/mpegvideo.c:2928
#9 0x00007fffca905870 in decode_slice (s=s at entry=0x7fffb4c148c0) at
libavcodec/h263dec.c:274
#10 0x00007fffca906893 in ff_h263_decode_frame (avctx=0x7fffb4c18500,
data=0x7fffb4c18020, got_frame=0x7fffd01cacdc, avpkt=<optimized out>) at
libavcodec/h263dec.c:701
#11 0x00007fffcac789a2 in avcodec_decode_video2 (avctx=0x7fffb4c18500,
picture=0x7fffb4c18020, got_picture_ptr=0x7fffd01cacdc,
avpkt=0x7fffd01cace0)
at libavcodec/utils.c:2062
#12 0x00007fffcb7e705e in ?? () from
/usr/lib64/vlc/plugins/codec/libavcodec_plugin.so
#13 0x00007ffff7141380 in ?? () from /usr/lib64/libvlccore.so.7
#14 0x00007ffff71427a0 in ?? () from /usr/lib64/libvlccore.so.7
#15 0x00007ffff79aae0f in start_thread () from /lib64/libpthread.so.0
#16 0x00007ffff74da44d in clone () from /lib64/libc.so.6
}}}
Sample file:
http://gdmt.cz/sample-file.avi
(I was able to reproduce it on this sample, happened after ~5 tries,
crashed in first few seconds.)
I am not sure how (if possible) to reproduce it with ffmpeg command only.
--
Ticket URL: <https://trac.ffmpeg.org/ticket/3226>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list