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.
This commit is contained in:
Sebastian Dröge 2008-08-31 15:02:09 +00:00
parent 25896b3a93
commit a414f86f88
2 changed files with 8 additions and 2 deletions

View file

@ -1,3 +1,9 @@
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):

View file

@ -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);