[MPlayer-cygwin] Re: vo_directx: no triple buffering with certain videos [followup]

Sascha Sommer saschasommer at freenet.de
Fri Jan 19 10:22:10 CET 2007


Hi,

On Friday 19 January 2007 03:04, Frank Aurich wrote:
> Frank Aurich wrote:
> > Hi,
> >
> > I'm having a strange problem with Mplayer which I can't make heads or
> > tails of.
> > I'm using the latest SVN build with this configure:
> >
> > --enable-menu --disable-mencoder --enable-largefiles --disable-tv
> > --disable-dvb --disable-gif --disable-jpeg --disable-tga --disable-xvid
> > --disable-vidix-internal --with-extraincdir=/home/KyleK/live
> > --with-extralibdir=/home/KyleK/live
> >
> > (although I tried a build without any specific configure options, same
> > result=
> >
> > The Problem: With videos of high(er) resolution, i.e. 960x528 or
> > 1280x720, vo_directx cannot enable triple buffering and therefore
> > switches to single buffer.
> > The result is a slightly sluggish video, it looks like vertical sync is
> > disabled and you can see "tears" on the screen. If you enable the OSD,
> > it flickers badly.
> >
> > An excerpt from Mplayers output:
> >
> > =========================================================================
> >= list_end=0x2286
> > AVI: dmlh found (size=248) (total_frames=62629)
> > list_end=0x22AA
> > hdr=Software  size=15
> > Software  : Nandub v1.0rc2
> > list_end=0x2B8A8AAC
> > Found movie at 0x280C - 0x2B8A8AAC
> > Reading INDEX block, 125245 chunks for 62629 frames (fpos=730499764).
> > AVI index offset: 0x2808 (movi=0x280C idx0=0x4 idx1=0x5DCC)
> > Auto-selected AVI audio ID = 1
> > Auto-selected AVI video ID = 0
> > AVI: Searching for audio stream (id:1)
> > AVI video size=609211919 (62629) audio size=120244224 (120244224)
> > VIDEO:  [XVID]  960x528  12bpp  25.000 fps  1945.5 kbps (237.5 kbyte/s)
> > [V] filefmt:3  fourcc:0x44495658  size:960x528  fps:25.00  ftime:=0.0400
> > Clip info:
> >  Software: Nandub v1.0rc2
> > get_path('sub/') -> 'e:/programme/mplayer/mplayer/sub/'
> > <vo_directx><INFO>checking primary surface
> > <vo_directx><FORMAT PRIMARY>14 BGR32 supported
> > <vo_directx><INFO>testing supported overlay pixelformats
> > <vo_directx><FORMAT OVERLAY>0 YV12  supported
> > <vo_directx><FORMAT OVERLAY>1 I420  not supported
> > <vo_directx><FORMAT OVERLAY>2 IYUV  not supported
> > <vo_directx><FORMAT OVERLAY>3 YVU9  not supported
> > <vo_directx><FORMAT OVERLAY>4 YUY2  supported
> > <vo_directx><FORMAT OVERLAY>5 UYVY  supported
> > <vo_directx><FORMAT OVERLAY>6 BGR8  not supported
> > <vo_directx><FORMAT OVERLAY>7 RGB15 not supported
> > <vo_directx><FORMAT OVERLAY>8 BGR15 supported
> > <vo_directx><FORMAT OVERLAY>9 RGB16 not supported
> > <vo_directx><FORMAT OVERLAY>10 BGR16 supported
> > <vo_directx><FORMAT OVERLAY>11 RGB24 not supported
> > <vo_directx><FORMAT OVERLAY>12 BGR24 not supported
> > <vo_directx><FORMAT OVERLAY>13 RGB32 not supported
> > <vo_directx><FORMAT OVERLAY>14 BGR32 supported
> > <vo_directx><INFO>Your card supports 6 of 15 overlayformats
> > <vo_directx><INFO>hardware supports overlay
> > [vo] query(Planar YV12) -> 3
> > [ass] auto-open
> > Opening video filter: [pp=ac]
> > [ass] query(Planar YV12) -> 3
> > [ass] Init
> > get_path('fonts') -> 'e:/programme/mplayer/mplayer/fonts'
> > get_path('subfont.ttf') -> 'e:/programme/mplayer/mplayer/subfont.ttf'
> > =========================================================================
> >= Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family INFO:
> > libavcodec init OK!
> > Selected video codec: [ffodivx] vfm: ffmpeg (FFmpeg MPEG-4)
> > =========================================================================
> >=
> > =========================================================================
> >= Opening audio decoder: [liba52] AC3 decoding with liba52
> > dec_audio: Allocating 3840 bytes for input buffer.
> > dec_audio: Allocating 18432 + 65536 = 83968 bytes for output buffer.
> > AC3: 2.0 (stereo)  48000 Hz  384.0 kbit/s
> > A52 flags before a52_frame: 0x37
> > A52 flags after a52_frame: 0x2
> > A52 flags before a52_frame: 0x27
> > A52 flags after a52_frame: 0x2
> > A52 flags before a52_frame: 0x26
> > A52 flags after a52_frame: 0x2
> > A52 flags before a52_frame: 0x24
> > A52 flags after a52_frame: 0x2
> > A52 flags before a52_frame: 0x2A
> > A52 flags after a52_frame: 0x2
> > AUDIO: 48000 Hz, 2 ch, s16le, 384.0 kbit/25.00% (ratio: 48000->192000)
> > Selected audio codec: [a52] afm: liba52 (AC3-liba52)
> > =========================================================================
> >= Building audio filter chain for 48000Hz/2ch/s16le -> 0Hz/0ch/??...
> > [libaf] Adding filter dummy
> > [dummy] Was reinitialized: 48000Hz/2ch/s16le
> > [dummy] Was reinitialized: 48000Hz/2ch/s16le
> > ao_dsound: Output Devices:
> > 0 Primary Sound Driver <--
> > 1 Speakers (Creative SB Audigy)
> > 2 SPDIF Out (Creative SB Audigy)
> > ao_dsound: DirectSound initialized
> > ao_dsound: Samplerate:48000Hz Channels:2 Format:s16le
> > ao_dsound: Buffersize:192000 bytes (1000 msec)
> > ao_dsound: primary buffer created
> > ao_dsound: secondary (stream)buffer created
> > AO: [dsound] 48000Hz 2ch s16le (2 bytes per sample)
> > AO: Description: Windows DirectSound audio output
> > AO: Author: Gabor Szecsi <deje at miki.hu>
> > Building audio filter chain for 48000Hz/2ch/s16le -> 48000Hz/2ch/s16le...
> > [dummy] Was reinitialized: 48000Hz/2ch/s16le
> > [dummy] Was reinitialized: 48000Hz/2ch/s16le
> > Starting playback...
> > XXX initial  v_pts=0.000  a_pos=24000 (0.500)
> > [ffmpeg] aspect_ratio: 1.818182
> > VDec: vo config request - 960 x 528 (preferred colorspace: Planar YV12)
> > [PP] Using external postprocessing filter, max q = 6.
> > Trying filter chain: pp ass vo
> > VDec: using Planar YV12 as output csp (no 0)
> > Movie-Aspect is 1.82:1 - prescaling to correct movie aspect.
> > VO Config (960x528->960x528,flags=0,'MPlayer',0x32315659)
> > REQ: flags=0x2417  req=0x0
> > REQ: flags=0x417  req=0x0
> > VO: [directx] 960x528 => 960x528 Planar YV12
> > VO: Description: Directx DDraw YUV/RGB/BGR renderer
> > VO: Author: Sascha Sommer <saschasommer at freenet.de>
> > <vo_directx><WARN>cannot create tribblebuffer overlay with format YV12
> > <vo_directx><INFO>using singlebuffer overlay
> > <vo_directx><WARN>unable to get DirectDraw ColorControl interface
> > *** [pp] Allocating mp_image_t, 960x528x12bpp YUV planar, 760320 bytes
> > A:   0.9 V:   0.0 A-V:  0.870 ct:  0.000   1/  1 ??% ??% ??,?% 0 0
> > *** [pp] Allocating mp_image_t, 960x528x12bpp YUV planar, 760320 bytes
> > *** [vo] Allocating mp_image_t, 960x528x12bpp YUV planar, 760320 bytes
> > *** [ass] Direct Rendering mp_image_t, 960x528x12bpp YUV planar, 760320
> > bytes
> > [postproc @ 009D9C90]using npp filters 0x4404/0x4404
> > get_path('subfont.ttf') -> 'e:/programme/mplayer/mplayer/subfont.ttf'
> > Unicode font: 255 glyphs.
> >
> > =========================================================================
> >===================
> >
> >
> > With videos of size 640x352, it works fine. Triple buffering is enabled
> > according to the log.
> >
> > A friend of mine tried with the same Mplayer executable and the same
> > video file,  and on his machine, it works.
> >
> > Some info about my system:
> >
> > Athlon XP 3000+
> > 1GB RAM
> > Radeon X800 Pro
> > Window Vista Business RTM
> >
> >
> > Any idea what the  reason for this might be?
> > I've been using Mplayer for a while now, also for hires videos, and I
> > can't say i've encountered the problem before.  Then again, I might have
> > not noticed it.
> >
> >
> > Frank
>
> I added some debug code to vo_directx.c to check for the return value of
> the CreateSurface function.
>
> It returns DDERR_OUTOFVIDEOMEMORY :/
>
> My videocard has 256MB of RAM, that should normally be enough, shouldn't
> it?
>

Yes. Unfortunatelly there is nothing we can do here ;(
Reminds me of the times where my Riva128 could only use the overlay in 800x600 
mode although nvidia_vid worked fine with higher resolutions.

Regards

Sascha



More information about the MPlayer-cygwin mailing list