From 7c8087f49ace35716c4312bd5651e3585ff16ee7 Mon Sep 17 00:00:00 2001 From: Nicolas Dufresne Date: Thu, 3 Nov 2016 15:22:34 -0400 Subject: [PATCH] basesink: Make sure we never drop the preroll buffer This is cosmetic as 'late' should never be set during preroll (in pause). Though code may evolve in the future, so this is good for preventing potential bugs. https://bugzilla.gnome.org/show_bug.cgi?id=772468 --- libs/gst/base/gstbasesink.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libs/gst/base/gstbasesink.c b/libs/gst/base/gstbasesink.c index 97e0573a6e..aef33fdb48 100644 --- a/libs/gst/base/gstbasesink.c +++ b/libs/gst/base/gstbasesink.c @@ -3476,15 +3476,15 @@ gst_base_sink_chain_unlocked (GstBaseSink * basesink, GstPad * pad, } } - if (G_UNLIKELY (late)) - goto dropped; - /* We are about to prepare the first frame, make sure we have prerolled * already. This prevent nesting prepare/render calls. */ ret = gst_base_sink_do_preroll (basesink, obj); if (G_UNLIKELY (ret != GST_FLOW_OK)) goto preroll_failed; + if (G_UNLIKELY (late)) + goto dropped; + if (!is_list) { if (bclass->prepare) { ret = bclass->prepare (basesink, GST_BUFFER_CAST (obj));