diff options
-rw-r--r-- | ext/speex/gstspeexenc.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/ext/speex/gstspeexenc.c b/ext/speex/gstspeexenc.c index 17e17034..60fc1d9e 100644 --- a/ext/speex/gstspeexenc.c +++ b/ext/speex/gstspeexenc.c @@ -928,10 +928,11 @@ 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 - 1) * frame_size - - enc->lookahead, GST_SECOND, enc->rate); - GST_BUFFER_DURATION (outbuf) = gst_util_uint64_scale_int (frame_size, - GST_SECOND, enc->rate); + gst_util_uint64_scale_int ((enc->frameno_out - + enc->nframes) * frame_size - enc->lookahead, GST_SECOND, enc->rate); + GST_BUFFER_DURATION (outbuf) = + gst_util_uint64_scale_int (frame_size * enc->nframes, 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) * frame_size - enc->lookahead); |