[MPlayer-dev-eng] [PATCH] Supporting DMO decoder from WMP11, multithreaded WMV3/VC1 decoding
Zhou Zongyi
zhouzongyi at pset.suntec.net
Mon Jan 12 02:45:35 CET 2009
Hi all,
Currently with ffmpeg's single-threaded wmv3/vc1 decoder MPlayer cannot smoothly play 20Mbps+ VC1 from HDDVD/Bluray. This patch allow mplayer to use WMP11's multi-threaded DMO decoder for WMV1/WMV2/WMV3/VC1. One needs to install WMP11 or just copy wmvdecod.dll to your C:\windows\system32 or codec path.
Tested under WinXP SP3. It works fine.
Part1: Disable debug codes from loader/dmo/dmo.c. They do nothing but break initialization of DMO filters.
Index: loader/dmo/dmo.c
===================================================================
--- loader/dmo/dmo.c (revision 28288)
+++ loader/dmo/dmo.c (working copy)
@@ -112,6 +112,7 @@
break;
}
+#if 0
if (0) {
DMO_MEDIA_TYPE dmo;
//VIDEOINFOHEADER* vi;
@@ -154,6 +155,7 @@
hr = This->m_pMedia->vt->GetStreamCount(This->m_pMedia,
Debug printf("StreamCount r=0x%lx %ld %ld\n", hr, inputs, outputs);
+#endif
break;
}
if (em)
Part2: Add codec information to etc/codec.conf (maybe more FOURCCs supported?)
Index: etc/codecs.conf
===================================================================
--- etc/codecs.conf (revision 28288)
+++ etc/codecs.conf (working copy)
@@ -960,6 +960,19 @@
out YUY2 yuvhack
out BGR32,BGR24,BGR15
+videocodec wmv11dmo
+ info "WMVideo Decoder DMO from WMP11"
+ status working
+ fourcc WMV1
+ fourcc WMV2
+ fourcc WMV3
+ fourcc WVC1
+ driver dmo
+ dll "wmvdecod.dll"
+ guid 0x82d353df, 0x90bd, 0x4382, 0x8b, 0xc2, 0x3f, 0x61, 0x92, 0xb7, 0x6e, 0x34
+ out YV12
+ out YUY2,UYVY
+
videocodec wmv9dmo
info "Windows Media Video 9 DMO"
status working
Zhou Zongyi
More information about the MPlayer-dev-eng
mailing list