[MPlayer-users] Smooth DVD Playback And OpenGL

Jason Van Cleve jason at vancleve.com
Fri May 31 02:44:02 CEST 2002


To play a DVD.  This is all I really want from Linux--my one desire.
I've looked high and low for a suitable player, and Mplayer certainly
looks the most appealing to me (I like that it's GUI-independent and can
run in text mode).  But DVD playback (only DVDs, not AVIs) is a little
jerky with Mplayer (0.90pre4, built from source), just enough to be
irritating.  Audio output is fine (oss), but there is a very slight
pause in the video about every 1/3 second.  This seems to be an Mplayer
flaw, because I have a fast, up-to-date system, and other DVD players
work better.  Xine performs best for DVDs--nice and smooth using
dvd-nav; but Xine is not what it's cracked up to be (it can't even play
an MP3 on my system without hiccuping every so often), so I would much
rather use Mplayer.  DVD playback is also better in Ogle, though it's
not as good as Xine, and let's face it, Ogle's interface is a shoddy
piece of crud.  (All right, just an opinion. . . .)

So I'm really hoping someone will help me get Mplayer working well,
because on the whole, I think it really kicks ass.  Or at least, let me
know whether I should report a bug or post to the advanced user list.
I've read all the doc's thoroughly, google'd 'till my brain hurt, tried
all the options I could find in the man page (-framedrop, -cache,
-double, -nosound, etc.), I have DMA enabled on my drive, and I've tried
all the latest dvdread (0.9.1, 0.9.2 and 0.9.3) and dvdcss (1.2.0 and
0.0.3ogle3) packages as well as uninstalling those and using
libmpdvdkit:  the result is always the same, slightly jerky video for
DVDs.  AVIs play fine--a little out of sync, but I can adjust that.

Which brings me to my other problem.  All of the above pertains to the
xv driver.  I thought maybe I could get better results with one of the
gl options (which were compiled), but Mplayer crashes when I use those.
I've included some output below along with my system spec's.  With gl I
get a half second of sound, then it hangs for several seconds and
finally crashes.  With gl2 I get a little piece of sound and then it
crashes immediately.  You'll note from my spec's that I have a GeForce2
(GTS) card.  I know the doc's say Mplayer is "known not to work" with
it, and I know how you feel in general about Nvidia and their drivers. I
tend to agree, but this is my card, it's a popular card, and it does
well most of the time, so my wish is for someone to actually try and
resolve this here.  It ALMOST works, and I have a good system for
testing this, fast hardware, and a newly installed LFS OS with the
latest software (or the sanest:  gcc 2.95.3 and automake 1.5).  I have
the latest Nvidia drivers installed, 1.0.2960, with Nvidia's headers
linked in /usr/X11R6/include/GL/, but I've also tried using the utah-glx
driver with MesaLib 3.2, and that didn't help.  Neither did SDL.  The GL
modules just won't go.  Perhaps Mplayer is using some advanced GL
feature that my card is choking on, or perhaps this is a bug in Mplayer.

I've spent much time on this and tried many things, for it is my one
desire.  If I could get smooth DVD video with Xv, I won't cry about the
gl bug; but maybe GL is my key, and I just need a workaround or a
patch.  Maybe Xine is using GLX successfully, and that's why it plays
smoothly.  I dunno.  Here are my hardware spec's:

        MSI K7T Turbo2 mainboard
	AMD Thunderbird 1.4GHz
	half-gig' of PC133 cas2 SDRAM
	ASUS v7700 GTS 32-meg GeForce2
        3 Western Digital HDs
        1 DVD-ROM, "OEM316B" (secondary slave)
	SoundBlaster Live! Platinum (with LiveDrive)

Software:

        LFS 3.3
        kernel 2.4.18
        libc 2.2.5
        XFree86 4.2.0
        gcc 2.95.3
        ld 2.12
        as 2.12
        Nvidia drivers 1.0.2960
        ALSA 0.9.0rc1

Here's some verbose output from when I use -vo gl:

MPlayer 0.90pre4-2.95.3 (C) 2000-2002 Arpad Gereoffy (see DOCS!)

