[MPlayer-dev-eng] [PATCH] Supporting DMO decoder from WMP11, multithreaded WMV3/VC1 decoding

Zhou Zongyi zhouzongyi at pset.suntec.net
Mon Jan 12 06:25:44 CET 2009


Hi,

> This would disable the only use of the out_fmt function parameter. Is
> that parameter useless?
>
> Also after this change 4 lines of code would be triply disabled: the
> code is between comment markers, which are inside "if (0)", which is
> inside "#if 0". Maybe that code could be either deleted or the nesting
> reduced a bit?

Well, I find that my patch breaks audio DMO decoders.

The following code causes problem
 hr = This->m_pMedia->vt->SetOutputType(This->m_pMedia, 0, out_fmt, 0);
 if (hr)
 {
     em = "output format no accepted";
     break;
 }

MPlayer's Video and audio DMO decoder use different ways to set output type. The Video decoder negotiates and sets output type through SetOutputType after call to DMO_FilterCreate, but the Audio decoder sets output format in out_fmt->subtype before call to DMO_FilterCreate. Before the video decoder calls DMO_FilterCreate, it always sets out_fmt->subtype to MEDIASUBTYPE_RGB24 and unfortunately wmvdecod.dll does not accept RGB24 as output format.

Any better ideas?

Zhou Zongyi


More information about the MPlayer-dev-eng mailing list