Actually, it seems to be a bit more complex than that. I've stepped through it more carefully in gdb, and vlc does correctly trap SIGLL from mtvrsave and lvx in its has_altivec(). The real problem comes later on in ff_er_frame_end().
Program received signal SIGILL, Illegal instruction.
0x0c7c603c in ff_er_frame_end () from /usr/lib/libavcodec.so.0d
#0 0x0c7c603c in ff_er_frame_end () from /usr/lib/libavcodec.so.0d
#1 0x0c7f5bc8 in ff_h263_decode_frame () from /usr/lib/libavcodec.so.0d
#2 0x0c6bac28 in avcodec_decode_video () from /usr/lib/libavcodec.so.0d
0x0c7c603c <ff_er_frame_end+8>: vxor v0,v0,v0
Attempting to play the same movie in totem gives me:
0x0d0ff34c in ff_er_frame_end () from /usr/lib/gstreamer-0.10/libgstffmpeg.so
#0 0x0d0ff34c in ff_er_frame_end ()
from /usr/lib/gstreamer-0.10/libgstffmpeg.so
#1 0x0d1baff8 in ff_h263_decode_frame ()
from /usr/lib/gstreamer-0.10/libgstffmpeg.so
#2 0x0d038a18 in avcodec_decode_video ()
from /usr/lib/gstreamer-0.10/libgstffmpeg.so
0x0d0ff34c <ff_er_frame_end+8>: vxor v0,v0,v0
ffmpeg appears to be the common factor in all cases. It appears that ffmpeg is incorrectly using Altivec instructions on machines which do not support it.
Actually, it seems to be a bit more complex than that. I've stepped through it more carefully in gdb, and vlc does correctly trap SIGLL from mtvrsave and lvx in its has_altivec(). The real problem comes later on in ff_er_frame_end().
Program received signal SIGILL, Illegal instruction. libavcodec. so.0d
0x0c7c603c in ff_er_frame_end () from /usr/lib/
#0 0x0c7c603c in ff_er_frame_end () from /usr/lib/ libavcodec. so.0d decode_ frame () from /usr/lib/ libavcodec. so.0d decode_ video () from /usr/lib/ libavcodec. so.0d
#1 0x0c7f5bc8 in ff_h263_
#2 0x0c6bac28 in avcodec_
0x0c7c603c <ff_er_ frame_end+ 8>: vxor v0,v0,v0
Attempting to play the same movie in totem gives me:
0x0d0ff34c in ff_er_frame_end () from /usr/lib/ gstreamer- 0.10/libgstffmp eg.so
#0 0x0d0ff34c in ff_er_frame_end () gstreamer- 0.10/libgstffmp eg.so decode_ frame () gstreamer- 0.10/libgstffmp eg.so decode_ video () gstreamer- 0.10/libgstffmp eg.so
from /usr/lib/
#1 0x0d1baff8 in ff_h263_
from /usr/lib/
#2 0x0d038a18 in avcodec_
from /usr/lib/
0x0d0ff34c <ff_er_ frame_end+ 8>: vxor v0,v0,v0
ffmpeg appears to be the common factor in all cases. It appears that ffmpeg is incorrectly using Altivec instructions on machines which do not support it.