Zebediah Figura : strmbase: Factor out strmbase_pin_init().

Alexandre Julliard julliard at winehq.org
Thu Jun 13 15:40:38 CDT 2019


Module: wine
Branch: master
Commit: d16bc95b95f7d90f411838057a36a9f62468f896
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=d16bc95b95f7d90f411838057a36a9f62468f896

Author: Zebediah Figura <z.figura12 at gmail.com>
Date:   Wed Jun 12 18:58:34 2019 -0500

strmbase: Factor out strmbase_pin_init().

Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/strmbase/pin.c | 74 +++++++++++++++++++++--------------------------------
 1 file changed, 29 insertions(+), 45 deletions(-)

diff --git a/dlls/strmbase/pin.c b/dlls/strmbase/pin.c
index 2fa0b9a..c60deed 100644
--- a/dlls/strmbase/pin.c
+++ b/dlls/strmbase/pin.c
@@ -728,26 +728,24 @@ HRESULT WINAPI BaseOutputPinImpl_AttemptConnection(BaseOutputPin *This, IPin *pR
     return hr;
 }
 
-static HRESULT OutputPin_Init(const IPinVtbl *OutputPin_Vtbl, const PIN_INFO * pPinInfo, const BaseOutputPinFuncTable* vtbl,  LPCRITICAL_SECTION pCritSec, BaseOutputPin * pPinImpl)
-{
-    TRACE("(%p)\n", pPinImpl);
-
-    /* Common attributes */
-    pPinImpl->pin.IPin_iface.lpVtbl = OutputPin_Vtbl;
-    pPinImpl->pin.refCount = 1;
-    pPinImpl->pin.pConnectedTo = NULL;
-    pPinImpl->pin.pCritSec = pCritSec;
-    pPinImpl->pin.tStart = 0;
-    pPinImpl->pin.tStop = 0;
-    pPinImpl->pin.dRate = 1.0;
-    Copy_PinInfo(&pPinImpl->pin.pinInfo, pPinInfo);
-    pPinImpl->pin.pFuncsTable = &vtbl->base;
-    ZeroMemory(&pPinImpl->pin.mtCurrent, sizeof(AM_MEDIA_TYPE));
-
-    /* Output pin attributes */
-    pPinImpl->pMemInputPin = NULL;
-    pPinImpl->pAllocator = NULL;
-    pPinImpl->pFuncsTable = vtbl;
+static void strmbase_pin_init(BasePin *pin, const IPinVtbl *vtbl,
+        const BasePinFuncTable *func_table, const PIN_INFO *info, CRITICAL_SECTION *cs)
+{
+    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);
+    pin->pFuncsTable = func_table;
+}
+
+static HRESULT OutputPin_Init(const IPinVtbl *vtbl, const PIN_INFO *info,
+        const BaseOutputPinFuncTable *func_table, CRITICAL_SECTION *cs, BaseOutputPin *pin)
+{
+    memset(pin, 0, sizeof(*pin));
+    strmbase_pin_init(&pin->pin, vtbl, &func_table->base, info, cs);
+    pin->pFuncsTable = func_table;
 
     return S_OK;
 }
@@ -1111,31 +1109,17 @@ static const IMemInputPinVtbl MemInputPin_Vtbl =
     MemInputPin_ReceiveCanBlock
 };
 
-static HRESULT InputPin_Init(const IPinVtbl *InputPin_Vtbl, const PIN_INFO * pPinInfo,
-                             const BaseInputPinFuncTable* vtbl,
-                             LPCRITICAL_SECTION pCritSec, IMemAllocator *allocator, BaseInputPin * pPinImpl)
-{
-    TRACE("(%p)\n", pPinImpl);
-
-    /* Common attributes */
-    pPinImpl->pin.refCount = 1;
-    pPinImpl->pin.pConnectedTo = NULL;
-    pPinImpl->pin.pCritSec = pCritSec;
-    pPinImpl->pin.tStart = 0;
-    pPinImpl->pin.tStop = 0;
-    pPinImpl->pin.dRate = 1.0;
-    Copy_PinInfo(&pPinImpl->pin.pinInfo, pPinInfo);
-    ZeroMemory(&pPinImpl->pin.mtCurrent, sizeof(AM_MEDIA_TYPE));
-    pPinImpl->pin.pFuncsTable = &vtbl->base;
-
-    /* Input pin attributes */
-    pPinImpl->pFuncsTable = vtbl;
-    pPinImpl->pAllocator = pPinImpl->preferred_allocator = allocator;
-    if (pPinImpl->preferred_allocator)
-        IMemAllocator_AddRef(pPinImpl->preferred_allocator);
-    pPinImpl->pin.IPin_iface.lpVtbl = InputPin_Vtbl;
-    pPinImpl->IMemInputPin_iface.lpVtbl = &MemInputPin_Vtbl;
-    pPinImpl->flushing = pPinImpl->end_of_stream = FALSE;
+static HRESULT InputPin_Init(const IPinVtbl *vtbl, const PIN_INFO *info,
+        const BaseInputPinFuncTable *func_table, CRITICAL_SECTION *cs,
+        IMemAllocator *allocator, BaseInputPin *pin)
+{
+    memset(pin, 0, sizeof(*pin));
+    strmbase_pin_init(&pin->pin, vtbl, &func_table->base, info, cs);
+    pin->pFuncsTable = func_table;
+    pin->pAllocator = pin->preferred_allocator = allocator;
+    if (pin->preferred_allocator)
+        IMemAllocator_AddRef(pin->preferred_allocator);
+    pin->IMemInputPin_iface.lpVtbl = &MemInputPin_Vtbl;
 
     return S_OK;
 }




More information about the wine-cvs mailing list