Signed-off-by: Zebediah Figura z.figura12@gmail.com --- Not compile-tested.
dlls/wineqtdecoder/qtsplitter.c | 60 +++++++++++++-------------------- 1 file changed, 23 insertions(+), 37 deletions(-)
diff --git a/dlls/wineqtdecoder/qtsplitter.c b/dlls/wineqtdecoder/qtsplitter.c index 8a88729239c..8298406c2ed 100644 --- a/dlls/wineqtdecoder/qtsplitter.c +++ b/dlls/wineqtdecoder/qtsplitter.c @@ -779,23 +779,22 @@ static const IBaseFilterVtbl QT_Vtbl = { BaseFilterImpl_QueryVendorInfo };
-static HRESULT break_source_connection(BaseOutputPin *pin) +static void free_source_pin(QTOutPin *pin) { - HRESULT hr; - - EnterCriticalSection(pin->pin.pCritSec); - if (!pin->pin.pConnectedTo || !pin->pMemInputPin) - hr = VFW_E_NOT_CONNECTED; - else + EnterCriticalSection(pin->pin.pin.pCritSec); + if (pin->pin.pin.pConnectedTo) { - hr = IMemAllocator_Decommit(pin->pAllocator); - if (SUCCEEDED(hr)) - hr = IPin_Disconnect(pin->pin.pConnectedTo); - IPin_Disconnect(&pin->pin.IPin_iface); + if (SUCCEEDED(IMemAllocator_Decommit(pin->pin.pAllocator))) + IPin_Disconnect(pin->pin.pin.pConnectedTo); + IPin_Disconnect(&pin->pin.pin.IPin_iface); } - LeaveCriticalSection(pin->pin.pCritSec); + LeaveCriticalSection(pin->pin.pin.pCritSec);
- return hr; + DeleteMediaType(pin->pmt); + FreeMediaType(&pin->pin.pin.mtCurrent); + if (pin->pin.pAllocator) + IMemAllocator_Release(pin->pin.pAllocator); + CoTaskMemFree(pin); }
/* @@ -803,23 +802,16 @@ static HRESULT break_source_connection(BaseOutputPin *pin) */ static HRESULT QT_RemoveOutputPins(QTSplitter *This) { - HRESULT hr; - TRACE("(%p)\n", This); - if (This->pVideo_Pin) { OutputQueue_Destroy(This->pVideo_Pin->queue); - hr = break_source_connection(&This->pVideo_Pin->pin); - TRACE("Disconnect: %08x\n", hr); - IPin_Release(&This->pVideo_Pin->pin.pin.IPin_iface); + free_source_pin(This->pVideo_Pin); This->pVideo_Pin = NULL; } if (This->pAudio_Pin) { OutputQueue_Destroy(This->pAudio_Pin->queue); - hr = break_source_connection(&This->pAudio_Pin->pin); - TRACE("Disconnect: %08x\n", hr); - IPin_Release(&This->pAudio_Pin->pin.pin.IPin_iface); + free_source_pin(This->pAudio_Pin); This->pAudio_Pin = NULL; }
@@ -1340,22 +1332,16 @@ static HRESULT WINAPI QTOutPin_QueryInterface(IPin *iface, REFIID riid, void **p return E_NOINTERFACE; }
-static ULONG WINAPI QTOutPin_Release(IPin *iface) +static ULONG WINAPI QTOutPin_AddRef(IPin *iface) { - QTOutPin *This = impl_QTOutPin_from_IPin(iface); - ULONG refCount = InterlockedDecrement(&This->pin.pin.refCount); - TRACE("(%p)->() Release from %d\n", iface, refCount + 1); + QTOutPin *pin = impl_QTOutPin_from_IPin(iface); + return IBaseFilter_AddRef(pin->pin.pin.pinInfo.pFilter); +}
- if (!refCount) - { - DeleteMediaType(This->pmt); - FreeMediaType(&This->pin.pin.mtCurrent); - if (This->pin.pAllocator) - IMemAllocator_Release(This->pin.pAllocator); - CoTaskMemFree(This); - return 0; - } - return refCount; +static ULONG WINAPI QTOutPin_Release(IPin *iface) +{ + QTOutPin *pin = impl_QTOutPin_from_IPin(iface); + return IBaseFilter_Release(pin->pin.pin.pinInfo.pFilter); }
static HRESULT WINAPI QTOutPin_CheckMediaType(BasePin *base, const AM_MEDIA_TYPE *amt) @@ -1406,7 +1392,7 @@ static HRESULT WINAPI QTOutPin_DecideAllocator(BaseOutputPin *iface, IMemInputPi
static const IPinVtbl QT_OutputPin_Vtbl = { QTOutPin_QueryInterface, - BasePinImpl_AddRef, + QTOutPin_AddRef, QTOutPin_Release, BaseOutputPinImpl_Connect, BaseOutputPinImpl_ReceiveConnection,
Signed-off-by: Zebediah Figura z.figura12@gmail.com --- dlls/quartz/pin.c | 1 - dlls/strmbase/pin.c | 41 +++++++-------------------------- dlls/winegstreamer/gstdemux.c | 1 - dlls/wineqtdecoder/qtsplitter.c | 1 - include/wine/strmbase.h | 6 ++--- 5 files changed, 10 insertions(+), 40 deletions(-)
diff --git a/dlls/quartz/pin.c b/dlls/quartz/pin.c index 5c1fcdcb6f3..e99a493d0b5 100644 --- a/dlls/quartz/pin.c +++ b/dlls/quartz/pin.c @@ -174,7 +174,6 @@ static HRESULT PullPin_Init(const IPinVtbl *PullPin_Vtbl, const PIN_INFO *info, { /* Common attributes */ pPinImpl->pin.IPin_iface.lpVtbl = PullPin_Vtbl; - pPinImpl->pin.refCount = 1; pPinImpl->pin.pConnectedTo = NULL; pPinImpl->pin.pCritSec = pCritSec; /* avoid copying uninitialized data */ diff --git a/dlls/strmbase/pin.c b/dlls/strmbase/pin.c index f57875133a0..ebc7a1c16b0 100644 --- a/dlls/strmbase/pin.c +++ b/dlls/strmbase/pin.c @@ -173,14 +173,16 @@ LONG WINAPI BasePinImpl_GetMediaTypeVersion(BasePin *iface) return 1; }
-ULONG WINAPI BasePinImpl_AddRef(IPin * iface) +ULONG WINAPI BasePinImpl_AddRef(IPin *iface) { - BasePin *This = impl_from_IPin(iface); - ULONG refCount = InterlockedIncrement(&This->refCount); - - TRACE("(%p)->() AddRef from %d\n", iface, refCount - 1); + BasePin *pin = impl_from_IPin(iface); + return IBaseFilter_AddRef(pin->pinInfo.pFilter); +}
- return refCount; +ULONG WINAPI BasePinImpl_Release(IPin *iface) +{ + BasePin *pin = impl_from_IPin(iface); + return IBaseFilter_Release(pin->pinInfo.pFilter); }
HRESULT WINAPI BasePinImpl_Disconnect(IPin * iface) @@ -379,19 +381,6 @@ HRESULT WINAPI BaseOutputPinImpl_QueryInterface(IPin * iface, REFIID riid, LPVOI return E_NOINTERFACE; }
-ULONG WINAPI BaseOutputPinImpl_Release(IPin * iface) -{ - BaseOutputPin *This = impl_BaseOutputPin_from_IPin(iface); - ULONG refCount = InterlockedDecrement(&This->pin.refCount); - - TRACE("(%p)->() Release from %d\n", iface, refCount + 1); - - if (!refCount) - BaseOutputPin_Destroy(This); - - return refCount; -} - HRESULT WINAPI BaseOutputPinImpl_Connect(IPin * iface, IPin * pReceivePin, const AM_MEDIA_TYPE * pmt) { HRESULT hr; @@ -733,7 +722,6 @@ static void strmbase_pin_init(BasePin *pin, const IPinVtbl *vtbl, { memset(pin, 0, sizeof(*pin)); pin->IPin_iface.lpVtbl = vtbl; - pin->refCount = 1; pin->pCritSec = cs; pin->dRate = 1.0; Copy_PinInfo(&pin->pinInfo, info); @@ -825,19 +813,6 @@ HRESULT WINAPI BaseInputPinImpl_QueryInterface(IPin * iface, REFIID riid, LPVOID return E_NOINTERFACE; }
-ULONG WINAPI BaseInputPinImpl_Release(IPin * iface) -{ - BaseInputPin *This = impl_BaseInputPin_from_IPin(iface); - ULONG refCount = InterlockedDecrement(&This->pin.refCount); - - TRACE("(%p)->() Release from %d\n", iface, refCount + 1); - - if (!refCount) - BaseInputPin_Destroy(This); - - return refCount; -} - HRESULT WINAPI BaseInputPinImpl_Connect(IPin *iface, IPin *pin, const AM_MEDIA_TYPE *pmt) { ERR("(%p)->(%p, %p) outgoing connection on an input pin!\n", iface, pin, pmt); diff --git a/dlls/winegstreamer/gstdemux.c b/dlls/winegstreamer/gstdemux.c index 38d1b9ec138..67cfbc02c2c 100644 --- a/dlls/winegstreamer/gstdemux.c +++ b/dlls/winegstreamer/gstdemux.c @@ -1282,7 +1282,6 @@ IUnknown * CALLBACK Gstreamer_Splitter_create(IUnknown *outer, HRESULT *phr) piInput->pFilter = &This->filter.IBaseFilter_iface; lstrcpynW(piInput->achName, wcsInputPinName, ARRAY_SIZE(piInput->achName)); This->pInputPin.pin.IPin_iface.lpVtbl = &GST_InputPin_Vtbl; - This->pInputPin.pin.refCount = 1; This->pInputPin.pin.pConnectedTo = NULL; This->pInputPin.pin.pCritSec = &This->filter.csFilter; ZeroMemory(&This->pInputPin.pin.mtCurrent, sizeof(AM_MEDIA_TYPE)); diff --git a/dlls/wineqtdecoder/qtsplitter.c b/dlls/wineqtdecoder/qtsplitter.c index 8298406c2ed..8b271d2c8c7 100644 --- a/dlls/wineqtdecoder/qtsplitter.c +++ b/dlls/wineqtdecoder/qtsplitter.c @@ -318,7 +318,6 @@ IUnknown * CALLBACK QTSplitter_create(IUnknown *outer, HRESULT *phr) piInput->pFilter = &This->filter.IBaseFilter_iface; lstrcpynW(piInput->achName, wcsInputPinName, ARRAY_SIZE(piInput->achName)); This->pInputPin.pin.IPin_iface.lpVtbl = &QT_InputPin_Vtbl; - This->pInputPin.pin.refCount = 1; This->pInputPin.pin.pConnectedTo = NULL; This->pInputPin.pin.pCritSec = &This->filter.csFilter;
diff --git a/include/wine/strmbase.h b/include/wine/strmbase.h index 1a8b8aa43e0..c19bc6ca06c 100644 --- a/include/wine/strmbase.h +++ b/include/wine/strmbase.h @@ -31,7 +31,6 @@ void WINAPI DeleteMediaType(AM_MEDIA_TYPE * pMediaType); typedef struct BasePin { IPin IPin_iface; - LONG refCount; LPCRITICAL_SECTION pCritSec; PIN_INFO pinInfo; IPin * pConnectedTo; @@ -103,7 +102,8 @@ typedef struct BaseInputPinFuncTable { /* Base Pin */ HRESULT WINAPI BasePinImpl_GetMediaType(BasePin *This, int iPosition, AM_MEDIA_TYPE *pmt); LONG WINAPI BasePinImpl_GetMediaTypeVersion(BasePin *This); -ULONG WINAPI BasePinImpl_AddRef(IPin * iface); +ULONG WINAPI BasePinImpl_AddRef(IPin *iface); +ULONG WINAPI BasePinImpl_Release(IPin *iface); HRESULT WINAPI BasePinImpl_Disconnect(IPin * iface); HRESULT WINAPI BasePinImpl_ConnectedTo(IPin * iface, IPin ** ppPin); HRESULT WINAPI BasePinImpl_ConnectionMediaType(IPin * iface, AM_MEDIA_TYPE * pmt); @@ -117,7 +117,6 @@ HRESULT WINAPI BasePinImpl_NewSegment(IPin * iface, REFERENCE_TIME tStart, REFER
/* Base Output Pin */ HRESULT WINAPI BaseOutputPinImpl_QueryInterface(IPin * iface, REFIID riid, LPVOID * ppv); -ULONG WINAPI BaseOutputPinImpl_Release(IPin * iface); HRESULT WINAPI BaseOutputPinImpl_Connect(IPin * iface, IPin * pReceivePin, const AM_MEDIA_TYPE * pmt); HRESULT WINAPI BaseOutputPinImpl_ReceiveConnection(IPin * iface, IPin * pReceivePin, const AM_MEDIA_TYPE * pmt); HRESULT WINAPI BaseOutputPinImpl_Disconnect(IPin * iface); @@ -141,7 +140,6 @@ void strmbase_source_init(BaseOutputPin *pin, const IPinVtbl *vtbl, const PIN_IN
/* Base Input Pin */ HRESULT WINAPI BaseInputPinImpl_QueryInterface(IPin * iface, REFIID riid, LPVOID * ppv); -ULONG WINAPI BaseInputPinImpl_Release(IPin * iface); HRESULT WINAPI BaseInputPinImpl_Connect(IPin * iface, IPin * pConnector, const AM_MEDIA_TYPE * pmt); HRESULT WINAPI BaseInputPinImpl_ReceiveConnection(IPin * iface, IPin * pReceivePin, const AM_MEDIA_TYPE * pmt); HRESULT WINAPI BaseInputPinImpl_QueryAccept(IPin * iface, const AM_MEDIA_TYPE * pmt);
Signed-off-by: Zebediah Figura z.figura12@gmail.com --- dlls/strmbase/renderer.c | 16 ++-------------- dlls/strmbase/transform.c | 32 ++++---------------------------- 2 files changed, 6 insertions(+), 42 deletions(-)
diff --git a/dlls/strmbase/renderer.c b/dlls/strmbase/renderer.c index 36e934f2232..b216166d716 100644 --- a/dlls/strmbase/renderer.c +++ b/dlls/strmbase/renderer.c @@ -45,18 +45,6 @@ static const IQualityControlVtbl Renderer_QualityControl_Vtbl = { QualityControlImpl_SetSink };
-static ULONG WINAPI BaseRenderer_InputPin_AddRef(IPin *iface) -{ - BaseInputPin *pin = impl_BaseInputPin_from_IPin(iface); - return IBaseFilter_AddRef(pin->pin.pinInfo.pFilter); -} - -static ULONG WINAPI BaseRenderer_InputPin_Release(IPin *iface) -{ - BaseInputPin *pin = impl_BaseInputPin_from_IPin(iface); - return IBaseFilter_Release(pin->pin.pinInfo.pFilter); -} - static HRESULT WINAPI BaseRenderer_InputPin_ReceiveConnection(IPin * iface, IPin * pReceivePin, const AM_MEDIA_TYPE * pmt) { BaseInputPin *This = impl_BaseInputPin_from_IPin(iface); @@ -176,8 +164,8 @@ static HRESULT WINAPI BaseRenderer_InputPin_EndFlush(IPin * iface) static const IPinVtbl BaseRenderer_InputPin_Vtbl = { BaseInputPinImpl_QueryInterface, - BaseRenderer_InputPin_AddRef, - BaseRenderer_InputPin_Release, + BasePinImpl_AddRef, + BasePinImpl_Release, BaseInputPinImpl_Connect, BaseRenderer_InputPin_ReceiveConnection, BaseRenderer_InputPin_Disconnect, diff --git a/dlls/strmbase/transform.c b/dlls/strmbase/transform.c index 4c32d673253..c4a07891b4c 100644 --- a/dlls/strmbase/transform.c +++ b/dlls/strmbase/transform.c @@ -381,18 +381,6 @@ HRESULT WINAPI TransformFilterImpl_Notify(TransformFilter *iface, IBaseFilter *s return QualityControlImpl_Notify((IQualityControl*)iface->qcimpl, sender, qm); }
-static ULONG WINAPI TransformFilter_InputPin_AddRef(IPin *iface) -{ - BaseInputPin *pin = impl_BaseInputPin_from_IPin(iface); - return IBaseFilter_AddRef(pin->pin.pinInfo.pFilter); -} - -static ULONG WINAPI TransformFilter_InputPin_Release(IPin *iface) -{ - BaseInputPin *pin = impl_BaseInputPin_from_IPin(iface); - return IBaseFilter_Release(pin->pin.pinInfo.pFilter); -} - static HRESULT WINAPI TransformFilter_InputPin_EndOfStream(IPin * iface) { BaseInputPin* This = impl_BaseInputPin_from_IPin(iface); @@ -516,8 +504,8 @@ static HRESULT WINAPI TransformFilter_InputPin_NewSegment(IPin * iface, REFERENC static const IPinVtbl TransformFilter_InputPin_Vtbl = { BaseInputPinImpl_QueryInterface, - TransformFilter_InputPin_AddRef, - TransformFilter_InputPin_Release, + BasePinImpl_AddRef, + BasePinImpl_Release, BaseInputPinImpl_Connect, TransformFilter_InputPin_ReceiveConnection, TransformFilter_InputPin_Disconnect, @@ -555,23 +543,11 @@ static HRESULT WINAPI transform_source_QueryInterface(IPin *iface, REFIID iid, v return S_OK; }
-static ULONG WINAPI transform_source_AddRef(IPin *iface) -{ - BaseOutputPin *pin = impl_BaseOutputPin_from_IPin(iface); - return IBaseFilter_AddRef(pin->pin.pinInfo.pFilter); -} - -static ULONG WINAPI transform_source_Release(IPin *iface) -{ - BaseOutputPin *pin = impl_BaseOutputPin_from_IPin(iface); - return IBaseFilter_Release(pin->pin.pinInfo.pFilter); -} - static const IPinVtbl TransformFilter_OutputPin_Vtbl = { transform_source_QueryInterface, - transform_source_AddRef, - transform_source_Release, + BasePinImpl_AddRef, + BasePinImpl_Release, BaseOutputPinImpl_Connect, BaseOutputPinImpl_ReceiveConnection, BaseOutputPinImpl_Disconnect,
Signed-off-by: Zebediah Figura z.figura12@gmail.com --- dlls/quartz/filesource.c | 16 ++-------------- dlls/quartz/parser.c | 20 ++++---------------- dlls/quartz/pin.c | 12 ------------ dlls/quartz/pin.h | 2 -- 4 files changed, 6 insertions(+), 44 deletions(-)
diff --git a/dlls/quartz/filesource.c b/dlls/quartz/filesource.c index 25bffe6c36c..afac6f7d319 100644 --- a/dlls/quartz/filesource.c +++ b/dlls/quartz/filesource.c @@ -777,23 +777,11 @@ static HRESULT WINAPI FileAsyncReaderPin_QueryInterface(IPin * iface, REFIID rii return E_NOINTERFACE; }
-static ULONG WINAPI FileAsyncReaderPin_AddRef(IPin *iface) -{ - FileAsyncReader *pin = impl_from_IPin(iface); - return IBaseFilter_AddRef(pin->pin.pin.pinInfo.pFilter); -} - -static ULONG WINAPI FileAsyncReaderPin_Release(IPin * iface) -{ - FileAsyncReader *pin = impl_from_IPin(iface); - return IBaseFilter_Release(pin->pin.pin.pinInfo.pFilter); -} - static const IPinVtbl FileAsyncReaderPin_Vtbl = { FileAsyncReaderPin_QueryInterface, - FileAsyncReaderPin_AddRef, - FileAsyncReaderPin_Release, + BasePinImpl_AddRef, + BasePinImpl_Release, BaseOutputPinImpl_Connect, BaseOutputPinImpl_ReceiveConnection, BasePinImpl_Disconnect, diff --git a/dlls/quartz/parser.c b/dlls/quartz/parser.c index 5743a53fd2e..652d4109f41 100644 --- a/dlls/quartz/parser.c +++ b/dlls/quartz/parser.c @@ -564,18 +564,6 @@ static HRESULT WINAPI Parser_OutputPin_QueryInterface(IPin * iface, REFIID riid, return E_NOINTERFACE; }
-static ULONG WINAPI Parser_OutputPin_AddRef(IPin *iface) -{ - Parser_OutputPin *pin = unsafe_impl_Parser_OutputPin_from_IPin(iface); - return IBaseFilter_AddRef(pin->pin.pin.pinInfo.pFilter); -} - -static ULONG WINAPI Parser_OutputPin_Release(IPin * iface) -{ - Parser_OutputPin *pin = unsafe_impl_Parser_OutputPin_from_IPin(iface); - return IBaseFilter_Release(pin->pin.pin.pinInfo.pFilter); -} - static HRESULT WINAPI Parser_OutputPin_Connect(IPin * iface, IPin * pReceivePin, const AM_MEDIA_TYPE * pmt) { Parser_OutputPin *This = unsafe_impl_Parser_OutputPin_from_IPin(iface); @@ -601,8 +589,8 @@ static HRESULT WINAPI Parser_OutputPin_CheckMediaType(BasePin *pin, const AM_MED static const IPinVtbl Parser_OutputPin_Vtbl = { Parser_OutputPin_QueryInterface, - Parser_OutputPin_AddRef, - Parser_OutputPin_Release, + BasePinImpl_AddRef, + BasePinImpl_Release, Parser_OutputPin_Connect, BaseOutputPinImpl_ReceiveConnection, BaseOutputPinImpl_Disconnect, @@ -714,8 +702,8 @@ static HRESULT WINAPI Parser_PullPin_EnumMediaTypes(IPin *iface, IEnumMediaTypes static const IPinVtbl Parser_InputPin_Vtbl = { Parser_PullPin_QueryInterface, - PullPin_AddRef, - PullPin_Release, + BasePinImpl_AddRef, + BasePinImpl_Release, BaseInputPinImpl_Connect, Parser_PullPin_ReceiveConnection, Parser_PullPin_Disconnect, diff --git a/dlls/quartz/pin.c b/dlls/quartz/pin.c index e99a493d0b5..03ca4e6edea 100644 --- a/dlls/quartz/pin.c +++ b/dlls/quartz/pin.c @@ -381,18 +381,6 @@ void PullPin_destroy(PullPin *pin) CoTaskMemFree(pin); }
-ULONG WINAPI PullPin_AddRef(IPin *iface) -{ - PullPin *pin = impl_PullPin_from_IPin(iface); - return IBaseFilter_AddRef(pin->pin.pinInfo.pFilter); -} - -ULONG WINAPI PullPin_Release(IPin *iface) -{ - PullPin *pin = impl_PullPin_from_IPin(iface); - return IBaseFilter_Release(pin->pin.pinInfo.pFilter); -} - static void PullPin_Flush(PullPin *This) { IMediaSample *pSample; diff --git a/dlls/quartz/pin.h b/dlls/quartz/pin.h index b65d2239fb8..efed724c394 100644 --- a/dlls/quartz/pin.h +++ b/dlls/quartz/pin.h @@ -115,8 +115,6 @@ void PullPin_destroy(PullPin *pin) DECLSPEC_HIDDEN; HRESULT WINAPI PullPin_ReceiveConnection(IPin * iface, IPin * pReceivePin, const AM_MEDIA_TYPE * pmt); HRESULT WINAPI PullPin_Disconnect(IPin * iface); HRESULT WINAPI PullPin_QueryInterface(IPin * iface, REFIID riid, LPVOID * ppv); -ULONG WINAPI PullPin_AddRef(IPin *iface) DECLSPEC_HIDDEN; -ULONG WINAPI PullPin_Release(IPin *iface) DECLSPEC_HIDDEN; HRESULT WINAPI PullPin_EndOfStream(IPin * iface); HRESULT WINAPI PullPin_QueryAccept(IPin * iface, const AM_MEDIA_TYPE * pmt); HRESULT WINAPI PullPin_BeginFlush(IPin * iface);
Signed-off-by: Zebediah Figura z.figura12@gmail.com --- dlls/qcap/avico.c | 32 ++++--------------------- dlls/qcap/avimux.c | 32 ++++--------------------- dlls/qcap/smartteefilter.c | 49 +++++--------------------------------- dlls/qcap/vfwcapture.c | 17 ++----------- 4 files changed, 16 insertions(+), 114 deletions(-)
diff --git a/dlls/qcap/avico.c b/dlls/qcap/avico.c index 399fe0979d9..bcfdc6b0876 100644 --- a/dlls/qcap/avico.c +++ b/dlls/qcap/avico.c @@ -323,18 +323,6 @@ static HRESULT WINAPI AVICompressorIn_QueryInterface(IPin *iface, REFIID riid, v return BaseInputPinImpl_QueryInterface(iface, riid, ppv); }
-static ULONG WINAPI AVICompressorIn_AddRef(IPin *iface) -{ - AVICompressor *This = impl_from_IPin(iface); - return IBaseFilter_AddRef(&This->filter.IBaseFilter_iface); -} - -static ULONG WINAPI AVICompressorIn_Release(IPin *iface) -{ - AVICompressor *This = impl_from_IPin(iface); - return IBaseFilter_Release(&This->filter.IBaseFilter_iface); -} - static HRESULT WINAPI AVICompressorIn_ReceiveConnection(IPin *iface, IPin *pConnector, const AM_MEDIA_TYPE *pmt) { @@ -372,8 +360,8 @@ static HRESULT WINAPI AVICompressorIn_Disconnect(IPin *iface)
static const IPinVtbl AVICompressorInputPinVtbl = { AVICompressorIn_QueryInterface, - AVICompressorIn_AddRef, - AVICompressorIn_Release, + BasePinImpl_AddRef, + BasePinImpl_Release, BaseInputPinImpl_Connect, AVICompressorIn_ReceiveConnection, AVICompressorIn_Disconnect, @@ -524,22 +512,10 @@ static HRESULT WINAPI AVICompressorOut_QueryInterface(IPin *iface, REFIID riid, return BaseInputPinImpl_QueryInterface(iface, riid, ppv); }
-static ULONG WINAPI AVICompressorOut_AddRef(IPin *iface) -{ - AVICompressor *This = impl_from_IPin(iface); - return IBaseFilter_AddRef(&This->filter.IBaseFilter_iface); -} - -static ULONG WINAPI AVICompressorOut_Release(IPin *iface) -{ - AVICompressor *This = impl_from_IPin(iface); - return IBaseFilter_Release(&This->filter.IBaseFilter_iface); -} - static const IPinVtbl AVICompressorOutputPinVtbl = { AVICompressorOut_QueryInterface, - AVICompressorOut_AddRef, - AVICompressorOut_Release, + BasePinImpl_AddRef, + BasePinImpl_Release, BaseOutputPinImpl_Connect, BaseOutputPinImpl_ReceiveConnection, BaseOutputPinImpl_Disconnect, diff --git a/dlls/qcap/avimux.c b/dlls/qcap/avimux.c index 784d93a57c4..d2475eedb02 100644 --- a/dlls/qcap/avimux.c +++ b/dlls/qcap/avimux.c @@ -1255,18 +1255,6 @@ static HRESULT WINAPI AviMuxOut_QueryInterface(IPin *iface, REFIID riid, void ** return S_OK; }
-static ULONG WINAPI AviMuxOut_AddRef(IPin *iface) -{ - AviMux *This = impl_from_out_IPin(iface); - return IBaseFilter_AddRef(&This->filter.IBaseFilter_iface); -} - -static ULONG WINAPI AviMuxOut_Release(IPin *iface) -{ - AviMux *This = impl_from_out_IPin(iface); - return IBaseFilter_Release(&This->filter.IBaseFilter_iface); -} - static HRESULT WINAPI AviMuxOut_Connect(IPin *iface, IPin *pReceivePin, const AM_MEDIA_TYPE *pmt) { @@ -1408,8 +1396,8 @@ static HRESULT WINAPI AviMuxOut_NewSegment(IPin *iface, REFERENCE_TIME tStart,
static const IPinVtbl AviMuxOut_PinVtbl = { AviMuxOut_QueryInterface, - AviMuxOut_AddRef, - AviMuxOut_Release, + BasePinImpl_AddRef, + BasePinImpl_Release, AviMuxOut_Connect, AviMuxOut_ReceiveConnection, AviMuxOut_Disconnect, @@ -1655,18 +1643,6 @@ static HRESULT WINAPI AviMuxIn_QueryInterface(IPin *iface, REFIID riid, void **p return S_OK; }
-static ULONG WINAPI AviMuxIn_AddRef(IPin *iface) -{ - AviMux *This = impl_from_in_IPin(iface); - return IBaseFilter_AddRef(&This->filter.IBaseFilter_iface); -} - -static ULONG WINAPI AviMuxIn_Release(IPin *iface) -{ - AviMux *This = impl_from_in_IPin(iface); - return IBaseFilter_Release(&This->filter.IBaseFilter_iface); -} - static HRESULT WINAPI AviMuxIn_Connect(IPin *iface, IPin *pReceivePin, const AM_MEDIA_TYPE *pmt) { @@ -1876,8 +1852,8 @@ static HRESULT WINAPI AviMuxIn_NewSegment(IPin *iface, REFERENCE_TIME tStart,
static const IPinVtbl AviMuxIn_PinVtbl = { AviMuxIn_QueryInterface, - AviMuxIn_AddRef, - AviMuxIn_Release, + BasePinImpl_AddRef, + BasePinImpl_Release, AviMuxIn_Connect, AviMuxIn_ReceiveConnection, AviMuxIn_Disconnect, diff --git a/dlls/qcap/smartteefilter.c b/dlls/qcap/smartteefilter.c index 51efe17b75b..caaaaab43ba 100644 --- a/dlls/qcap/smartteefilter.c +++ b/dlls/qcap/smartteefilter.c @@ -146,23 +146,10 @@ static const BaseFilterFuncTable SmartTeeFilterFuncs = { .filter_destroy = smart_tee_destroy, };
-static ULONG WINAPI SmartTeeFilterInput_AddRef(IPin *iface) -{ - SmartTeeFilter *This = impl_from_IPin(iface); - return IBaseFilter_AddRef(&This->filter.IBaseFilter_iface); -} - -static ULONG WINAPI SmartTeeFilterInput_Release(IPin *iface) -{ - SmartTeeFilter *This = impl_from_IPin(iface); - return IBaseFilter_Release(&This->filter.IBaseFilter_iface); -} - - static const IPinVtbl SmartTeeFilterInputVtbl = { BaseInputPinImpl_QueryInterface, - SmartTeeFilterInput_AddRef, - SmartTeeFilterInput_Release, + BasePinImpl_AddRef, + BasePinImpl_Release, BaseInputPinImpl_Connect, BaseInputPinImpl_ReceiveConnection, BasePinImpl_Disconnect, @@ -340,18 +327,6 @@ static const BaseInputPinFuncTable SmartTeeFilterInputFuncs = { SmartTeeFilterInput_Receive };
-static ULONG WINAPI SmartTeeFilterCapture_AddRef(IPin *iface) -{ - SmartTeeFilter *This = impl_from_IPin(iface); - return IBaseFilter_AddRef(&This->filter.IBaseFilter_iface); -} - -static ULONG WINAPI SmartTeeFilterCapture_Release(IPin *iface) -{ - SmartTeeFilter *This = impl_from_IPin(iface); - return IBaseFilter_Release(&This->filter.IBaseFilter_iface); -} - static HRESULT WINAPI SmartTeeFilterCapture_EnumMediaTypes(IPin *iface, IEnumMediaTypes **ppEnum) { SmartTeeFilter *This = impl_from_IPin(iface); @@ -368,8 +343,8 @@ static HRESULT WINAPI SmartTeeFilterCapture_EnumMediaTypes(IPin *iface, IEnumMed
static const IPinVtbl SmartTeeFilterCaptureVtbl = { BaseOutputPinImpl_QueryInterface, - SmartTeeFilterCapture_AddRef, - SmartTeeFilterCapture_Release, + BasePinImpl_AddRef, + BasePinImpl_Release, BaseOutputPinImpl_Connect, BaseOutputPinImpl_ReceiveConnection, BaseOutputPinImpl_Disconnect, @@ -423,18 +398,6 @@ static const BaseOutputPinFuncTable SmartTeeFilterCaptureFuncs = { SmartTeeFilterCapture_DecideAllocator, };
-static ULONG WINAPI SmartTeeFilterPreview_AddRef(IPin *iface) -{ - SmartTeeFilter *This = impl_from_IPin(iface); - return IBaseFilter_AddRef(&This->filter.IBaseFilter_iface); -} - -static ULONG WINAPI SmartTeeFilterPreview_Release(IPin *iface) -{ - SmartTeeFilter *This = impl_from_IPin(iface); - return IBaseFilter_Release(&This->filter.IBaseFilter_iface); -} - static HRESULT WINAPI SmartTeeFilterPreview_EnumMediaTypes(IPin *iface, IEnumMediaTypes **ppEnum) { SmartTeeFilter *This = impl_from_IPin(iface); @@ -451,8 +414,8 @@ static HRESULT WINAPI SmartTeeFilterPreview_EnumMediaTypes(IPin *iface, IEnumMed
static const IPinVtbl SmartTeeFilterPreviewVtbl = { BaseOutputPinImpl_QueryInterface, - SmartTeeFilterPreview_AddRef, - SmartTeeFilterPreview_Release, + BasePinImpl_AddRef, + BasePinImpl_Release, BaseOutputPinImpl_Connect, BaseOutputPinImpl_ReceiveConnection, BaseOutputPinImpl_Disconnect, diff --git a/dlls/qcap/vfwcapture.c b/dlls/qcap/vfwcapture.c index 2cb1f7dece5..660f44d4171 100644 --- a/dlls/qcap/vfwcapture.c +++ b/dlls/qcap/vfwcapture.c @@ -677,19 +677,6 @@ static HRESULT WINAPI VfwPin_QueryInterface(IPin * iface, REFIID riid, LPVOID * return E_NOINTERFACE; }
-static ULONG WINAPI VfwPin_AddRef(IPin *iface) -{ - VfwPinImpl *pin = impl_from_IPin(iface); - return IBaseFilter_AddRef(pin->pin.pin.pinInfo.pFilter); -} - -static ULONG WINAPI -VfwPin_Release(IPin * iface) -{ - VfwPinImpl *pin = impl_from_IPin(iface); - return IBaseFilter_Release(pin->pin.pin.pinInfo.pFilter); -} - static HRESULT WINAPI VfwPin_EnumMediaTypes(IPin * iface, IEnumMediaTypes ** ppEnum) { @@ -716,8 +703,8 @@ VfwPin_QueryInternalConnections(IPin * iface, IPin ** apPin, ULONG * cPin) static const IPinVtbl VfwPin_Vtbl = { VfwPin_QueryInterface, - VfwPin_AddRef, - VfwPin_Release, + BasePinImpl_AddRef, + BasePinImpl_Release, BaseOutputPinImpl_Connect, BaseOutputPinImpl_ReceiveConnection, BaseOutputPinImpl_Disconnect,