summaryrefslogtreecommitdiff
path: root/ext/sbc/gstsbcdec.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/sbc/gstsbcdec.c')
-rw-r--r--ext/sbc/gstsbcdec.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/ext/sbc/gstsbcdec.c b/ext/sbc/gstsbcdec.c
index 180c1379a..98aa94b6f 100644
--- a/ext/sbc/gstsbcdec.c
+++ b/ext/sbc/gstsbcdec.c
@@ -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;