[PATCH 3/5] strmbase: Introduce renderer_init_stream().

Zebediah Figura z.figura12 at gmail.com
Tue Oct 22 18:30:05 CDT 2019


Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
---
 dlls/strmbase/renderer.c | 5 +++++
 include/wine/strmbase.h  | 1 +
 2 files changed, 6 insertions(+)

diff --git a/dlls/strmbase/renderer.c b/dlls/strmbase/renderer.c
index 9908e693e7..0f714c2a88 100644
--- a/dlls/strmbase/renderer.c
+++ b/dlls/strmbase/renderer.c
@@ -438,6 +438,9 @@ HRESULT WINAPI BaseRendererImpl_Run(IBaseFilter * iface, REFERENCE_TIME tStart)
     if (This->filter.state == State_Running)
         goto out;
 
+    if (This->filter.state == State_Stopped && This->pFuncsTable->renderer_init_stream)
+        This->pFuncsTable->renderer_init_stream(This);
+
     SetEvent(This->state_event);
 
     if (This->sink.pin.peer)
@@ -477,6 +480,8 @@ HRESULT WINAPI BaseRendererImpl_Pause(IBaseFilter * iface)
                     hr = S_FALSE;
                 }
                 This->sink.end_of_stream = FALSE;
+                if (This->pFuncsTable->renderer_init_stream)
+                    This->pFuncsTable->renderer_init_stream(This);
             }
             else if (This->sink.pin.peer && This->pFuncsTable->renderer_stop_stream)
                 This->pFuncsTable->renderer_stop_stream(This);
diff --git a/include/wine/strmbase.h b/include/wine/strmbase.h
index 74c8f4721b..f9136fadff 100644
--- a/include/wine/strmbase.h
+++ b/include/wine/strmbase.h
@@ -550,6 +550,7 @@ typedef HRESULT (WINAPI *BaseRenderer_CompleteConnect) (BaseRenderer *This, IPin
 typedef struct BaseRendererFuncTable {
     BaseRenderer_CheckMediaType pfnCheckMediaType;
     BaseRenderer_DoRenderSample pfnDoRenderSample;
+    void (*renderer_init_stream)(BaseRenderer *iface);
     void (*renderer_start_stream)(BaseRenderer *iface);
     void (*renderer_stop_stream)(BaseRenderer *iface);
     BaseRenderer_ShouldDrawSampleNow  pfnShouldDrawSampleNow;
-- 
2.20.1




More information about the wine-devel mailing list