diff options
author | Edward Hervey <bilboed@bilboed.com> | 2009-05-08 16:40:57 +0200 |
---|---|---|
committer | Edward Hervey <bilboed@bilboed.com> | 2009-05-08 16:40:57 +0200 |
commit | e8cbbd22f851182aaeefe9ad42b50123e9451e21 (patch) | |
tree | 1f7eafe887939a7e2faabb5c658eecbcfcacb6da | |
parent | 9bf294c3107df303a1359403b7ea81625e3614e3 (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.
-rw-r--r-- | ext/flac/gstflacdec.c | 7 |
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; |