[MPlayer-users] Crash in draw_alpha_rgb32 (mplayer with vaapi patch)

José Bernardo Bandos Rodrigues bernardo at bandos.net
Fri Jan 1 19:37:41 CET 2010


Hi all,
I am building mplayer with the vaapi patches using the kanotix script (
http://www.kanotix.com/files/fix/mplayer-vaapi-latest.txt). It uses the
patches from
http://www.splitted-desktop.com/~gbeauchesne/mplayer-vaapi/mplayer-vaapi-latest.tar.bz2,
and I've been having this problem at least with the 20091209, 20091221 and
20091228 versions of the patches. I can watch mkv/x264 films using vaapi
acceleration, but as soon as I try to add subtitles, I get SIGSEGV crashes.
The svn revisions of mplayer, ffmpeg, and dvdnav used are 30134, 20947 and
1188 respectively.
I am using kubuntu 9.10 (karmic)
$ uname -a
Linux 1101ha-j 2.6.31-17-lpia #54-Ubuntu SMP Thu Dec 10 16:18:14 UTC 2009
i686 GNU/Linux
$ ls -l /lib/libc[.-]*
-rwxr-xr-x 1 root root 1393092 2009-10-07 04:55 /lib/libc-2.10.1.so
lrwxrwxrwx 1 root root      14 2009-10-07 14:24 /lib/libc.so.6 ->
libc-2.10.1.so
$ X -version

X.Org X Server 1.6.4
Release Date: 2009-9-27
X Protocol Version 11, Revision 0
Build Operating System: Linux 2.6.24-23-server i686 Ubuntu
Current Operating System: Linux 1101ha-j 2.6.31-17-lpia #54-Ubuntu SMP Thu
Dec 10 16:18:14 UTC 2009 i686
Kernel command line: BOOT_IMAGE=/boot/vmlinuz-2.6.31-17-lpia
root=UUID=d6fd38ae-05ca-4858-9091-5ee51989bde1 ro quiet splash irqpoll
mem=2000mb
Build Date: 14 November 2009  05:47:39PM
xorg-server 2:1.6.4-2ubuntu4.1 (buildd@)

$ gcc -v
Using built-in specs.
Target: i686-linux-gnulp
Configured with: ../src/configure -v --with-pkgversion='Ubuntu
4.4.1-4ubuntu8' --with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs
--enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared
--enable-multiarch --enable-linker-build-id --with-system-zlib
--libexecdir=/usr/lib --without-included-gettext --enable-threads=posix
--with-gxx-include-dir=/usr/include/c++/4.4 --program-suffix=-4.4
--enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc
--disable-werror --with-arch=pentium-m --with-tune=i586
--enable-checking=release --build=i686-linux-gnulp --host=i686-linux-gnulp
--target=i686-linux-gnulp
Thread model: posix
gcc version 4.4.1 (Ubuntu 4.4.1-4ubuntu8)

$ gcc-4.3 -v
Using built-in specs.
Target: i686-linux-gnulp
Configured with: ../src/configure -v --with-pkgversion='Ubuntu
4.3.4-5ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-4.3/README.Bugs
--enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared
--enable-multiarch --enable-linker-build-id --with-system-zlib
--libexecdir=/usr/lib --without-included-gettext --enable-threads=posix
--enable-nls --with-gxx-include-dir=/usr/include/c++/4.3
--program-suffix=-4.3 --enable-clocale=gnu --enable-libstdcxx-debug
--enable-objc-gc --enable-mpfr --with-arch=i686 --with-tune=i586
--enable-checking=release --build=i686-linux-gnulp --host=i686-linux-gnulp
--target=i686-linux-gnulp
Thread model: posix
gcc version 4.3.4 (Ubuntu 4.3.4-5ubuntu1)

$ ld -v
GNU ld (GNU Binutils for Ubuntu) 2.20

$ as --version
GNU assembler (GNU Binutils for Ubuntu) 2.20

The hardware is a Asus eeepc 1101HA - Intel(R) Atom(TM) CPU Z520   @
1.33GHz, GMA500 (poulsbo) chipset, 2GB RAM, 160GB HD

I build it again by hand after verifying the problem is still there in these
versions, passing "CC=gcc-4.3 --enable-debug=3" to configure, and this is
the backtrace I get of the crashes:

VO: [vaapi] 1280x688 => 1280x688 H.264 VA API Acceleration
[vo_vaapi] Could not set up subpicture palette
[VD_FFMPEG] XVMC-accelerated MPEG-2.
A:   1.9 V:   1.9 A-V: -0.004 ct:  0.017   0/  0 52% 42% 29.5% 35 0
Program received signal SIGSEGV, Segmentation fault.
draw_alpha_rgb32 (x0=<value optimized out>, y0=310, w=853, h=68,
src=0x94eefd0 "", srca=0x94fd360 "", stride=856) at libvo/vo_vaapi.c:437
437                 dst[4*x + 0] = c;

(gdb) bt
#0  draw_alpha_rgb32 (x0=<value optimized out>, y0=310, w=853, h=68,
src=0x94eefd0 "", srca=0x94fd360 "", stride=856) at libvo/vo_vaapi.c:437
#1  0x0822a971 in vo_draw_text_from_buffer (dxs=1280, dys=688,
left_border=0, top_border=0, right_border=0, bottom_border=0, orig_w=1280,
    orig_h=688, draw_alpha=0x813c670 <draw_alpha_rgb32>) at libvo/sub.c:170
