From a414f86f8854a90c48e96262a9f9d02b4e2a3d84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Sun, 31 Aug 2008 15:02:09 +0000 Subject: [PATCH] ext/speex/gstspeexenc.c: Correct the timestamp and granulepos calculation by one Speex frame. Original commit message from CVS: * ext/speex/gstspeexenc.c: (gst_speex_enc_encode): Correct the timestamp and granulepos calculation by one Speex frame. --- ChangeLog | 6 ++++++ ext/speex/gstspeexenc.c | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1c97466541..8cbe63cfca 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2008-08-31 Sebastian Dröge + + * ext/speex/gstspeexenc.c: (gst_speex_enc_encode): + Correct the timestamp and granulepos calculation by one Speex + frame. + 2008-08-31 Sebastian Dröge * ext/speex/gstspeexdec.c: (speex_dec_chain_parse_data): diff --git a/ext/speex/gstspeexenc.c b/ext/speex/gstspeexenc.c index b2653b3a05..a7059edf26 100644 --- a/ext/speex/gstspeexenc.c +++ b/ext/speex/gstspeexenc.c @@ -908,13 +908,13 @@ gst_speex_enc_encode (GstSpeexEnc * enc, gboolean flush) speex_bits_reset (&enc->bits); GST_BUFFER_TIMESTAMP (outbuf) = enc->start_ts + - gst_util_uint64_scale_int (enc->frameno_out * frame_size - + gst_util_uint64_scale_int ((enc->frameno_out - 1) * frame_size - enc->lookahead, GST_SECOND, enc->rate); GST_BUFFER_DURATION (outbuf) = gst_util_uint64_scale_int (frame_size, GST_SECOND, enc->rate); /* set gp time and granulepos; see gst-plugins-base/ext/ogg/README */ GST_BUFFER_OFFSET_END (outbuf) = enc->granulepos_offset + - ((enc->frameno_out + 1) * frame_size - enc->lookahead); + ((enc->frameno_out) * frame_size - enc->lookahead); GST_BUFFER_OFFSET (outbuf) = gst_util_uint64_scale_int (GST_BUFFER_OFFSET_END (outbuf), GST_SECOND, enc->rate);