[PATCH 2/3] qedit/samplegrabber: Consistently use the "pMemInputPin" member of struct strmbase_source.

Zebediah Figura z.figura12 at gmail.com
Sun Dec 15 17:30:21 CST 2019


This fixes a regression introduced by 2c8e152ff06ae3e460276401b4b6bdaa1ffc676d.

Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
---
 dlls/qedit/samplegrabber.c | 16 ++++++----------
 1 file changed, 6 insertions(+), 10 deletions(-)

diff --git a/dlls/qedit/samplegrabber.c b/dlls/qedit/samplegrabber.c
index 115beec8822..52bacc9b571 100644
--- a/dlls/qedit/samplegrabber.c
+++ b/dlls/qedit/samplegrabber.c
@@ -41,7 +41,6 @@ typedef struct _SG_Impl {
     struct strmbase_source source;
     /* IMediaSeeking and IMediaPosition are implemented by ISeekingPassThru */
     IUnknown *seekthru_unk;
-    IMemInputPin *memOutput;
 
     struct strmbase_sink sink;
     AM_MEDIA_TYPE mtype;
@@ -83,8 +82,6 @@ static void SampleGrabber_cleanup(SG_Impl *This)
     TRACE("(%p)\n", This);
     if (This->allocator)
         IMemAllocator_Release(This->allocator);
-    if (This->memOutput)
-        IMemInputPin_Release(This->memOutput);
     if (This->grabberIface)
         ISampleGrabberCB_Release(This->grabberIface);
     CoTaskMemFree(This->mtype.pbFormat);
@@ -396,7 +393,7 @@ SampleGrabber_IMemInputPin_GetAllocatorRequirements(IMemInputPin *iface, ALLOCAT
     FIXME("(%p)->(%p): semi-stub\n", This, props);
     if (!props)
         return E_POINTER;
-    return This->memOutput ? IMemInputPin_GetAllocatorRequirements(This->memOutput, props) : E_NOTIMPL;
+    return This->source.pMemInputPin ? IMemInputPin_GetAllocatorRequirements(This->source.pMemInputPin, props) : E_NOTIMPL;
 }
 
 /* IMemInputPin */
@@ -405,13 +402,13 @@ SampleGrabber_IMemInputPin_Receive(IMemInputPin *iface, IMediaSample *sample)
 {
     SG_Impl *This = impl_from_IMemInputPin(iface);
     HRESULT hr;
-    TRACE("(%p)->(%p) output = %p, grabber = %p\n", This, sample, This->memOutput, This->grabberIface);
+    TRACE("(%p)->(%p) output = %p, grabber = %p\n", This, sample, This->source.pMemInputPin, This->grabberIface);
     if (!sample)
         return E_POINTER;
     if (This->oneShot == OneShot_Past)
         return S_FALSE;
     SampleGrabber_callback(This, sample);
-    hr = This->memOutput ? IMemInputPin_Receive(This->memOutput, sample) : S_OK;
+    hr = This->source.pMemInputPin ? IMemInputPin_Receive(This->source.pMemInputPin, sample) : S_OK;
     if (This->oneShot == OneShot_Wait) {
         This->oneShot = OneShot_Past;
         hr = S_FALSE;
@@ -427,14 +424,14 @@ SampleGrabber_IMemInputPin_ReceiveMultiple(IMemInputPin *iface, IMediaSample **s
 {
     SG_Impl *This = impl_from_IMemInputPin(iface);
     LONG idx;
-    TRACE("(%p)->(%p, %u, %p) output = %p, grabber = %p\n", This, samples, nSamples, nProcessed, This->memOutput, This->grabberIface);
+    TRACE("(%p)->(%p, %u, %p) output = %p, grabber = %p\n", This, samples, nSamples, nProcessed, This->source.pMemInputPin, This->grabberIface);
     if (!samples || !nProcessed)
         return E_POINTER;
     if ((This->filter.state != State_Running) || (This->oneShot == OneShot_Past))
         return S_FALSE;
     for (idx = 0; idx < nSamples; idx++)
         SampleGrabber_callback(This, samples[idx]);
-    return This->memOutput ? IMemInputPin_ReceiveMultiple(This->memOutput, samples, nSamples, nProcessed) : S_OK;
+    return This->source.pMemInputPin ? IMemInputPin_ReceiveMultiple(This->source.pMemInputPin, samples, nSamples, nProcessed) : S_OK;
 }
 
 /* IMemInputPin */
@@ -443,7 +440,7 @@ SampleGrabber_IMemInputPin_ReceiveCanBlock(IMemInputPin *iface)
 {
     SG_Impl *This = impl_from_IMemInputPin(iface);
     TRACE("(%p)\n", This);
-    return This->memOutput ? IMemInputPin_ReceiveCanBlock(This->memOutput) : S_OK;
+    return This->source.pMemInputPin ? IMemInputPin_ReceiveCanBlock(This->source.pMemInputPin) : S_OK;
 }
 
 static const ISampleGrabberVtbl ISampleGrabber_VTable =
@@ -648,7 +645,6 @@ HRESULT SampleGrabber_create(IUnknown *outer, void **out)
     obj->mtype.subtype = MEDIASUBTYPE_None;
     obj->mtype.formattype = FORMAT_None;
     obj->allocator = NULL;
-    obj->memOutput = NULL;
     obj->grabberIface = NULL;
     obj->grabberMethod = -1;
     obj->oneShot = OneShot_None;
-- 
2.24.0




More information about the wine-devel mailing list