[MPlayer-advusers] mplayer crashes with -ass

Christian Ohm chr.ohm at gmx.net
Mon Aug 8 06:39:35 CEST 2011


Hello,

since a few days, mplayer crashes occasionally. The problem seems to be
in libass, probably caused by a libfreetype update (Debian switched from
2.4.4-2 to 2.4.6-1 four days ago, which might coindice with when the
crashes started).

The attached a.ass (just rename a random video file to a.avi) plays with
"mplayer a.avi", but fails with "mplayer -ass a.avi". A (very) short
look at the backtrace (unfortunately Debian has no -dbg package for
freetype, so no detailed info from that) led me to make the change in
workaround.diff (basically just disabling the line it crashed in), and
with that change, it doesn't crash anymore.

Best regards,
Christian Ohm

-------------- next part --------------
?[Script Info]
; Script generated by Aegisub v2.1.2 RELEASE PREVIEW (SVN r1987, amz)
; http://www.aegisub.net
Title: Default Aegisub file
ScriptType: v4.00+
WrapStyle: 0
PlayResX: 640
PlayResY: 480
ScaledBorderAndShadow: yes
Audio File: ?video
Video File: a.avi
Video Aspect Ratio: 0
Video Zoom: 8
Video Position: 89492

[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Sans,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,2,2,10,10,10,0

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:00.00,0:00:15.00,Default,,0000,0000,0000,,asdf\Nzxcv
-------------- next part --------------
[Thread debugging using libthread_db enabled]

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff602731f in ?? () from /usr/lib/x86_64-linux-gnu/libfreetype.so.6
#0  0x00007ffff602731f in ?? () from /usr/lib/x86_64-linux-gnu/libfreetype.so.6
#1  0x00007ffff6027496 in ?? () from /usr/lib/x86_64-linux-gnu/libfreetype.so.6
#2  0x00007ffff6028266 in FT_Stroker_LineTo () from /usr/lib/x86_64-linux-gnu/libfreetype.so.6
#3  0x00007ffff6029b37 in FT_Stroker_ParseOutline () from /usr/lib/x86_64-linux-gnu/libfreetype.so.6
#4  0x00007ffff6029db6 in FT_Glyph_StrokeBorder () from /usr/lib/x86_64-linux-gnu/libfreetype.so.6
#5  0x000000000062040c in stroke_outline_glyph (render_priv=0x15dffa0, event=0x162e3e0, event_images=0x1b45c60) at libass/ass_render.c:1002
#6  get_outline_glyph (render_priv=0x15dffa0, event=0x162e3e0, event_images=0x1b45c60) at libass/ass_render.c:1127
#7  ass_render_event (render_priv=0x15dffa0, event=0x162e3e0, event_images=0x1b45c60) at libass/ass_render.c:1822
#8  0x0000000000622f28 in ass_render_frame (priv=0x15dffa0, track=0x1728dd0, now=0, detect_change=0xfb9540) at libass/ass_render.c:2503
#9  0x0000000000610ca2 in eosd_ass_update (src=0xfb9520, res=0xff6100, ts=<value optimized out>) at sub/ass_mp.c:338
#10 0x00000000005c4479 in eosd_render_frame (ts=0, images=0x7fffffffbff0) at sub/eosd.c:79
#11 0x000000000060f586 in put_image (vf=0x17190e0, mpi=0x1b45bc0, pts=0) at libmpcodecs/vf_ass.c:356
#12 0x0000000000534034 in filter_video (sh_video=<value optimized out>, frame=<value optimized out>, pts=<value optimized out>) at libmpcodecs/dec_video.c:481
#13 0x00000000004bb11f in generate_video_frame (blit_frame=0x7fffffffe1a8) at mplayer.c:1820
#14 update_video (blit_frame=0x7fffffffe1a8) at mplayer.c:2491
#15 0x00000000004aedc4 in main (argc=<value optimized out>, argv=<value optimized out>) at mplayer.c:3779
rax            0xfffffffe0	68719476704
rbx            0x1b485a0	28607904
rcx            0x16	22
rdx            0x0	0
rsi            0x7fffffffb9f0	140737488337392
rdi            0x1b485a0	28607904
rbp            0x7fffffffb9f0	0x7fffffffb9f0
rsp            0x7fffffffb9c0	0x7fffffffb9c0
r8             0x7ffff607f320	140737321104160
r9             0xffffffffffa60001	-5898239
r10            0x0	0
r11            0x7ffff601e360	140737320706912
r12            0x0	0
r13            0x1b485a0	28607904
r14            0x104	260
r15            0x1b4770a	28604170
rip            0x7ffff602731f	0x7ffff602731f
eflags         0x10202	[ IF RF ]
cs             0x33	51
ss             0x2b	43
ds             0x0	0
es             0x0	0
fs             0x0	0
gs             0x0	0
st0            -nan(0x9090909090909090)	(raw 0xffff9090909090909090)
st1            -nan(0x9090909090909090)	(raw 0xffff9090909090909090)
st2            -nan(0x9090908f8f8e8e8e)	(raw 0xffff9090908f8f8e8e8e)
st3            -inf	(raw 0xffff0000000000000000)
st4            -nan(0x8081817f80808080)	(raw 0xffff8081817f80808080)
st5            -nan(0x1000001000000)	(raw 0xffff0001000001000000)
st6            -inf	(raw 0xffff0000000000000000)
st7            -inf	(raw 0xffff0000000000000000)
fctrl          0x37f	895
fstat          0x20	32
ftag           0xffff	65535
fiseg          0x0	0
fioff          0x0	0
foseg          0x0	0
fooff          0x0	0
fop            0x0	0
xmm0           {v4_float = {0x0, 0x3, 0x0, 0x0}, v2_double = {0x60, 0x0}, v16_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x58, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x0, 0x4058, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x40580000, 0x0, 0x0}, v2_int64 = {0x4058000000000000, 0x0}, uint128 = 0x00000000000000004058000000000000}
xmm1           {v4_float = {0x0, 0x3, 0x0, 0x0}, v2_double = {0x60, 0x0}, v16_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x58, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x0, 0x4058, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x40580000, 0x0, 0x0}, v2_int64 = {0x4058000000000000, 0x0}, uint128 = 0x00000000000000004058000000000000}
xmm2           {v4_float = {0x0, 0x3, 0x0, 0x0}, v2_double = {0x40, 0x0}, v16_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x0, 0x4050, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x40500000, 0x0, 0x0}, v2_int64 = {0x4050000000000000, 0x0}, uint128 = 0x00000000000000004050000000000000}
xmm3           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x8000000000000000, 0x8000000000000000}, v16_int8 = {0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, v8_int16 = {0x0, 0xff00, 0x0, 0xffff, 0xff00, 0xffff, 0xffff, 0xffff}, v4_int32 = {0xff000000, 0xffff0000, 0xffffff00, 0xffffffff}, v2_int64 = {0xffff0000ff000000, 0xffffffffffffff00}, uint128 = 0xffffffffffffff00ffff0000ff000000}
xmm4           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x8000000000000000, 0x8000000000000000}, v16_int8 = {0x61, 0x70, 0x73, 0x0, 0x70, 0x73, 0x61, 0x75, 0x78, 0x0, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61}, v8_int16 = {0x7061, 0x73, 0x7370, 0x7561, 0x78, 0x6552, 0x7567, 0x616c}, v4_int32 = {0x737061, 0x75617370, 0x65520078, 0x616c7567}, v2_int64 = {0x7561737000737061, 0x616c756765520078}, uint128 = 0x616c7567655200787561737000737061}
xmm5           {v4_float = {0x3, 0x3, 0x3, 0x3}, v2_double = {0x20, 0x20}, v16_int8 = {0x40 <repeats 16 times>}, v8_int16 = {0x4040, 0x4040, 0x4040, 0x4040, 0x4040, 0x4040, 0x4040, 0x4040}, v4_int32 = {0x40404040, 0x40404040, 0x40404040, 0x40404040}, v2_int64 = {0x4040404040404040, 0x4040404040404040}, uint128 = 0x40404040404040404040404040404040}
xmm6           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x8000000000000000, 0x8000000000000000}, v16_int8 = {0x5b <repeats 16 times>}, v8_int16 = {0x5b5b, 0x5b5b, 0x5b5b, 0x5b5b, 0x5b5b, 0x5b5b, 0x5b5b, 0x5b5b}, v4_int32 = {0x5b5b5b5b, 0x5b5b5b5b, 0x5b5b5b5b, 0x5b5b5b5b}, v2_int64 = {0x5b5b5b5b5b5b5b5b, 0x5b5b5b5b5b5b5b5b}, uint128 = 0x5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b}
xmm7           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x20 <repeats 16 times>}, v8_int16 = {0x2020, 0x2020, 0x2020, 0x2020, 0x2020, 0x2020, 0x2020, 0x2020}, v4_int32 = {0x20202020, 0x20202020, 0x20202020, 0x20202020}, v2_int64 = {0x2020202020202020, 0x2020202020202020}, uint128 = 0x20202020202020202020202020202020}
xmm8           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x20, 0x20, 0x20, 0x0 <repeats 13 times>}, v8_int16 = {0x2020, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x202020, 0x0, 0x0, 0x0}, v2_int64 = {0x202020, 0x0}, uint128 = 0x00000000000000000000000000202020}
xmm9           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x8000000000000000, 0x8000000000000000}, v16_int8 = {0xff <repeats 16 times>}, v8_int16 = {0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}, v4_int32 = {0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff}, v2_int64 = {0xffffffffffffffff, 0xffffffffffffffff}, uint128 = 0xffffffffffffffffffffffffffffffff}
xmm10          {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0, 0x20}, v8_int16 = {0x0, 0x0, 0x0, 0x2000, 0x2020, 0x2020, 0x2020, 0x2000}, v4_int32 = {0x0, 0x20000000, 0x20202020, 0x20002020}, v2_int64 = {0x2000000000000000, 0x2000202020202020}, uint128 = 0x20002020202020202000000000000000}
xmm11          {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x8000000000000000, 0x8000000000000000}, v16_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0xff}, v8_int16 = {0x0, 0x0, 0x0, 0xffff, 0xffff, 0xffff, 0xffff, 0xff00}, v4_int32 = {0x0, 0xffff0000, 0xffffffff, 0xff00ffff}, v2_int64 = {0xffff000000000000, 0xff00ffffffffffff}, uint128 = 0xff00ffffffffffffffff000000000000}
xmm12          {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x1, 0x0, 0x0, 0x0, 0x1, 0x1, 0x1, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x1, 0x1}, v8_int16 = {0x1, 0x0, 0x101, 0x101, 0x100, 0x100, 0x100, 0x101}, v4_int32 = {0x1, 0x1010101, 0x1000100, 0x1010100}, v2_int64 = {0x101010100000001, 0x101010001000100}, uint128 = 0x01010100010001000101010100000001}
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 = {0x1 <repeats 16 times>}, v8_int16 = {0x101, 0x101, 0x101, 0x101, 0x101, 0x101, 0x101, 0x101}, v4_int32 = {0x1010101, 0x1010101, 0x1010101, 0x1010101}, v2_int64 = {0x101010101010101, 0x101010101010101}, uint128 = 0x01010101010101010101010101010101}
mxcsr          0x1fa0	[ PE IM DM ZM OM UM PM ]
#0  0x00007ffff602731f in ?? () from /usr/lib/x86_64-linux-gnu/libfreetype.so.6
No symbol table info available.
#1  0x00007ffff6027496 in ?? () from /usr/lib/x86_64-linux-gnu/libfreetype.so.6
No symbol table info available.
#2  0x00007ffff6028266 in FT_Stroker_LineTo () from /usr/lib/x86_64-linux-gnu/libfreetype.so.6
No symbol table info available.
#3  0x00007ffff6029b37 in FT_Stroker_ParseOutline () from /usr/lib/x86_64-linux-gnu/libfreetype.so.6
No symbol table info available.
#4  0x00007ffff6029db6 in FT_Glyph_StrokeBorder () from /usr/lib/x86_64-linux-gnu/libfreetype.so.6
No symbol table info available.
#5  0x000000000062040c in stroke_outline_glyph (render_priv=0x15dffa0, event=0x162e3e0, event_images=0x1b45c60) at libass/ass_render.c:1002
        error = <value optimized out>
