sbc: sbcdec: set DISCONT on outgoing buffers.
authorWim Taymans <wim.taymans@collabora.co.uk>
Mon, 29 Oct 2012 17:22:28 +0000 (17:22 +0000)
committerTim-Philipp Müller <tim@centricular.net>
Wed, 27 Mar 2013 22:21:17 +0000 (22:21 +0000)
ext/sbc/gstsbcdec.c

index 180c137..98aa94b 100644 (file)
@@ -62,10 +62,12 @@ sbc_dec_chain (GstPad * pad, GstBuffer * buffer)
   guint size, codesize, offset = 0;
   guint8 *data;
   GstClockTime timestamp;
+  gboolean discont;
 
   codesize = sbc_get_codesize (&dec->sbc);
 
-  if (GST_BUFFER_IS_DISCONT (buffer)) {
+  discont = GST_BUFFER_IS_DISCONT (buffer);
+  if (discont) {
     /* reset previous buffer */
     gst_buffer_unref (dec->buffer);
     dec->buffer = NULL;
@@ -156,6 +158,11 @@ sbc_dec_chain (GstPad * pad, GstBuffer * buffer)
 
     gst_buffer_set_caps (output, dec->outcaps);
 
+    if (discont) {
+      GST_BUFFER_FLAG_SET (output, GST_BUFFER_FLAG_DISCONT);
+      discont = FALSE;
+    }
+
     res = gst_pad_push (dec->srcpad, output);
     if (res != GST_FLOW_OK)
       goto done;