#2  vo_draw_text_ext (dxs=1280, dys=688, left_border=0, top_border=0,
right_border=0, bottom_border=0, orig_w=1280, orig_h=688,
    draw_alpha=0x813c670 <draw_alpha_rgb32>) at libvo/sub.c:1274
#3  0x0822a9d7 in vo_draw_text (dxs=1280, dys=688, draw_alpha=0x813c670
<draw_alpha_rgb32>) at libvo/sub.c:1286
#4  0x0813d2ad in draw_osd () at libvo/vo_vaapi.c:1518
#5  0x081c6a71 in control (vf=0x8ef3278, request=7, data=0x0) at
libmpcodecs/vf_vo.c:95
#6  0x08195a0b in filter_video (sh_video=0x8ec4b40, frame=0x8fbab58,
pts=62.562000274658203) at libmpcodecs/dec_video.c:458
#7  0x080e4bf0 in generate_video_frame (argc=8, argv=0xbffff7b4) at
mplayer.c:1802
#8  update_video (argc=8, argv=0xbffff7b4) at mplayer.c:2374
#9  main (argc=8, argv=0xbffff7b4) at mplayer.c:3766

(gdb) disass $pc-32 $pc+32
Dump of assembler code from 0x813c72c to 0x813c76c:
0x0813c72c <draw_alpha_rgb32+188>:      lea    0x0(%esi,%eiz,1),%esi
0x0813c730 <draw_alpha_rgb32+192>:      mov    0x1c(%ebp),%esi
0x0813c733 <draw_alpha_rgb32+195>:      xor    %edx,%edx
0x0813c735 <draw_alpha_rgb32+197>:      mov    0x18(%ebp),%ebx
0x0813c738 <draw_alpha_rgb32+200>:      mov    0x10(%ebp),%eax
0x0813c73b <draw_alpha_rgb32+203>:      add    %edi,%esi
0x0813c73d <draw_alpha_rgb32+205>:      add    %edi,%ebx
0x0813c73f <draw_alpha_rgb32+207>:      test   %eax,%eax
0x0813c741 <draw_alpha_rgb32+209>:      jle    0x813c769
<draw_alpha_rgb32+249>
0x0813c743 <draw_alpha_rgb32+211>:      nop
0x0813c744 <draw_alpha_rgb32+212>:      lea    0x0(%esi,%eiz,1),%esi
0x0813c748 <draw_alpha_rgb32+216>:      movzbl (%ebx,%edx,1),%eax
0x0813c74c <draw_alpha_rgb32+220>:      mov    %al,(%ecx,%edx,4)
0x0813c74f <draw_alpha_rgb32+223>:      mov    %al,0x1(%ecx,%edx,4)
0x0813c753 <draw_alpha_rgb32+227>:      mov    %al,0x2(%ecx,%edx,4)
0x0813c757 <draw_alpha_rgb32+231>:      movzbl (%esi,%edx,1),%eax
0x0813c75b <draw_alpha_rgb32+235>:      neg    %eax
0x0813c75d <draw_alpha_rgb32+237>:      mov    %al,0x3(%ecx,%edx,4)
0x0813c761 <draw_alpha_rgb32+241>:      add    $0x1,%edx
0x0813c764 <draw_alpha_rgb32+244>:      cmp    %edx,0x10(%ebp)
0x0813c767 <draw_alpha_rgb32+247>:      jg     0x813c748
<draw_alpha_rgb32+216>
0x0813c769 <draw_alpha_rgb32+249>:      addl   $0x1,-0x20(%ebp)
End of assembler dump.

