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

Frank Aurich fa859178 at inf.tu-dresden.de
Fri Jan 19 03:04:58 CET 2007


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?


Frank





More information about the MPlayer-cygwin mailing list