summaryrefslogtreecommitdiffstats
path: root/ext/flac
diff options
context:
space:
mode:
authorEdward Hervey <bilboed@bilboed.com>2009-05-08 16:40:57 +0200
committerEdward Hervey <bilboed@bilboed.com>2009-05-08 16:40:57 +0200
commite8cbbd22f851182aaeefe9ad42b50123e9451e21 (patch)
tree1f7eafe887939a7e2faabb5c658eecbcfcacb6da /ext/flac
parent9bf294c3107df303a1359403b7ea81625e3614e3 (diff)
flacdec: Actually output the pending buffer.. and not a blank one.
It was previously sending the bogus buffer which was returned from the bufferalloc (required for reverse negotiation apparently) instead of the pending buffer.
Diffstat (limited to 'ext/flac')
-rw-r--r--ext/flac/gstflacdec.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/ext/flac/gstflacdec.c b/ext/flac/gstflacdec.c
index f8eb818c..9fe153aa 100644
--- a/ext/flac/gstflacdec.c
+++ b/ext/flac/gstflacdec.c
@@ -938,10 +938,11 @@ gst_flac_dec_write (GstFlacDec * flacdec, const FLAC__Frame * frame,
GST_BUFFER_OFFSET (flacdec->pending),
GST_BUFFER_SIZE (flacdec->pending),
GST_BUFFER_CAPS (flacdec->pending), &outbuf);
- if (ret == GST_FLOW_OK)
- gst_pad_push (flacdec->srcpad, outbuf);
+ if (ret == GST_FLOW_OK) {
+ gst_pad_push (flacdec->srcpad, flacdec->pending);
+ gst_buffer_unref (outbuf);
+ }
- gst_buffer_unref (flacdec->pending);
outbuf = flacdec->pending = NULL;
flacdec->segment.last_stop += flacdec->pending_samples;
flacdec->pending_samples = 0;