Opened 14 years ago

Last modified 13 years ago

#1621 new defect

SIGILL crash in yuv420_rgb32_MMX2 at yuv2rgb_template.c:447

Reported by: vwdowns@… Owned by: reimar
Priority: normal Component: vo
Version: unspecified Severity: normal
Keywords: Cc: cehoyos
Blocked By: Blocking:
Reproduced by developer: no Analyzed by developer: no

Description

Running a GenuineIntel Pentium II (266 Mhz), using the vesafb Xorg driver, I receive this crash:

(gdb) run -v 3.flv
Starting program: /usr/bin/mplayer -v 3.flv
[Thread debugging using libthread_db enabled]
MPlayer SVN-r29237-4.4.1 (C) 2000-2009 MPlayer Team
CPU vendor name: GenuineIntel max cpuid level: 2
CPU: (Family: 6, Model: 3, Stepping: 4)
Detected cache-line size is 32 bytes
CPUflags: MMX: 1 MMX2: 0 3DNow: 0 3DNowExt: 0 SSE: 0 SSE2: 0 SSSE3: 0
Compiled with runtime CPU detection.
get_path('codecs.conf') -> '/home/videoserver/.mplayer/codecs.conf'
Reading /home/videoserver/.mplayer/codecs.conf: Can't open '/home/videoserver/.m
player/codecs.conf': No such file or directory
Reading /etc/mplayer/codecs.conf: Can't open '/etc/mplayer/codecs.conf': No such

file or directory

Using built-in default codecs.conf.
Configuration: --prefix=/usr --confdir=/etc/mplayer --datadir=/usr/share/mplayer

--codecsdir=/usr/lib/codecs --enable-xvmc --enable-vdpau --enable-sdl --enable-

ossaudio --enable-lirc --enable-freetype --enable-menu --enable-largefiles --ext
ra-cflags=-I/build/buildd/mplayer-1.0~rc3+svn20090426/debian/include --disable-b
itmap-font --disable-ggi --language=all --disable-xmms --disable-arts --disable-
aa --disable-mad --disable-musepack --disable-libdv --disable-libavutil_a --disa
ble-libavcodec_a --disable-libavformat_a --disable-libpostproc_a --disable-libsw
scale_a --enable-mp3lame --enable-faac-lavc --enable-x264-lavc --enable-mp3lame-
lavc --enable-libdirac-lavc --enable-libschroedinger-lavc --target=i586-linux --
enable-win32dll --enable-real --enable-xanim --enable-runtime-cpudetection --ena
ble-vdpau --disable-libdvdcss-internal --enable-dvdread --enable-debug --enable-
tv-v4l2 --enable-xmga --enable-mga --enable-3dfx --enable-tdfxfb --enable-fbdev
--disable-gui
CommandLine: '-v' '3.flv'
init_freetype
Using MMX Optimized OnScreenDisplay
get_path('fonts') -> '/home/videoserver/.mplayer/fonts'
Using nanosleep() timing
get_path('input.conf') -> '/home/videoserver/.mplayer/input.conf'
Can't open input config file /home/videoserver/.mplayer/input.conf: No such file

or directory

Parsing input config file /etc/mplayer/input.conf
Input config file /etc/mplayer/input.conf parsed: 89 binds
Setting up LIRC support...
mplayer: could not connect to socket
mplayer: No such file or directory
Failed to open LIRC support. You will not be able to use your remote control.
get_path('3.flv.conf') -> '/home/videoserver/.mplayer/3.flv.conf'

Playing 3.flv.
get_path('sub/') -> '/home/videoserver/.mplayer/sub/'
[file] File size is 29502186 bytes
STREAM: [file] 3.flv
STREAM: Description: File
STREAM: Author: Albeu
STREAM: Comment: based on the code from ??? (probably Arpi)
LAVF_check: FLV format
libavformat file format detected.
==> Found video stream: 0
[lavf] Video stream found, -vid 0
======= VIDEO Format ======

biSize 41
biWidth 320
biHeight 240
biPlanes 0
biBitCount 0
biCompression 1177964630='VP6F'
biSizeImage 0

