[MPlayer-users] Segfault from MPEG audio codec from Hauppauge PVR-150

Robert Bradbury robert.bradbury at gmail.com
Sat Apr 19 16:14:41 CEST 2008


I have a recently developed problem involving the current version of mplayer
(SVN-r26456) and the current version of v4l (Linux 2.6.24-gentoo-r4) working
with a Hauppauge PVR-150.

This *used* to work fine.  I.e. I could watch TV, change channels, etc.
using mplayer directly from /dev/video0.

Now problem #1 is MPlayer segfaults.

Exact message is:
MPlayer interrupted by signal 11 in module: demux_open
- MPlayer crashed by bad usage of CPU/FPU/RAM.

Compiling with debugging and doing a stack trace is relatively useless.  At
first I thought this was because it is necessary to omit the frame pointer
and or play with the mmx  flags to compile the modules (h264.c and
snowdsp_mmx.c) but it turns out this is apparently a windows dll codec
problem.  Removing "/usr/lib/win32" (and its .dll files) and mplayer will
play /dev/video0 but without sound.  Restore the simple win32 codecs:
  avisynth.dll, AVIFIL32.dll,  DevIL.dll,  GDI32.dll,  MSACM32.dll
and the segmentation fault ruturns.  I'm assuming that it is impossible to
do stack traces of any use of the DLL files.  Running strace indicates the
segfault occurs after mapping/unmapping the DLL files.

So I compiled mplayer with "--disable-win32dll --disable-win32waveout"
hoping that this would force mplayer to use Linux code to decode the audio
stream from the Happauge card (*why* one is using windows files, e.g.
AVIFIL32.DLL, GDI32.DLL and MSACM32.DLL or there equivalents is beyond
me!).  This is an improvement as this mplayer can play the video from
/dev/video0 without segfaulting (with the /usr/lib/win32 codecs
"installed").  When run, it does seem to think it is setting up the audio...

It says:
Opening audio decoder: [mp3lib] MPEG layer-2, layer-3
AUDIO: 48000 Hz, 2 ch, s16le, 224.0 kbit/14.58% (ratio: 28000->192000)
Selected audio codec: [mp3] afm: mp3lib (mp3lib MPEG layer-2, layer-3)

Which is exactly what it says when I play back a previously saved stream
from /dev/video0 (i.e. cat /dev/video0 > oldfile.mpg -- from many months ago
and run "mplayer oldfile.mpg").  But the current mplayer produces no sound
either directly from /dev/video0 or from data saved from /dev/video0 to a
file.

So, problem #1 is that mplayer should not "segfault", though this may be a
problem with the codec's and not with mplayer itself.  Problem #2 seems to
relate to whether or not the current Linux output from /dev/video0
(/dev/v4l/video0) is dropping the sound stream entirely.  Or else current
mplayer releases are completely losing (or unable to decode) a streaming
MPEG sound stream.

Any clues would be appreciated.  Also any suggestions as to *how* to setup a
mplayer without any of the DLL audio/video codecs under Linux would be
appreciated.  I primarily deal with standard independent formats and
generally could care less if I can play Microsoft formats.

Thanks,
Robert Bradbury



More information about the MPlayer-users mailing list