(gdb) info
all-registers
eax            0x0      0
ecx            0x1ae34d8a       451104138
edx            0x0      0
ebx            0x94eefd0        156168144
esp            0xbfffb368       0xbfffb368
ebp            0xbfffb388       0xbfffb388
esi            0x94fd360        156226400
edi            0x0      0
eip            0x813c74c        0x813c74c <draw_alpha_rgb32+220>
eflags         0x210206 [ PF IF RF ID ]
cs             0x73     115
ss             0x7b     123
ds             0x7b     123
es             0x7b     123
fs             0x0      0
gs             0x33     51
st0            -15201.575199999999313149601221084595    (raw
0xc00ced864d013a92a000)
st1            -15201.075199999999313149601221084595    (raw
0xc00ced844d013a92a000)
st2            -0.0041708298958837985992431640625       (raw
0xbff788ab750000000000)
st3            -1       (raw 0xbfff8000000000000000)
st4            -98.214600191392975148119148798286915    (raw
0xc005c46de013877f1000)
st5            62.562000274658203125    (raw 0x4004fa3f7d0000000000)
st6            100      (raw 0x4005c800000000000000)
st7            192      (raw 0x4006c000000000000000)
fctrl          0x37f    895
fstat          0x420    1056
ftag           0xffff   65535
fiseg          0x73     115
fioff          0x827d639        136828473
foseg          0x7b     123
fooff          0xbfffb044       -1073762236
fop            0x34d    845
xmm0           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0x0, 0x8, 0x0 <repeats 14 times>}, v8_int16 = {0x800, 0x0,
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x800, 0x0, 0x0, 0x0},
v2_int64 = {0x800, 0x0}, uint128 = 0x00000000000000000000000000000800}
xmm1           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0xe1, 0xbc, 0xe8, 0xdc, 0xd6, 0x49, 0x29, 0x32, 0xf8,
    0x99, 0x70, 0x2a, 0x11, 0x14, 0x94, 0x87}, v8_int16 = {0xbce1, 0xdce8,
0x49d6, 0x3229, 0x99f8, 0x2a70, 0x1411, 0x8794}, v4_int32 = {
    0xdce8bce1, 0x322949d6, 0x2a7099f8, 0x87941411}, v2_int64 =
{0x322949d6dce8bce1, 0x879414112a7099f8},
  uint128 = 0x879414112a7099f8322949d6dce8bce1}
