Module: wine Branch: master Commit: c56dc3b71ea7d864e46e3861b8d5b0b45f6795f6 URL: http://source.winehq.org/git/wine.git/?a=commit;h=c56dc3b71ea7d864e46e3861b8...
Author: Paul Chitescu paulc@voip.null.ro Date: Tue Feb 16 18:23:01 2010 +0200
qedit: In output pin's IPin_Connect call ReceiveConnection on the receiver pin to properly negotiate media type.
---
dlls/qedit/samplegrabber.c | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/dlls/qedit/samplegrabber.c b/dlls/qedit/samplegrabber.c index b6082f1..4538004 100644 --- a/dlls/qedit/samplegrabber.c +++ b/dlls/qedit/samplegrabber.c @@ -988,6 +988,7 @@ static HRESULT WINAPI SampleGrabber_Out_IPin_Connect(IPin *iface, IPin *receiver, const AM_MEDIA_TYPE *type) { SG_Pin *This = (SG_Pin *)iface; + HRESULT hr; TRACE("(%p)->(%p, %p)\n", This, receiver, type); if (!receiver) return E_POINTER; @@ -1011,6 +1012,11 @@ SampleGrabber_Out_IPin_Connect(IPin *iface, IPin *receiver, const AM_MEDIA_TYPE !IsEqualGUID(&This->sg->mtype.formattype,&type->formattype)) return VFW_E_TYPE_NOT_ACCEPTED; } + else + type = &This->sg->mtype; + hr = IPin_ReceiveConnection(receiver,(IPin*)&This->lpVtbl,type); + if (FAILED(hr)) + return hr; This->pair = receiver; if (This->sg->memOutput) { IMemInputPin_Release(This->sg->memOutput);