streamsync: only remove DISCONT when needed

Check if the buffer is DISCONT before making a potentially expensive copy to
unset the DISCONT flag.
This commit is contained in:
Wim Taymans 2012-09-06 13:35:33 +02:00
parent 20806e4c16
commit b26f35c3a4

View file

@ -506,8 +506,11 @@ gst_stream_synchronizer_sink_chain (GstPad * pad, GstObject * parent,
if (stream) { if (stream) {
stream->seen_data = TRUE; stream->seen_data = TRUE;
if (stream->drop_discont) { if (stream->drop_discont) {
buffer = gst_buffer_make_writable (buffer); if (GST_BUFFER_IS_DISCONT (buffer)) {
GST_BUFFER_FLAG_UNSET (buffer, GST_BUFFER_FLAG_DISCONT); 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; stream->drop_discont = FALSE;
} }