Unknown extra header dump: [0]
===========================
==> Found audio stream: 1
[lavf] Audio stream found, -aid 1
======= WAVE Format =======
Format Tag: 85 (0x55)
Channels: 2
Samplerate: 22050
avg byte/sec: 5000
Block align: 1
bits/sample: 16
cbSize: 0
==========================================================================
LAVF: 1 audio and 1 video streams found
LAVF: build 3415808
VIDEO: [VP6F] 320x240 0bpp 14.985 fps 0.0 kbps ( 0.0 kbyte/s)
[V] filefmt:44 fourcc:0x46365056 size:320x240 fps:14.985 ftime:=0.0667
get_path('sub/') -> '/home/videoserver/.mplayer/sub/'
open: No such file or directory
[MGA] Couldn't open: /dev/mga_vid
open: No such file or directory
[MGA] Couldn't open: /dev/mga_vid
[VO_TDFXFB] Can't open /dev/fb0: Permission denied.
[VO_3DFX] Unable to open /dev/3dfx.
X11 opening display: :0.0
vo: X11 color mask: FFFFFF (R:FF0000 G:FF00 B:FF)
vo: X11 running at 1024x768 with depth 24 and 32 bpp (":0.0" => local display)
[x11] Unknown wm type...
[x11] Current fstype setting doesn't honour any X atoms
[VO_XV] It seems there is no Xvideo support for your video card available.
[VO_XV] Run 'xvinfo' to verify its Xv support and read
[VO_XV] DOCS/HTML/en/video.html#xv!
[VO_XV] See 'mplayer -vo help' for other (non-xv) video out drivers.
[VO_XV] Try -vo x11.
[vdpau] Could not open dynamic library libvdpau.so.1
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
INFO: libavcodec init OK!
Selected video codec: [ffvp6f] vfm: ffmpeg (FFmpeg VP6 Flash)
==========================================================================
==========================================================================
Opening audio decoder: [mp3lib] MPEG layer-2, layer-3
dec_audio: Allocating 4608 + 65536 = 70144 bytes for output buffer.
mp3lib: using MMX optimized decore!
MP3lib: init layer2&3 finished, tables done
MPEG 2.0, Layer III, 22050 Hz 40 kbit Joint-Stereo, BPF: 130
Channels: 2, copyright: No, original: Yes, CRC: No, emphasis: 0
AUDIO: 22050 Hz, 2 ch, s16le, 40.0 kbit/5.67% (ratio: 5000->88200)
Selected audio codec: [mp3] afm: mp3lib (mp3lib MPEG layer-2, layer-3)
==========================================================================
Building audio filter chain for 22050Hz/2ch/s16le -> 0Hz/0ch/??...
[libaf] Adding filter dummy
[dummy] Was reinitialized: 22050Hz/2ch/s16le
[dummy] Was reinitialized: 22050Hz/2ch/s16le
Trying preferred audio driver 'pulse', options '[none]'
[pulse] working around probably broken pause functionality,

see http://www.pulseaudio.org/ticket/440

[New Thread 0xb3f98b70 (LWP 3060)]
AO: [pulse] Init failed: Connection refused
[Thread 0xb3f98b70 (LWP 3060) exited]
Failed to initialize audio driver 'pulse'
Trying preferred audio driver 'alsa', options '[none]'
alsa-init: requested format: 22050 Hz, 2 channels, 9
alsa-init: using ALSA 1.0.20
alsa-init: setup for 1/2 channel(s)
alsa-init: using device default
[AO_ALSA] alsa-lib: confmisc.c:768:(parse_card) cannot find card '0'
[AO_ALSA] alsa-lib: conf.c:3513:(_snd_config_evaluate) function snd_func_card_dr
iver returned error: No such file or directory
[AO_ALSA] alsa-lib: confmisc.c:392:(snd_func_concat) error evaluating strings
[AO_ALSA] alsa-lib: conf.c:3513:(_snd_config_evaluate) function snd_func_concat
returned error: No such file or directory
[AO_ALSA] alsa-lib: confmisc.c:1251:(snd_func_refer) error evaluating name
[AO_ALSA] alsa-lib: conf.c:3513:(_snd_config_evaluate) function snd_func_refer r
eturned error: No such file or directory
[AO_ALSA] alsa-lib: conf.c:3985:(snd_config_expand) Evaluate error: No such file

or directory

