From edc1d619f78897a5ea382c335a1dd9b2818002fe Mon Sep 17 00:00:00 2001 From: Kelvie Wong Date: Fri, 2 Apr 2010 01:42:07 -0700 Subject: demux_tta: fix some dumb truncation errors I don't know why I multiplied by integers _outside_ the parentheses. I blame late nights. Regardless, this fixes the skip every 24 seconds due to the truncation of FRAME_TIME. The input_time is also more accurate for e.g. stopping cue tracks. --- src/demuxers/demux_tta.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/demuxers/demux_tta.c b/src/demuxers/demux_tta.c index 03d15045d..10229ed64 100644 --- a/src/demuxers/demux_tta.c +++ b/src/demuxers/demux_tta.c @@ -129,7 +129,7 @@ static int demux_tta_send_chunk(demux_plugin_t *this_gen) { /* Get a buffer */ buf = this->audio_fifo->buffer_pool_alloc(this->audio_fifo); buf->type = BUF_AUDIO_TTA; - buf->pts = (int64_t)(FRAME_TIME * this->currentframe) * 90000; + buf->pts = (int64_t)(FRAME_TIME * this->currentframe * 90000); buf->extra_info->total_time = (int)(le2me_32(this->header.tta.data_length) * 1000.0 / le2me_32(this->header.tta.samplerate)); /* milliseconds */ buf->decoder_flags = 0; @@ -138,7 +138,7 @@ static int demux_tta_send_chunk(demux_plugin_t *this_gen) { (int) ((double) this->currentframe * 65535 / this->totalframes); /* Set time */ - buf->extra_info->input_time = (int)(FRAME_TIME * this->currentframe)*1000; + buf->extra_info->input_time = (int)(FRAME_TIME * this->currentframe * 1000); bytes_read = this->input->read(this->input, buf->content, ( bytes_to_read > buf->max_size ) ? buf->max_size : bytes_to_read); if (bytes_read < 0) { -- cgit v1.2.3