CPU vendor name: AuthenticAMD  max cpuid level: 1
CPU: Advanced Micro Devices Athlon TB Thunderbird (Type: 6, Stepping: 4)
extended cpuid-level: 6
CPUflags: Type: 6 MMX: 1 MMX2: 1 3DNow: 1 3DNow2: 1 SSE: 0 SSE2: 0
Compiled for x86 CPU with features: MMX MMX2 3DNow 3DNowEx
Reading /home/jason/.mplayer/codecs.conf: can't open '/home/jason/.mplayer/codecs.conf': No such file or directory
Reading /usr/local/share/mplayer/codecs.conf: 34 audio & 92 video codecs
CommandLine:get_path('font/font.desc') -> '/home/jason/.mplayer/font/font.desc'
 '-v' '-vo' 'gl' 'The Fellowship Of The Ring (screener) - part 2.avi'
Using MMX (with tiny bit MMX2) Optimized OnScreenDisplay
font: can't open file: /home/jason/.mplayer/font/font.desc
font: can't open file: /usr/local/share/mplayer/font/font.desc
Linux RTC init error: Permission denied
Using usleep() timing
get_path('input.conf') -> '/home/jason/.mplayer/input.conf'
Can't open input config file /home/jason/.mplayer/input.conf : No such file or directory
Falling back on default (hardcoded) config
Playing The Fellowship Of The Ring (screener) - part 2.avi
Not an URL!
File size is 731994112 bytes
Detected AVI file format!
list_end=0x2292
list_end=0x10F4
======= AVI Header =======
us/frame: 41708  (fps=23.976)
max bytes/sec: 0
padding: 0
MainAVIHeader.dwFlags: (272) HAS_INDEX IS_INTERLEAVED
frames  total: 122813   initial: 0
streams: 2
Suggested BufferSize: 0
Size:  640 x 272
==> Found video stream: 0
found 'bih', 40 bytes of 40
======= STREAM Header =======
Type: vids   FCC: div3 (33766964)
Flags: 0
Priority: 0   Language: 0
InitialFrames: 0
Rate: 2997/125 = 23.976
Start: 0   Len: 122813
Suggested BufferSize: 68721
Quality 10000
Sample size: 0
Regenerating keyframe table for DIVX 3 video
======= VIDEO Format ======
  biSize 40
  biWidth 640
  biHeight 272
  biPlanes 1
  biBitCount 24
  biCompression 861292868='DIV3'
  biSizeImage 522240
===========================
list_end=0x2186
==> Found audio stream: 1
found 'wf', 30 bytes of 20
======= STREAM Header =======
Type: auds   FCC:  (0)
Flags: 0
Priority: 0   Language: 0
InitialFrames: 1
Rate: 48000/1152 = 41.667
Start: 0   Len: 213428
Suggested BufferSize: 960
Quality -1
Sample size: 0
list_end=0x2292
======= WAVE Format =======
Format Tag: 85 (0x55)
Channels: 2
Samplerate: 48000
avg byte/sec: 17760
Block align: 1152
bits/sample: 0
cbSize: 12
mp3.wID=1
mp3.fdwFlags=0x2
mp3.nBlockSize=426
mp3.nFramesPerBlock=1
mp3.nCodecDelay=0
list_end=0x2368
hdr=Software  size=15
Software  : Nandub v1.0rc2
hdr=Name  size=64
Name      : The Lord Of The Rings: The Fellowship Of The Rings DVD Screener
hdr=Subject  size=64
Subject   : The Lord Of The Rings: The Fellowship Of The Rings DVD Screener
hdr=Artist  size=4
Artist    : DVL
hdr=Copyright  size=4
Copyright : DVL
hdr=Comments  size=1
Comments  : 
Broken chunk?  chunksize=1168  (id=JUNK)
list_end=0x2B4F3BF0
Found movie at 0x280C - 0x2B4F3BF0
Reading INDEX block, 336241 chunks for 122813 frames
Broken chunk?  chunksize=0  (id=idx1)
Reading INDEX block, 336241 chunks for 122813 frames
AVI index offset: 0x2808 (movi=0x280C idx0=0x4 idx1=0x1EC)
Auto-selected AVI audio ID = 1
Auto-selected AVI video ID = 0
AVI: Searching for audio stream (id:1)
AVI video length=723699376
VIDEO:  [DIV3]  640x272  24bpp  23.98 fps  1130.3 kbps (138.0 kbyte/s)
[V] filefmt:3  fourcc:0x33564944  size:640x272  fps:23.98  ftime:=0.0417
Clip info: 
 Software: Nandub v1.0rc2
 Name: The Lord Of The Rings: The Fellowship Of The Rings DVD Screener
 Subject: The Lord Of The Rings: The Fellowship Of The Rings DVD Screener
 Artist: DVL
 Copyright: DVL
 Comments: 
