Zebediah Figura : quartz/videorenderer: Render preroll samples.

Alexandre Julliard julliard at winehq.org
Mon Jul 20 15:30:09 CDT 2020


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

Author: Zebediah Figura <z.figura12 at gmail.com>
Date:   Mon Jul 20 10:25:27 2020 -0500

quartz/videorenderer: Render preroll samples.

The documentation specifies that preroll samples shouldn't be rendered, but
the video renderer renders them anyway.

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

---

 dlls/quartz/tests/videorenderer.c |  3 +++
 dlls/quartz/videorenderer.c       | 10 ----------
 2 files changed, 3 insertions(+), 10 deletions(-)

diff --git a/dlls/quartz/tests/videorenderer.c b/dlls/quartz/tests/videorenderer.c
index 4ae320e022..ac2cadc4b1 100644
--- a/dlls/quartz/tests/videorenderer.c
+++ b/dlls/quartz/tests/videorenderer.c
@@ -797,6 +797,9 @@ static HANDLE send_frame_time(IMemInputPin *sink, REFERENCE_TIME start_time, uns
     hr = IMediaSample_SetTime(sample, &start_time, &end_time);
     ok(hr == S_OK, "Got hr %#x.\n", hr);
 
+    hr = IMediaSample_SetPreroll(sample, TRUE);
+    ok(hr == S_OK, "Got hr %#x.\n", hr);
+
     params->sink = sink;
     params->sample = sample;
     thread = CreateThread(NULL, 0, frame_thread, params, 0, NULL);
diff --git a/dlls/quartz/videorenderer.c b/dlls/quartz/videorenderer.c
index f635d9eaac..eb6accf2d3 100644
--- a/dlls/quartz/videorenderer.c
+++ b/dlls/quartz/videorenderer.c
@@ -82,15 +82,6 @@ static void VideoRenderer_AutoShowWindow(struct video_renderer *This)
         ShowWindow(This->window.hwnd, SW_SHOW);
 }
 
-static HRESULT WINAPI VideoRenderer_ShouldDrawSampleNow(struct strmbase_renderer *filter,
-        IMediaSample *pSample, REFERENCE_TIME *start, REFERENCE_TIME *end)
-{
-    /* Preroll means the sample isn't shown, this is used for key frames and things like that */
-    if (IMediaSample_IsPreroll(pSample) == S_OK)
-        return E_FAIL;
-    return S_FALSE;
-}
-
 static HRESULT WINAPI VideoRenderer_DoRenderSample(struct strmbase_renderer *iface, IMediaSample *pSample)
 {
     struct video_renderer *filter = impl_from_strmbase_renderer(iface);
@@ -253,7 +244,6 @@ static const struct strmbase_renderer_ops renderer_ops =
     .renderer_init_stream = video_renderer_init_stream,
     .renderer_start_stream = video_renderer_start_stream,
     .renderer_stop_stream = video_renderer_stop_stream,
-    .pfnShouldDrawSampleNow = VideoRenderer_ShouldDrawSampleNow,
     .renderer_destroy = video_renderer_destroy,
     .renderer_query_interface = video_renderer_query_interface,
     .renderer_pin_query_interface = video_renderer_pin_query_interface,




More information about the wine-cvs mailing list