Zebediah Figura : strmbase: Introduce renderer_init_stream().

Alexandre Julliard julliard at winehq.org
Wed Oct 23 15:31:31 CDT 2019


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

Author: Zebediah Figura <z.figura12 at gmail.com>
Date:   Tue Oct 22 18:30:05 2019 -0500

strmbase: Introduce renderer_init_stream().

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

---

 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;




More information about the wine-cvs mailing list