get_path('sub/') -> '/home/jason/.mplayer/sub/'
Detected audio codec: [mp3] drv:1 (MPEG layer-2, layer-3)
Initializing audio codec...
Selecting Audio Decoder: [mp3lib] MPEG layer-2, layer-3
dec_audio: Allocating 4608 + 65536 = 70144 bytes for output buffer
AUDIO: srate=48000  chans=2  bps=2  sfmt=0x10  ratio: 20000->192000
mp3lib: made decode tables with MMX optimization
init layer2&3 finished, tables done
mp3lib: using 3DNow!Ex optimized decore!

MPEG 1.0, Layer III, 48000 Hz 160 kbit Joint-Stereo, BPF: 480
Channels: 2, copyright: No, original: Yes, CRC: No, emphasis: 0
==========================================================================
Opening Video Decoder: [ffmpeg] FFmpeg's libavcodec codec family
INFO: libavcodec init OK!
libavcodec: CPU flags: mmx mmxext 3dnow
Detected video codec: [ffdivx] drv:5 prio:0 (FFmpeg DivX ;-) (MS MPEG-4 v3))
==========================================================================
AO: [oss] 48000Hz Stereo Signed 16-bit (Little-Endian)
AO: Description: OSS/ioctl audio output
AO: Author: A'rpi
Start playing...
ao2: 48000 Hz  2 chans  Signed 16-bit (Little-Endian)
audio_setup: using '/dev/dsp' dsp device
audio_setup: sample format: Signed 16-bit (Little-Endian) (requested: Signed 16-bit (Little-Endian))
audio_setup: using 2 channels (requested: 2)
audio_setup: using 48000 Hz samplerate (requested: 48000)
audio_setup: frags:   8/8  (8192 bytes/frag)  free:  65536
VDec: vo config request - 640 x 272, Planar YV12  
[PP] Sorry, postprocessing is not available
vo_debug: query(Planar YV12) returned 0x401 (i=0) 
vo_debug: query(Planar I420) returned 0x0 (i=1) 
vo_debug: query(Planar IYUV) returned 0x0 (i=2) 
Movie-Aspect is undefined - no prescaling applied.
video_out->init(640x272->640x272,flags=0,'MPlayer',0x32315659)
VO: [gl] 640x272 => 640x272 Planar YV12 
VO: Description: X11 (OpenGL)
VO: Author: Arpad Gereoffy <arpi at esp-team.scene.hu>
Cannot init MMX2 colorspace transform
X11 opening display: :0.0
vo: X11 color mask:  FFFFFF  (R:FF0000 G:FF00 B:FF)
vo: X11 running at 1600x1200 with depth 24 and 32 bits/pixel (":0.0" => local display)
No accelerated colorspace conversion found
*** [vo] Exporting mp_image_t, 640x272x12bpp YUV planar, 261120 bytes
[gl] YUV init OK!
[gl] Creating 1024x1024 texture...
[gl] Resize: 640x272
Disabling DPMS
stat: 1


MPlayer interrupted by signal 11 in module: uninit_vo 
- MPlayer crashed by bad usage of CPU/FPU/RAM. Recompile MPlayer with --enable-debug and make a 'gdb' backtrace and disassembly. For details, see DOCS/bugreports.html section 5.b.
- MPlayer crashed. This shouldn't happen. It can be a bug in the MPlayer code _or_ in your drivers _or_ in your gcc version. If you think it's MPlayer's fault, please read DOCS/bugreports.html and follow instructions there. We can't and won't help unless you provide these informations when reporting a possible bug.
X11 error: BadDrawable (invalid Pixmap or Window parameter)
Type: 0, display: 8330018, resourceid: 0, serial: 4a
Error code: 9, request code: e, minor code: 0

*** free_stream() called ***
Successfully enabled DPMS
vo: uninit ...


. . . Sorry if this is the wrong place to be posting all this info'.  If
so, just let me know if I should report this as a bug, or what?

Thanx very much,

--Jason Van Cleve




More information about the MPlayer-users mailing list