[AO_ALSA] alsa-lib: pcm.c:2211:(snd_pcm_open_noupdate) Unknown PCM default
[AO_ALSA] Playback open error: No such file or directory
Failed to initialize audio driver 'alsa'
Trying preferred audio driver 'sdl', options 'aalib'
[AO SDL] Samplerate: 22050Hz Channels: Stereo Format s16le
[AO SDL] using aalib audio driver.
[AO SDL] Unable to open audio: No available audio device
Failed to initialize audio driver 'sdl:aalib'
Could not open/initialize audio device -> no sound.
Uninit audio filters...
[libaf] Removing filter dummy
Uninit audio: mp3lib
Audio: no sound
Freeing 0 unused audio chunks.
Starting playback...
[ffmpeg] aspect_ratio: 0.000000
VDec: vo config request - 320 x 240 (preferred colorspace: Planar YV12)
Trying filter chain: vo
VDec: using Planar YV12 as output csp (no 0)
Movie-Aspect is undefined - no prescaling applied.
VO Config (320x240->320x240,flags=0,'MPlayer',0x32315659)
VO: [x11] 320x240 => 320x240 Planar YV12
VO: Description: X11 ( XImage/Shm )
VO: Author: Aaron Holtzman <aholtzma@…>
Sharing memory.
[swscaler @ 0xa54240]using unscaled yuv420p -> rgb32 special converter
* [vo] Allocating mp_image_t, 320x240x12bpp YUV planar, 115200 bytes

Program received signal SIGILL, Illegal instruction.
0x00a4f757 in yuv420_rgb32_MMX2 (c=0x854e840, src=0xbfffe580,

srcStride=0xbfffe550, srcSliceY=0, srcSliceH=240, dst=0xbfffe5dc,
dstStride=0xbfffe560)
at /build/buildd/ffmpeg-0.5+svn20090706/libswscale/yuv2rgb_template.c:447

447 /build/buildd/ffmpeg-0.5+svn20090706/libswscale/yuv2rgb_template.c: No s
uch file or directory.

in /build/buildd/ffmpeg-0.5+svn20090706/libswscale/yuv2rgb_template.c

(gdb) bt
#0 0x00a4f757 in yuv420_rgb32_MMX2 (c=0x854e840, src=0xbfffe580,

srcStride=0xbfffe550, srcSliceY=0, srcSliceH=240, dst=0xbfffe5dc,
dstStride=0xbfffe560)
at /build/buildd/ffmpeg-0.5+svn20090706/libswscale/yuv2rgb_template.c:447

#1 0x00a3fc91 in sws_scale (c=0x854e840, src=0x852db7c, srcStride=0x852db8c,

srcSliceY=0, srcSliceH=240, dst=0xbfffe5dc, dstStride=0xbfffe5d0)
at /build/buildd/ffmpeg-0.5+svn20090706/libswscale/swscale.c:2804

#2 0x080ef0fa in draw_slice (src=0x852db7c, stride=0x852db8c, w=320, h=240,

x=0, y=0) at libvo/vo_x11.c:570

#3 0x08158eee in put_image (vf=0x8520c18, mpi=0x852db50, pts=0)

at libmpcodecs/vf_vo.c:189

#4 0x0812992f in filter_video (sh_video=0x8515f30, frame=0x852db50, pts=0)

at libmpcodecs/dec_video.c:416

#5 0x08099955 in generate_video_frame (argc=3, argv=0xbffff7e4)

at mplayer.c:1763

