From b26f35c3a4fe27a3a27a40ecb9ff2c358859c1b7 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Thu, 6 Sep 2012 13:35:33 +0200 Subject: [PATCH] streamsync: only remove DISCONT when needed Check if the buffer is DISCONT before making a potentially expensive copy to unset the DISCONT flag. --- gst/playback/gststreamsynchronizer.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/gst/playback/gststreamsynchronizer.c b/gst/playback/gststreamsynchronizer.c index 7510f15f61..d28d540f69 100644 --- a/gst/playback/gststreamsynchronizer.c +++ b/gst/playback/gststreamsynchronizer.c @@ -506,8 +506,11 @@ gst_stream_synchronizer_sink_chain (GstPad * pad, GstObject * parent, if (stream) { stream->seen_data = TRUE; if (stream->drop_discont) { - buffer = gst_buffer_make_writable (buffer); - GST_BUFFER_FLAG_UNSET (buffer, GST_BUFFER_FLAG_DISCONT); + if (GST_BUFFER_IS_DISCONT (buffer)) { + GST_DEBUG_OBJECT (pad, "removing DISCONT from buffer %p", buffer); + buffer = gst_buffer_make_writable (buffer); + GST_BUFFER_FLAG_UNSET (buffer, GST_BUFFER_FLAG_DISCONT); + } stream->drop_discont = FALSE; }