From e8cbbd22f851182aaeefe9ad42b50123e9451e21 Mon Sep 17 00:00:00 2001 From: Edward Hervey Date: Fri, 8 May 2009 16:40:57 +0200 Subject: 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. --- ext/flac/gstflacdec.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'ext/flac') 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; -- cgit