#6  get_outline_glyph (render_priv=0x15dffa0, event=0x162e3e0, event_images=0x1b45c60) at libass/ass_render.c:1127
        v = {glyph = 0x168, outline_glyph = 0x32315659, bbox_scaled = {xMin = 24110640, yMin = 24219872, xMax = 28597184, yMax = 12}, advance = {x = 480, y = 1}, asc = 842094169, desc = 0}
        val = <value optimized out>
        key = {font = 0x1b48480, size = 20, ch = 97, bold = 0, italic = 0, scale_x = 65536, scale_y = 65536, outline = {x = 131070, y = 131070}, drawing_hash = 0, flags = 0, border_style = 1}
#7  ass_render_event (render_priv=0x15dffa0, event=0x162e3e0, event_images=0x1b45c60) at libass/ass_render.c:1822
        p = 0x15de8a1 "sdf\\Nzxcv"
        previous = <value optimized out>
        num_glyphs = 0
        pen = {x = 0, y = 0}
        code = 97
        bbox = {xMin = 2.5910383477981661e-318, xMax = 6.9550400934049006e-310, yMin = 1.260176484363217e-316, yMax = 1.1294032366967891e-316}
        i = <value optimized out>
        j = <value optimized out>
        MarginL = <value optimized out>
        MarginR = <value optimized out>
        MarginV = <value optimized out>
        last_break = <value optimized out>
        alignment = <value optimized out>
        halign = <value optimized out>
        valign = <value optimized out>
        kern = 0
        device_x = 0
        device_y = 0
        text_info = 0x15e01d0
        glyphs = 0x18531e0
        drawing = 0x1b48610
