[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