static HRESULT WINAPI TransformFilter_InputPin_ReceiveConnection(IPin * iface, IPin * pReceivePin, const AM_MEDIA_TYPE * pmt) { BaseInputPin* This = impl_BaseInputPin_from_IPin(iface); TransformFilter* pTransform; HRESULT hr = S_OK; TRACE("(%p)->(%p, %p)\n", iface, pReceivePin, pmt); pTransform = impl_from_IBaseFilter(This->pin.pinInfo.pFilter); if (pTransform->pFuncsTable->pfnSetMediaType) hr = pTransform->pFuncsTable->pfnSetMediaType(pTransform, PINDIR_INPUT, pmt); if (SUCCEEDED(hr) && pTransform->pFuncsTable->pfnCompleteConnect) hr = pTransform->pFuncsTable->pfnCompleteConnect(pTransform, PINDIR_INPUT, pReceivePin); if (SUCCEEDED(hr)) { hr = BaseInputPinImpl_ReceiveConnection(iface, pReceivePin, pmt); if (FAILED(hr) && pTransform->pFuncsTable->pfnBreakConnect) pTransform->pFuncsTable->pfnBreakConnect(pTransform, PINDIR_INPUT); } return hr; }
static HRESULT WINAPI AVICompressorIn_ReceiveConnection(IPin *iface, IPin *pConnector, const AM_MEDIA_TYPE *pmt) { AVICompressor *This = impl_from_IPin(iface); HRESULT hres; TRACE("(%p)->(%p AM_MEDIA_TYPE(%p))\n", This, pConnector, pmt); dump_AM_MEDIA_TYPE(pmt); hres = BaseInputPinImpl_ReceiveConnection(iface, pConnector, pmt); if(FAILED(hres)) return hres; hres = fill_format_info(This, (VIDEOINFOHEADER*)pmt->pbFormat); if(FAILED(hres)) BasePinImpl_Disconnect(iface); return hres; }
static HRESULT WINAPI BaseRenderer_InputPin_ReceiveConnection(IPin * iface, IPin * pReceivePin, const AM_MEDIA_TYPE * pmt) { BaseInputPin *This = impl_BaseInputPin_from_IPin(iface); BaseRenderer *renderer = impl_from_IBaseFilter(This->pin.pinInfo.pFilter); HRESULT hr = S_OK; TRACE("(%p/%p)->(%p, %p)\n", This, renderer, pReceivePin, pmt); EnterCriticalSection(This->pin.pCritSec); hr = BaseInputPinImpl_ReceiveConnection(iface, pReceivePin, pmt); if (SUCCEEDED(hr)) { if (renderer->pFuncsTable->pfnCompleteConnect) hr = renderer->pFuncsTable->pfnCompleteConnect(renderer, pReceivePin); } LeaveCriticalSection(This->pin.pCritSec); return hr; }