#8  0x0000000000622f28 in ass_render_frame (priv=0x15dffa0, track=0x1728dd0, now=0, detect_change=0xfb9540) at libass/ass_render.c:2503
        event = <value optimized out>
        i = <value optimized out>
        cnt = <value optimized out>
        rc = <value optimized out>
        last = <value optimized out>
        tail = <value optimized out>
#9  0x0000000000610ca2 in eosd_ass_update (src=0xfb9520, res=0xff6100, ts=<value optimized out>) at sub/ass_mp.c:338
        aimg = <value optimized out>
        img = <value optimized out>
#10 0x00000000005c4479 in eosd_render_frame (ts=0, images=0x7fffffffbff0) at sub/eosd.c:79
        src = 0xfb9520
        changed = <value optimized out>
#11 0x000000000060f586 in put_image (vf=0x17190e0, mpi=0x1b45bc0, pts=0) at libmpcodecs/vf_ass.c:356
        images = {first_source = 0x7fffffffc010, source = 0x7ffff7ffb9ad, image = 0x170a9d0, changed = 0}
#12 0x0000000000534034 in filter_video (sh_video=<value optimized out>, frame=<value optimized out>, pts=<value optimized out>) at libmpcodecs/dec_video.c:481
        mpi = <value optimized out>
        t2 = 3314116217
        vf = 0x17190e0
        ret = <value optimized out>
#13 0x00000000004bb11f in generate_video_frame (blit_frame=0x7fffffffe1a8) at mplayer.c:1820
        drop_frame = 0
        decoded_frame = 0x1b45bc0
        start = 0x171ef00 ""
        in_size = <value optimized out>
        hit_eof = 0
        pts = 0
#14 update_video (blit_frame=0x7fffffffe1a8) at mplayer.c:2491
        sh_video = 0x170a9d0
        frame_time = <value optimized out>
#15 0x00000000004aedc4 in main (argc=<value optimized out>, argv=<value optimized out>) at mplayer.c:3779
        frame_time = <value optimized out>
        frame_time_remaining = 0
        blit_frame = 0
        skip_timing = 1
        aq_sleep_time = 0
        opt_exit = <value optimized out>
        i = <value optimized out>
A debugging session is active.

	Inferior 1 [process 25037] will be killed.

Quit anyway? (y or n) [answered Y; input not from terminal]
-------------- next part --------------
A non-text attachment was scrubbed...
Name: workaround.diff
Type: text/x-diff
Size: 551 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/mplayer-advusers/attachments/20110808/f4d8ce24/attachment.bin>


More information about the MPlayer-advusers mailing list