summaryrefslogtreecommitdiffstats
path: root/ext/flac/gstflacdec.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/flac/gstflacdec.c')
-rw-r--r--ext/flac/gstflacdec.c6
1 files changed, 4 insertions, 2 deletions
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);