diff options
| -rw-r--r-- | ChangeLog | 6 | ||||
| -rw-r--r-- | ext/speex/gstspeexenc.c | 4 | 
2 files changed, 8 insertions, 2 deletions
@@ -1,5 +1,11 @@  2008-08-31  Sebastian Dröge  <sebastian.droege@collabora.co.uk> +	* ext/speex/gstspeexenc.c: (gst_speex_enc_encode): +	Correct the timestamp and granulepos calculation by one Speex +	frame. + +2008-08-31  Sebastian Dröge  <sebastian.droege@collabora.co.uk> +  	* ext/speex/gstspeexdec.c: (speex_dec_chain_parse_data):  	Correctly take the granulepos from upstream if possible and  	correctly handle the granulepos in various calculations: the diff --git a/ext/speex/gstspeexenc.c b/ext/speex/gstspeexenc.c index b2653b3a..a7059edf 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);  | 
