[MPlayer-dev-eng] [PATCH] Wrong typecast in loader/dshow/output.c
Roberto Togni
rxt at rtogni.it
Sat Feb 10 16:00:53 CET 2007
On Sun, 28 Jan 2007 02:03:10 +0600
"Vladimir Voroshilov" <voroshil at gmail.com> wrote:
> COutputMemPin_Queryinterface belongs to COutputMemPin, but casts This
> parameter as COutputPin. This does not affect until DirectShow call
> QueryInterface to retrive IMemInputPin from COutputMemPin. For
> example:
>
> Example1:
> pPin->vt->QueryInterface(pPin,&IID_IMemInputPin,&pMemPin1); // FINE
> pPin->vt->QueryInterface(pPin,&IID_IMemInputPin,&pMemPin2); // FINE
>
> Example2:
> pPin->vt->QueryInterface(pPin,&IID_IMemInputPin,&pMemPin1); // FINE
> pMemPin1->vt->QueryInterface(pMemPin1,&IID_IMemInputPin,&pMemPin2);
> //Should crash
>
> Seem like DirectShow binary codecs usually does not query IMemInputPin
> interface from IMemInputPin and thus all works fine.
>
> Attached patch fixes this bug.
> I have tested it under Linux with divxds dshow codec and all works fine.
>
> Opinions?
Untested, but looks ok.
Do you have some codec that requires this function, or are you fixing
it just because you noticed the bug while looking at the code?
Ciao,
Roberto
More information about the MPlayer-dev-eng
mailing list