return S_OK;
}
-static const BasePinFuncTable input_BaseFuncTable = {
- BasePinImpl_CheckMediaType,
- NULL,
- BasePinImp_GetMediaTypeVersion,
- BasePinImp_GetMediaType
-};
-
static const BaseInputPinFuncTable input_BaseInputFuncTable = {
+ {
+ BasePinImpl_CheckMediaType,
+ NULL,
+ BasePinImp_GetMediaTypeVersion,
+ BasePinImp_GetMediaType
+ },
NULL
};
static ULONG WINAPI MediaStreamFilterImpl_Release(IMediaStreamFilter *iface)
{
IMediaStreamFilterImpl *This = impl_from_IMediaStreamFilter(iface);
- ULONG ref = BaseFilterImpl_Release(&This->filter.IBaseFilter_iface);
+ ULONG ref = InterlockedDecrement(&This->filter.refCount);
TRACE("(%p)->(): new ref = %u\n", iface, ref);
IMediaStream_Release(This->streams[i]);
IPin_Release(This->pins[i]);
}
+ BaseFilter_Destroy(&This->filter);
HeapFree(GetProcessHeap(), 0, This);
}
/* Pin name is "I{guid MSPID_PrimaryVideo or MSPID_PrimaryAudio}" */
info.achName[0] = 'I';
StringFromGUID2(&purpose_id, info.achName + 1, 40);
- hr = BaseInputPin_Construct(&MediaStreamFilter_InputPin_Vtbl, &info, &input_BaseFuncTable, &input_BaseInputFuncTable, &This->filter.csFilter, NULL, &This->pins[This->nb_streams]);
+ hr = BaseInputPin_Construct(&MediaStreamFilter_InputPin_Vtbl, sizeof(BaseInputPin), &info,
+ &input_BaseInputFuncTable, &This->filter.csFilter, NULL, &This->pins[This->nb_streams]);
if (FAILED(hr))
return hr;