From d3ad8602932de504835e6d95769b8b04c2393649 Mon Sep 17 00:00:00 2001 From: David Schleef Date: Sat, 3 Jul 2004 04:21:39 +0000 Subject: ext/flac/gstflacdec.c: Set duration on output buffers. Fix logic mistake. (bug #144866) Original commit message from CVS: * ext/flac/gstflacdec.c: (gst_flacdec_write): Set duration on output buffers. Fix logic mistake. (bug #144866) --- ChangeLog | 5 +++++ ext/flac/gstflacdec.c | 6 ++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index c9d3efce..cba894a5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2004-07-02 David Schleef + + * ext/flac/gstflacdec.c: (gst_flacdec_write): Set duration on + output buffers. Fix logic mistake. (bug #144866) + 2004-07-02 David Schleef * gst-libs/gst/xoverlay/Makefile.am: xoverlay no longer depends diff --git a/ext/flac/gstflacdec.c b/ext/flac/gstflacdec.c index e8881f1c..1a7852e9 100644 --- a/ext/flac/gstflacdec.c +++ b/ext/flac/gstflacdec.c @@ -170,7 +170,7 @@ gst_flacdec_class_init (FlacDecClass * klass) parent_class = g_type_class_ref (GST_TYPE_ELEMENT); gobject_class->dispose = gst_flacdec_dispose; - + gstelement_class->change_state = gst_flacdec_change_state; } @@ -467,7 +467,7 @@ gst_flacdec_write (const FLAC__SeekableStreamDecoder * decoder, flacdec->need_discont = FALSE; - if (!GST_PAD_CAPS (flacdec->srcpad)) { + if (GST_PAD_CAPS (flacdec->srcpad)) { if (flacdec->seek_pending) { flacdec->total_samples = flacdec->seek_value; } @@ -511,6 +511,8 @@ gst_flacdec_write (const FLAC__SeekableStreamDecoder * decoder, GST_BUFFER_DATA (outbuf) = g_malloc (GST_BUFFER_SIZE (outbuf)); GST_BUFFER_TIMESTAMP (outbuf) = flacdec->total_samples * GST_SECOND / frame->header.sample_rate; + GST_BUFFER_DURATION (outbuf) = + samples * GST_SECOND / frame->header.sample_rate; if (depth == 8) { guint8 *outbuffer = (guint8 *) GST_BUFFER_DATA (outbuf); -- cgit