xmm2           {v4_float = {0x0, 0x0, 0xc063000, 0x0}, v2_double = {0x0,
0x0}, v16_int8 = {0xe9, 0x22, 0x6c, 0xab, 0x3f, 0xea, 0x20, 0x2c,
    0xc6, 0x80, 0xa1, 0x50, 0x20, 0x4, 0x66, 0x99}, v8_int16 = {0x22e9,
0xab6c, 0xea3f, 0x2c20, 0x80c6, 0x50a1, 0x420, 0x9966}, v4_int32 = {
    0xab6c22e9, 0x2c20ea3f, 0x50a180c6, 0x99660420}, v2_int64 =
{0x2c20ea3fab6c22e9, 0x9966042050a180c6},
  uint128 = 0x9966042050a180c62c20ea3fab6c22e9}
xmm3           {v4_float = {0x1e41e000, 0x0, 0x0, 0xd5000000}, v2_double =
{0x8000000000000000, 0x8000000000000000}, v16_int8 = {0x3c, 0xc8,
    0xc3, 0x50, 0x25, 0x62, 0x74, 0x60, 0xc9, 0x68, 0x51, 0x93, 0x56, 0xa0,
0x80, 0xd6}, v8_int16 = {0xc83c, 0x50c3, 0x6225, 0x6074, 0x68c9,
    0x9351, 0xa056, 0xd680}, v4_int32 = {0x50c3c83c, 0x60746225, 0x935168c9,
0xd680a056}, v2_int64 = {0x6074622550c3c83c, 0xd680a056935168c9},
  uint128 = 0xd680a056935168c96074622550c3c83c}
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 = 0xed864d013a92a000, v2_int32 = {0x3a92a000,
0xed864d01}, v4_int16 = {0xa000, 0x3a92, 0x4d01, 0xed86}, v8_int8 = {0x0,
    0xa0, 0x92, 0x3a, 0x1, 0x4d, 0x86, 0xed}}
mm1            {uint64 = 0xed844d013a92a000, v2_int32 = {0x3a92a000,
0xed844d01}, v4_int16 = {0xa000, 0x3a92, 0x4d01, 0xed84}, v8_int8 = {0x0,
    0xa0, 0x92, 0x3a, 0x1, 0x4d, 0x84, 0xed}}
mm2            {uint64 = 0x88ab750000000000, v2_int32 = {0x0, 0x88ab7500},
v4_int16 = {0x0, 0x0, 0x7500, 0x88ab}, v8_int8 = {0x0, 0x0, 0x0,
    0x0, 0x0, 0x75, 0xab, 0x88}}
mm3            {uint64 = 0x8000000000000000, v2_int32 = {0x0, 0x80000000},
v4_int16 = {0x0, 0x0, 0x0, 0x8000}, v8_int8 = {0x0, 0x0, 0x0, 0x0,
    0x0, 0x0, 0x0, 0x80}}
mm4            {uint64 = 0xc46de013877f1000, v2_int32 = {0x877f1000,
0xc46de013}, v4_int16 = {0x1000, 0x877f, 0xe013, 0xc46d}, v8_int8 = {0x0,
    0x10, 0x7f, 0x87, 0x13, 0xe0, 0x6d, 0xc4}}
mm5            {uint64 = 0xfa3f7d0000000000, v2_int32 = {0x0, 0xfa3f7d00},
v4_int16 = {0x0, 0x0, 0x7d00, 0xfa3f}, v8_int8 = {0x0, 0x0, 0x0,
    0x0, 0x0, 0x7d, 0x3f, 0xfa}}
mm6            {uint64 = 0xc800000000000000, v2_int32 = {0x0, 0xc8000000},
v4_int16 = {0x0, 0x0, 0x0, 0xc800}, v8_int8 = {0x0, 0x0, 0x0, 0x0,
    0x0, 0x0, 0x0, 0xc8}}
mm7            {uint64 = 0xc000000000000000, v2_int32 = {0x0, 0xc0000000},
v4_int16 = {0x0, 0x0, 0x0, 0xc000}, v8_int8 = {0x0, 0x0, 0x0, 0x0,
    0x0, 0x0, 0x0, 0xc0}}

------------------------

Any idea on how to fix this, so that I can watch my films with subtitles?

Thanks!


More information about the MPlayer-users mailing list