[MPlayer-users] mplayer 1.0pre7-3.4.4 (FreeBSD) && Unsupported WMVA version

m.apitz at oclcpica.org m.apitz at oclcpica.org
Tue May 16 10:52:41 CEST 2006


El día Tuesday, May 16, 2006 a las 08:28:26AM +0200, m.apitz at oclcpica.org escribió:

> Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
> AUDIO: 11025 Hz, 1 ch, s16le, 8.0 kbit/4.55% (ratio: 1003->22050)
> Selected audio codec: [ffwmav2] afm:ffmpeg (DivX audio v2 (FFmpeg))
> ==========================================================================
> vo: X11 running at 1400x1050 with depth 16 and 16 bpp (":0.0" => local display)
> ==========================================================================
> Opening video decoder: [dmo] DMO video codecs
> Unsupported WMVA version
> IMediaObject ERROR: 0x84369ce  could not open DMO DLL (0x0 : 0)
> Failed to create DMO filter
> ERROR: Could not open required DirectShow codec wmvadvd.dll.
> You need to upgrade/install the binary codecs package.
> Go to http://mplayerhq.hu/homepage/dload.html
> VDecoder init failed :(
> Cannot find codec matching selected -vo and video format 0x41564D57.
> 	...

OK, I diged into the sources causing the message 'Unsupported WMVA version'
which comes out of loader/module.c where it reads in original:

// Windows Media Video 9 Advanced
if (strstr(libname,"wmvadvd.dll") && wm)
{
   // The codec calls IsRectEmpty with coords 0,0,0,0 => result is 0
   // but it really wants the rectangle to be not empty
   if (PE_FindExportedFunction(wm, "CreateInstance", TRUE)==(void*)0x08c4b812) {
      // Dll version is 10.0.0.3645
      *((char*)0x08c48b0f)=0xeb; // Jump always, ignoring IsRectEmpty result
   } else {
      fprintf(stderr, "Unsupported WMVA version\n");
      return 0;
   }
}

I modified it to see what PE_FindExportedFunction() really returns
from the DLL "wmvadvd.dll" and it is 0x292c7812; so I've modified
it to make the if-test happy and set *((char*)0x292c780f)=0xeb; (without
really knowing what all this means :-))

Now the mplayer is more happy and says:

	...
ASF file format detected.
VIDEO:  [WMVA]  256x180  24bpp  1000.000 fps    0.0 kbps ( 0.0 kbyte/s)
==========================================================================
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
AUDIO: 11025 Hz, 1 ch, s16le, 8.0 kbit/4.55% (ratio: 1003->22050)
Selected audio codec: [ffwmav2] afm: ffmpeg (DivX audio v2 (FFmpeg))
==========================================================================
==========================================================================
Opening video decoder: [dmo] DMO video codecs
DMO dll supports VO Optimizations 0 1
DMO dll might use previous sample when requested
GetOutput r=0x0   size:138240  align:1
StreamCount r=0x0  1  1
Decoder supports the following formats: YV12 YUY2 UYVY YVYU RGB8 RGB555 RGB565 RGB24 RGB32 
Decoder is capable of YUV output (flags 0x1b)
VDec: vo config request - 256 x 180 (preferred colorspace: Packed YUY2)
VDec: using Planar YV12 as output csp (no 0)
Movie-Aspect is undefined - no prescaling applied.
VO: [xv] 256x180 => 256x180 Planar YV12 
Selected video codec: [wmvadmo] vfm: dmo (Windows Media Video Adv DMO)
==========================================================================
AO: [oss] 11025Hz 1ch s16le (2 bytes per sample)
Starting playback...
	...

the mplayer window pops up but is solid black, of course why there is
perhaps more to change than only the hack above; but it seems that
there is somehow a miss-match between the code and the DLL, isn't it?

	matthias
-- 
Matthias Apitz
Manager Technical Support - OCLC PICA GmbH
Gruenwalder Weg 28g - 82041 Oberhaching - Germany
t +49-89-61308 351 - f +49-89-61308 399 - m +49-170-4527211
e <m.apitz at oclcpica.org> - w http://www.oclcpica.org/ http://guru.UnixLand.de/




More information about the MPlayer-users mailing list