#6 update_video (argc=3, argv=0xbffff7e4) at mplayer.c:2302
#7 main (argc=3, argv=0xbffff7e4) at mplayer.c:3694
(gdb) disass $pc-32 $pc+32
Dump of assembler code from 0xa4f737 to 0xa4f777:
0x00a4f737 <yuv420_rgb32_MMX2+375>: pusha
0x00a4f738 <yuv420_rgb32_MMX2+376>: ret
0x00a4f739 <yuv420_rgb32_MMX2+377>: punpcklbw %mm4,%mm1
0x00a4f73c <yuv420_rgb32_MMX2+380>: punpcklbw %mm5,%mm2
0x00a4f73f <yuv420_rgb32_MMX2+383>: pcmpeqd %mm3,%mm3
0x00a4f742 <yuv420_rgb32_MMX2+386>: movq %mm0,%mm6
0x00a4f745 <yuv420_rgb32_MMX2+389>: movq %mm1,%mm7
0x00a4f748 <yuv420_rgb32_MMX2+392>: movq %mm0,%mm4
0x00a4f74b <yuv420_rgb32_MMX2+395>: movq %mm1,%mm5
0x00a4f74e <yuv420_rgb32_MMX2+398>: punpcklbw %mm2,%mm6
0x00a4f751 <yuv420_rgb32_MMX2+401>: punpcklbw %mm3,%mm7
0x00a4f754 <yuv420_rgb32_MMX2+404>: punpcklwd %mm7,%mm6
0x00a4f757 <yuv420_rgb32_MMX2+407>: movntq %mm6,(%ebx)
0x00a4f75a <yuv420_rgb32_MMX2+410>: movq %mm0,%mm6
0x00a4f75d <yuv420_rgb32_MMX2+413>: punpcklbw %mm2,%mm6
0x00a4f760 <yuv420_rgb32_MMX2+416>: punpckhwd %mm7,%mm6
0x00a4f763 <yuv420_rgb32_MMX2+419>: movntq %mm6,0x8(%ebx)
0x00a4f767 <yuv420_rgb32_MMX2+423>: punpckhbw %mm2,%mm4
0x00a4f76a <yuv420_rgb32_MMX2+426>: punpckhbw %mm3,%mm5
0x00a4f76d <yuv420_rgb32_MMX2+429>: punpcklwd %mm5,%mm4
0x00a4f770 <yuv420_rgb32_MMX2+432>: movntq %mm4,0x10(%ebx)
0x00a4f774 <yuv420_rgb32_MMX2+436>: movq %mm0,%mm4
---Type <return> to continue, or q <return> to quit---
End of assembler dump.
(gdb) info all-registers
eax 0x8570540 139920704
ecx 0xffffff60 -160
edx 0x0 0
ebx 0xb7f4f000 -1208684544
esp 0xbfffe49c 0xbfffe49c
ebp 0x85830a0 0x85830a0
esi 0x8552978 139798904
edi 0x8587ba0 140016544
eip 0xa4f757 0xa4f757 <yuv420_rgb32_MMX2+407>
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 -inf (raw 0xffff0000000000000000)
st1 -inf (raw 0xffff0000000000000000)
st2 -inf (raw 0xffff0000000000000000)
st3 -nan(0xffffffffffffffff) (raw 0xffffffffffffffffffff)
st4 -inf (raw 0xffff0000000000000000)
st5 -inf (raw 0xffff0000000000000000)
st6 -nan(0xff000000ff000000) (raw 0xffffff000000ff000000)
---Type <return> to continue, or q <return> to quit---
st7 -nan(0xff00ff00ff00ff00) (raw 0xffffff00ff00ff00ff00)
fctrl 0x37f 895
fstat 0x120 288
ftag 0xaaaa 43690
fiseg 0x73 115
fioff 0x812990c 135436556
foseg 0x7b 123
fooff 0xbfffe640 -1073748416
fop 0x55d 1373
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,

---Type <return> to continue, or q <return> to quit---

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 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0,

0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}

mm1 {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0,

0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}

---Type <return> to continue, or q <return> to quit---
mm2 {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0,

0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}

mm3 {uint64 = 0xffffffffffffffff, v2_int32 = {0xffffffff,

0xffffffff}, v4_int16 = {0xffff, 0xffff, 0xffff, 0xffff}, v8_int8 = {0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}}

mm4 {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0,

0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}

mm5 {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0,

0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}

mm6 {uint64 = 0xff000000ff000000, v2_int32 = {0xff000000,

0xff000000}, v4_int16 = {0x0, 0xff00, 0x0, 0xff00}, v8_int8 = {0x0, 0x0,
0x0, 0xff, 0x0, 0x0, 0x0, 0xff}}

mm7 {uint64 = 0xff00ff00ff00ff00, v2_int32 = {0xff00ff00,

0xff00ff00}, v4_int16 = {0xff00, 0xff00, 0xff00, 0xff00}, v8_int8 = {0x0,
0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff}}

(gdb)

Change History (3)

comment:1 by compn, 13 years ago

Owner: changed from beastd to reimar

comment:2 by cehoyos, 13 years ago

Cc: cehoyos@… added

Sample missing.

comment:3 by vwdowns@…, 13 years ago

I've retired the hardware, but I'll try to get the sample 3.flv that crashed mplayer.

Note: See TracTickets for help on using tickets.