From 77ecf6954f81c3e1b9589d2d14b79f839022e690 Mon Sep 17 00:00:00 2001 From: Miguel Freitas Date: Fri, 10 Jan 2003 21:10:50 +0000 Subject: have length in miliseconds too fix some intermediate calculation CVS patchset: 3856 CVS date: 2003/01/10 21:10:50 --- src/demuxers/demux.h | 4 ++-- src/demuxers/demux_aiff.c | 6 +++--- src/demuxers/demux_asf.c | 12 +++++++----- src/demuxers/demux_avi.c | 4 ++-- src/demuxers/demux_cda.c | 5 +++-- src/demuxers/demux_cdda.c | 7 ++++--- src/demuxers/demux_eawve.c | 6 +++--- src/demuxers/demux_film.c | 4 ++-- src/demuxers/demux_mpeg.c | 14 ++++++++------ src/demuxers/demux_mpeg_block.c | 11 +++++++---- src/demuxers/demux_mpgaudio.c | 7 ++++--- src/demuxers/demux_nsf.c | 4 ++-- src/demuxers/demux_ogg.c | 9 +++++---- src/demuxers/demux_qt.c | 4 ++-- src/demuxers/demux_real.c | 12 ++++++------ src/demuxers/demux_realaudio.c | 6 +++--- src/demuxers/demux_smjpeg.c | 6 +++--- src/demuxers/demux_snd.c | 6 +++--- src/demuxers/demux_ts.c | 5 +++-- src/demuxers/demux_voc.c | 6 +++--- src/demuxers/demux_vox.c | 7 ++++--- src/demuxers/demux_wav.c | 6 +++--- src/demuxers/demux_yuv4mpeg2.c | 6 +++--- src/xine-engine/xine.c | 4 ++-- 24 files changed, 87 insertions(+), 74 deletions(-) (limited to 'src') diff --git a/src/demuxers/demux.h b/src/demuxers/demux.h index ac112aab8..ba153a3d4 100644 --- a/src/demuxers/demux.h +++ b/src/demuxers/demux.h @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: demux.h,v 1.28 2003/01/04 14:48:11 miguelfreitas Exp $ + * $Id: demux.h,v 1.29 2003/01/10 21:10:50 miguelfreitas Exp $ */ #ifndef HAVE_DEMUX_H @@ -143,7 +143,7 @@ struct demux_plugin_s { int (*get_status) (demux_plugin_t *this) ; /* - * estimate stream length in seconds + * gets stream length in miliseconds (might be estimated) * may return 0 for non-seekable streams */ diff --git a/src/demuxers/demux_aiff.c b/src/demuxers/demux_aiff.c index 948a1a096..0bfd8e42a 100644 --- a/src/demuxers/demux_aiff.c +++ b/src/demuxers/demux_aiff.c @@ -19,7 +19,7 @@ * * AIFF File Demuxer by Mike Melanson (melanson@pcisys.net) * - * $Id: demux_aiff.c,v 1.23 2003/01/10 11:57:15 miguelfreitas Exp $ + * $Id: demux_aiff.c,v 1.24 2003/01/10 21:10:51 miguelfreitas Exp $ * */ @@ -318,12 +318,12 @@ static int demux_aiff_get_status (demux_plugin_t *this_gen) { return this->status; } -/* return the approximate length in seconds */ +/* return the approximate length in miliseconds */ static int demux_aiff_get_stream_length (demux_plugin_t *this_gen) { demux_aiff_t *this = (demux_aiff_t *) this_gen; - return this->running_time; + return this->running_time * 1000; } static uint32_t demux_aiff_get_capabilities(demux_plugin_t *this_gen) diff --git a/src/demuxers/demux_asf.c b/src/demuxers/demux_asf.c index 0bf92a2c6..2abca8407 100644 --- a/src/demuxers/demux_asf.c +++ b/src/demuxers/demux_asf.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: demux_asf.c,v 1.96 2003/01/10 11:57:15 miguelfreitas Exp $ + * $Id: demux_asf.c,v 1.97 2003/01/10 21:10:52 miguelfreitas Exp $ * * demultiplexer for asf streams * @@ -357,9 +357,9 @@ static int asf_read_header (demux_asf_t *this) { end_time = get_le64 (this); - this->length = get_le64(this) / 10000000; + this->length = get_le64(this) / 10000; if (this->length) - this->rate = this->input->get_length (this->input) / this->length; + this->rate = this->input->get_length (this->input) / (this->length / 1000); else this->rate = 0; @@ -805,7 +805,8 @@ static void asf_send_buffer_nodefrag (demux_asf_t *this, asf_stream_t *stream, buf->extra_info->input_pos = this->input->get_current_pos (this->input); if (this->rate) - buf->extra_info->input_time = buf->extra_info->input_pos * 1000 / this->rate; + buf->extra_info->input_time = (int)((int64_t)buf->extra_info->input_pos + * 1000 / this->rate); else buf->extra_info->input_time = 0; @@ -902,7 +903,8 @@ static void asf_send_buffer_defrag (demux_asf_t *this, asf_stream_t *stream, buf->extra_info->input_pos = this->input->get_current_pos (this->input); if (this->rate) - buf->extra_info->input_time = buf->extra_info->input_pos * 1000 / this->rate; + buf->extra_info->input_time = (int)((int64_t)buf->extra_info->input_pos + * 1000 / this->rate); else buf->extra_info->input_time = 0; diff --git a/src/demuxers/demux_avi.c b/src/demuxers/demux_avi.c index 470d565fc..9d7b6bc1d 100644 --- a/src/demuxers/demux_avi.c +++ b/src/demuxers/demux_avi.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: demux_avi.c,v 1.146 2003/01/10 11:57:16 miguelfreitas Exp $ + * $Id: demux_avi.c,v 1.147 2003/01/10 21:10:56 miguelfreitas Exp $ * * demultiplexer for avi streams * @@ -1436,7 +1436,7 @@ static int demux_avi_get_stream_length (demux_plugin_t *this_gen) { demux_avi_t *this = (demux_avi_t *) this_gen; if (this->avi) { - return get_video_pts(this, this->avi->video_idx.video_frames) / 90000 ; + return (int)(get_video_pts(this, this->avi->video_idx.video_frames) / 90); } return 0; diff --git a/src/demuxers/demux_cda.c b/src/demuxers/demux_cda.c index cba798f36..9446a82bb 100644 --- a/src/demuxers/demux_cda.c +++ b/src/demuxers/demux_cda.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: demux_cda.c,v 1.39 2003/01/10 11:57:16 miguelfreitas Exp $ + * $Id: demux_cda.c,v 1.40 2003/01/10 21:10:57 miguelfreitas Exp $ */ #ifdef HAVE_CONFIG_H @@ -80,7 +80,8 @@ static int demux_cda_next (demux_cda_t *this) { buf->pts = 0; buf->extra_info->input_pos = pos; - buf->extra_info->input_time = buf->extra_info->input_pos * 1000 / this->blocksize; + buf->extra_info->input_time = (int)((int64_t)buf->extra_info->input_pos + * 1000 / this->blocksize); buf->type = BUF_CONTROL_NOP; /* Fake */ this->video_fifo->put(this->video_fifo, buf); diff --git a/src/demuxers/demux_cdda.c b/src/demuxers/demux_cdda.c index 0c276ebee..8d8838ed8 100644 --- a/src/demuxers/demux_cdda.c +++ b/src/demuxers/demux_cdda.c @@ -22,7 +22,7 @@ * linear PCM "decoder" (which in turn sends them directly to the audio * output target; this is a really fancy CD-playing architecture). * - * $Id: demux_cdda.c,v 1.2 2003/01/10 11:57:16 miguelfreitas Exp $ + * $Id: demux_cdda.c,v 1.3 2003/01/10 21:10:58 miguelfreitas Exp $ * */ @@ -167,12 +167,13 @@ static int demux_cdda_get_status (demux_plugin_t *this_gen) { return this->status; } -/* return the approximate length in seconds */ +/* return the approximate length in miliseconds */ static int demux_cdda_get_stream_length (demux_plugin_t *this_gen) { demux_cdda_t *this = (demux_cdda_t *) this_gen; - return this->input->get_length(this->input) / CD_BYTES_PER_SECOND; + return (int)((int64_t) this->input->get_length(this->input) + * 1000 / CD_BYTES_PER_SECOND); } static uint32_t demux_cdda_get_capabilities(demux_plugin_t *this_gen) diff --git a/src/demuxers/demux_eawve.c b/src/demuxers/demux_eawve.c index f9fdb414a..e84b6b9c2 100644 --- a/src/demuxers/demux_eawve.c +++ b/src/demuxers/demux_eawve.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: demux_eawve.c,v 1.14 2003/01/10 11:57:16 miguelfreitas Exp $ + * $Id: demux_eawve.c,v 1.15 2003/01/10 21:10:58 miguelfreitas Exp $ * * demux_eawve.c, Demuxer plugin for Electronic Arts' WVE file format * @@ -233,7 +233,7 @@ static int demux_eawve_send_chunk(demux_eawve_t *this) buf = this->audio_fifo->buffer_pool_alloc(this->audio_fifo); buf->type = BUF_AUDIO_EA_ADPCM; buf->extra_info->input_pos = this->input->get_current_pos(this->input); - buf->extra_info->input_time = this->sample_counter * 1000 / 22050; + buf->extra_info->input_time = (int)((int64_t)this->sample_counter * 1000 / 22050); buf->pts = this->sample_counter; buf->pts *= 90000; buf->pts /= 22050; @@ -346,7 +346,7 @@ static int demux_eawve_get_status(demux_eawve_t *this) static int demux_eawve_get_stream_length(demux_eawve_t *this) { - return this->num_samples / 22050; + return (int)((int64_t)this->num_samples * 1000 / 22050); } static uint32_t demux_eawve_get_capabilities(demux_plugin_t *this_gen) { diff --git a/src/demuxers/demux_film.c b/src/demuxers/demux_film.c index aafe45482..88e11646c 100644 --- a/src/demuxers/demux_film.c +++ b/src/demuxers/demux_film.c @@ -21,7 +21,7 @@ * For more information on the FILM file format, visit: * http://www.pcisys.net/~melanson/codecs/ * - * $Id: demux_film.c,v 1.52 2003/01/10 11:57:16 miguelfreitas Exp $ + * $Id: demux_film.c,v 1.53 2003/01/10 21:10:59 miguelfreitas Exp $ */ #ifdef HAVE_CONFIG_H @@ -266,7 +266,7 @@ static int open_film_file(demux_film_t *film) { i += chunk_size; } - film->total_time = largest_pts / 90000; + film->total_time = largest_pts / 90; return 1; } diff --git a/src/demuxers/demux_mpeg.c b/src/demuxers/demux_mpeg.c index 27673d621..a226a9bae 100644 --- a/src/demuxers/demux_mpeg.c +++ b/src/demuxers/demux_mpeg.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: demux_mpeg.c,v 1.103 2003/01/10 11:57:16 miguelfreitas Exp $ + * $Id: demux_mpeg.c,v 1.104 2003/01/10 21:11:00 miguelfreitas Exp $ * * demultiplexer for mpeg 1/2 program streams * reads streams of variable blocksizes @@ -309,8 +309,7 @@ static void parse_mpeg2_packet (demux_mpeg_t *this, int stream_id, int64_t scr) buf->extra_info->input_pos = this->input->get_current_pos (this->input); - if(this->audio_fifo) - this->audio_fifo->put (this->audio_fifo, buf); + this->audio_fifo->put (this->audio_fifo, buf); } else if ((stream_id & 0xe0) == 0xc0) { int track = stream_id & 0x1f; @@ -529,7 +528,8 @@ static void parse_mpeg1_packet (demux_mpeg_t *this, int stream_id, int64_t scr) buf->extra_info->input_pos = this->input->get_current_pos(this->input); if (this->rate) - buf->extra_info->input_time = buf->extra_info->input_pos * 1000 / (this->rate * 50); + buf->extra_info->input_time = (int)((int64_t)buf->extra_info->input_pos + * 1000 / (this->rate * 50)); if(this->audio_fifo) this->audio_fifo->put (this->audio_fifo, buf); @@ -552,7 +552,8 @@ static void parse_mpeg1_packet (demux_mpeg_t *this, int stream_id, int64_t scr) buf->extra_info->input_pos = this->input->get_current_pos(this->input); if (this->rate) - buf->extra_info->input_time = buf->extra_info->input_pos * 1000 / (this->rate * 50); + buf->extra_info->input_time = (int)((int64_t)buf->extra_info->input_pos + * 1000 / (this->rate * 50)); this->video_fifo->put (this->video_fifo, buf); @@ -875,7 +876,8 @@ static int demux_mpeg_get_stream_length (demux_plugin_t *this_gen) { demux_mpeg_t *this = (demux_mpeg_t *) this_gen; if (this->rate) - return this->input->get_length (this->input) / (this->rate * 50); + return (int)((int64_t) 1000 * this->input->get_length (this->input) / + (this->rate * 50)); else return 0; diff --git a/src/demuxers/demux_mpeg_block.c b/src/demuxers/demux_mpeg_block.c index 858ec6a79..5026774fd 100644 --- a/src/demuxers/demux_mpeg_block.c +++ b/src/demuxers/demux_mpeg_block.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: demux_mpeg_block.c,v 1.154 2003/01/10 11:57:16 miguelfreitas Exp $ + * $Id: demux_mpeg_block.c,v 1.155 2003/01/10 21:11:01 miguelfreitas Exp $ * * demultiplexer for mpeg 1/2 program streams * @@ -209,7 +209,8 @@ static void demux_mpeg_block_parse_pack (demux_mpeg_block_t *this, int preview_m buf->extra_info->input_length = this->input->get_length (this->input); if (this->rate) - buf->extra_info->input_time = buf->extra_info->input_pos * 1000 / (this->rate * 50); + buf->extra_info->input_time = (int)((int64_t)buf->extra_info->input_pos + * 1000 / (this->rate * 50)); if (p[3] == 0xBA) { /* program stream pack header */ @@ -236,7 +237,8 @@ static void demux_mpeg_block_parse_pack (demux_mpeg_block_t *this, int preview_m this->rate |= (p[11] >> 1); } - buf->extra_info->input_time = buf->extra_info->input_pos * 1000 / (this->rate * 50); + buf->extra_info->input_time = (int)((int64_t)buf->extra_info->input_pos + * 1000 / (this->rate * 50)); p += 12; @@ -964,7 +966,8 @@ static int demux_mpeg_block_get_stream_length (demux_plugin_t *this_gen) { */ if (this->rate) - return this->input->get_length (this->input) / (this->rate * 50); + return (int)((int64_t) 1000 * this->input->get_length (this->input) / + (this->rate * 50)); else return 0; } diff --git a/src/demuxers/demux_mpgaudio.c b/src/demuxers/demux_mpgaudio.c index bfc691c48..cb5cad46a 100644 --- a/src/demuxers/demux_mpgaudio.c +++ b/src/demuxers/demux_mpgaudio.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: demux_mpgaudio.c,v 1.88 2003/01/10 11:57:17 miguelfreitas Exp $ + * $Id: demux_mpgaudio.c,v 1.89 2003/01/10 21:11:04 miguelfreitas Exp $ * * demultiplexer for mpeg audio (i.e. mp3) streams * @@ -298,7 +298,8 @@ static int demux_mpgaudio_next (demux_mpgaudio_t *this, int decoder_flags) { { int len = this->input->get_length(this->input); if (len>0) - buf->extra_info->input_time = buf->extra_info->input_pos * this->stream_length * 1000 / len; + buf->extra_info->input_time = (int)((int64_t)buf->extra_info->input_pos + * this->stream_length * 1000 / len); else buf->extra_info->input_time = pts / 90; } @@ -457,7 +458,7 @@ static int demux_mpgaudio_get_stream_length (demux_plugin_t *this_gen) { demux_mpgaudio_t *this = (demux_mpgaudio_t *) this_gen; if (this->stream_length > 0) { - return this->stream_length; + return this->stream_length * 1000; } else return 0; } diff --git a/src/demuxers/demux_nsf.c b/src/demuxers/demux_nsf.c index 5744d1f19..83fb843bb 100644 --- a/src/demuxers/demux_nsf.c +++ b/src/demuxers/demux_nsf.c @@ -28,7 +28,7 @@ * For more information regarding the NSF format, visit: * http://www.tripoint.org/kevtris/nes/nsfspec.txt * - * $Id: demux_nsf.c,v 1.5 2003/01/10 11:57:17 miguelfreitas Exp $ + * $Id: demux_nsf.c,v 1.6 2003/01/10 21:11:05 miguelfreitas Exp $ */ #ifdef HAVE_CONFIG_H @@ -293,7 +293,7 @@ static int demux_nsf_get_status (demux_plugin_t *this_gen) { return this->status; } -/* return the approximate length in seconds */ +/* return the approximate length in miliseconds */ static int demux_nsf_get_stream_length (demux_plugin_t *this_gen) { return 0; diff --git a/src/demuxers/demux_ogg.c b/src/demuxers/demux_ogg.c index 578d074e3..c703846f9 100644 --- a/src/demuxers/demux_ogg.c +++ b/src/demuxers/demux_ogg.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: demux_ogg.c,v 1.59 2003/01/10 11:57:17 miguelfreitas Exp $ + * $Id: demux_ogg.c,v 1.60 2003/01/10 21:11:05 miguelfreitas Exp $ * * demultiplexer for ogg streams * @@ -251,8 +251,8 @@ static void send_ogg_buf (demux_ogg_t *this, #endif buf->extra_info->input_pos = this->input->get_current_pos (this->input); - buf->extra_info->input_time = buf->extra_info->input_pos * 8 * 1000 / - this->avg_bitrate; + buf->extra_info->input_time = (int)((uint64_t)buf->extra_info->input_pos + * 8 * 1000 / this->avg_bitrate); buf->type = this->buf_types[stream_num] ; buf->decoder_flags = decoder_flags; @@ -921,7 +921,8 @@ static int demux_ogg_get_stream_length (demux_plugin_t *this_gen) { demux_ogg_t *this = (demux_ogg_t *) this_gen; if (this->avg_bitrate) - return this->input->get_length (this->input) * 8 / this->avg_bitrate; + return (int)((int64_t)1000 * this->input->get_length (this->input) * 8 / + this->avg_bitrate); else return 0; } diff --git a/src/demuxers/demux_qt.c b/src/demuxers/demux_qt.c index 6808d4194..f0abd6a3a 100644 --- a/src/demuxers/demux_qt.c +++ b/src/demuxers/demux_qt.c @@ -30,7 +30,7 @@ * build_frame_table * free_qt_info * - * $Id: demux_qt.c,v 1.140 2003/01/10 11:57:17 miguelfreitas Exp $ + * $Id: demux_qt.c,v 1.141 2003/01/10 21:11:06 miguelfreitas Exp $ * */ @@ -2275,7 +2275,7 @@ static int demux_qt_get_stream_length (demux_plugin_t *this_gen) { demux_qt_t *this = (demux_qt_t *) this_gen; - return (this->qt->duration / this->qt->timescale); + return (int)((int64_t) 1000 * this->qt->duration / this->qt->timescale); } static uint32_t demux_qt_get_capabilities(demux_plugin_t *this_gen) { diff --git a/src/demuxers/demux_real.c b/src/demuxers/demux_real.c index eb06d1b3c..fc49ade20 100644 --- a/src/demuxers/demux_real.c +++ b/src/demuxers/demux_real.c @@ -28,7 +28,7 @@ * * Based on FFmpeg's libav/rm.c. * - * $Id: demux_real.c,v 1.32 2003/01/10 11:57:17 miguelfreitas Exp $ + * $Id: demux_real.c,v 1.33 2003/01/10 21:11:08 miguelfreitas Exp $ */ #ifdef HAVE_CONFIG_H @@ -786,8 +786,8 @@ static int demux_real_send_chunk(demux_plugin_t *this_gen) { buf->pts = pts; buf->extra_info->input_pos = this->input->get_current_pos (this->input); - buf->extra_info->input_time = buf->extra_info->input_pos * 8 * 1000 / - this->avg_bitrate ; + buf->extra_info->input_time = (int)((int64_t)buf->extra_info->input_pos + * 8 * 1000 / this->avg_bitrate); buf->type = this->video_buf_type; check_newpts (this, pts, PTS_VIDEO, 0); @@ -871,8 +871,8 @@ static int demux_real_send_chunk(demux_plugin_t *this_gen) { buf->content = buf->mem; buf->pts = pts; buf->extra_info->input_pos = this->input->get_current_pos (this->input); - buf->extra_info->input_time = buf->extra_info->input_pos * 8 * 1000 / - this->avg_bitrate ; + buf->extra_info->input_time = (int)((int64_t)buf->extra_info->input_pos + * 8 * 1000 / this->avg_bitrate); buf->type = this->audio_buf_type; buf->decoder_flags = 0; buf->size = size; @@ -1022,7 +1022,7 @@ static int demux_real_get_stream_length (demux_plugin_t *this_gen) { demux_real_t *this = (demux_real_t *) this_gen; /* duration is stored in the file as milliseconds */ - return this->duration / 1000; + return this->duration; } static uint32_t demux_real_get_capabilities(demux_plugin_t *this_gen) { diff --git a/src/demuxers/demux_realaudio.c b/src/demuxers/demux_realaudio.c index 269a90e4c..eee86b0b3 100644 --- a/src/demuxers/demux_realaudio.c +++ b/src/demuxers/demux_realaudio.c @@ -19,7 +19,7 @@ * * RealAudio File Demuxer by Mike Melanson (melanson@pcisys.net) * - * $Id: demux_realaudio.c,v 1.11 2003/01/10 11:57:17 miguelfreitas Exp $ + * $Id: demux_realaudio.c,v 1.12 2003/01/10 21:11:09 miguelfreitas Exp $ * */ @@ -260,12 +260,12 @@ static int demux_ra_get_status (demux_plugin_t *this_gen) { return this->status; } -/* return the approximate length in seconds */ +/* return the approximate length in miliseconds */ static int demux_ra_get_stream_length (demux_plugin_t *this_gen) { demux_ra_t *this = (demux_ra_t *) this_gen; - return (int)(this->data_size / this->wave.nAvgBytesPerSec); + return (int)((int64_t) this->data_size * 1000 / this->wave.nAvgBytesPerSec); } static uint32_t demux_ra_get_capabilities(demux_plugin_t *this_gen) { diff --git a/src/demuxers/demux_smjpeg.c b/src/demuxers/demux_smjpeg.c index 220efc491..c06e291f9 100644 --- a/src/demuxers/demux_smjpeg.c +++ b/src/demuxers/demux_smjpeg.c @@ -21,7 +21,7 @@ * For more information on the SMJPEG file format, visit: * http://www.lokigames.com/development/smjpeg.php3 * - * $Id: demux_smjpeg.c,v 1.34 2003/01/10 11:57:17 miguelfreitas Exp $ + * $Id: demux_smjpeg.c,v 1.35 2003/01/10 21:11:09 miguelfreitas Exp $ */ #ifdef HAVE_CONFIG_H @@ -394,8 +394,8 @@ static int demux_smjpeg_get_status (demux_plugin_t *this_gen) { static int demux_smjpeg_get_stream_length (demux_plugin_t *this_gen) { demux_smjpeg_t *this = (demux_smjpeg_t *) this_gen; - /* return total running time in seconds */ - return this->duration / 1000; + /* return total running time in miliseconds */ + return this->duration; } static uint32_t demux_smjpeg_get_capabilities(demux_plugin_t *this_gen) { diff --git a/src/demuxers/demux_snd.c b/src/demuxers/demux_snd.c index 8d78475d4..9570e0ed9 100644 --- a/src/demuxers/demux_snd.c +++ b/src/demuxers/demux_snd.c @@ -19,7 +19,7 @@ * * SND/AU File Demuxer by Mike Melanson (melanson@pcisys.net) * - * $Id: demux_snd.c,v 1.23 2003/01/10 11:57:18 miguelfreitas Exp $ + * $Id: demux_snd.c,v 1.24 2003/01/10 21:11:10 miguelfreitas Exp $ * */ @@ -295,12 +295,12 @@ static int demux_snd_get_status (demux_plugin_t *this_gen) { return this->status; } -/* return the approximate length in seconds */ +/* return the approximate length in miliseconds */ static int demux_snd_get_stream_length (demux_plugin_t *this_gen) { demux_snd_t *this = (demux_snd_t *) this_gen; - return this->running_time; + return this->running_time * 1000; } static uint32_t demux_snd_get_capabilities(demux_plugin_t *this_gen) { diff --git a/src/demuxers/demux_ts.c b/src/demuxers/demux_ts.c index a2dff0100..aae2d337d 100644 --- a/src/demuxers/demux_ts.c +++ b/src/demuxers/demux_ts.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: demux_ts.c,v 1.74 2003/01/04 14:48:12 miguelfreitas Exp $ + * $Id: demux_ts.c,v 1.75 2003/01/10 21:11:10 miguelfreitas Exp $ * * Demultiplexer for MPEG2 Transport Streams. * @@ -1762,7 +1762,8 @@ static int demux_ts_get_stream_length (demux_plugin_t *this_gen) { demux_ts_t*this = (demux_ts_t*)this_gen; if (this->rate) - return this->input->get_length (this->input) / (this->rate * 50); + return (int)((int64_t) this->input->get_length (this->input) + * 1000 / (this->rate * 50)); else return 0; } diff --git a/src/demuxers/demux_voc.c b/src/demuxers/demux_voc.c index 21b00d5cd..a26aa8af4 100644 --- a/src/demuxers/demux_voc.c +++ b/src/demuxers/demux_voc.c @@ -23,7 +23,7 @@ * It will only play that block if it is PCM data. More variations will be * supported as they are encountered. * - * $Id: demux_voc.c,v 1.23 2003/01/10 11:57:18 miguelfreitas Exp $ + * $Id: demux_voc.c,v 1.24 2003/01/10 21:11:11 miguelfreitas Exp $ * */ @@ -288,12 +288,12 @@ static int demux_voc_get_status (demux_plugin_t *this_gen) { return this->status; } -/* return the approximate length in seconds */ +/* return the approximate length in miliseconds */ static int demux_voc_get_stream_length (demux_plugin_t *this_gen) { demux_voc_t *this = (demux_voc_t *) this_gen; - return this->running_time; + return this->running_time * 1000; } static uint32_t demux_voc_get_capabilities(demux_plugin_t *this_gen) { diff --git a/src/demuxers/demux_vox.c b/src/demuxers/demux_vox.c index 605939c48..f2bbc5b94 100644 --- a/src/demuxers/demux_vox.c +++ b/src/demuxers/demux_vox.c @@ -20,7 +20,7 @@ * VOX Demuxer by Mike Melanson (melanson@pcisys.net) * This a demuxer for .vox files containing raw Dialogic ADPCM data. * - * $Id: demux_vox.c,v 1.2 2003/01/10 11:57:18 miguelfreitas Exp $ + * $Id: demux_vox.c,v 1.3 2003/01/10 21:11:12 miguelfreitas Exp $ * */ @@ -177,12 +177,13 @@ static int demux_vox_get_status (demux_plugin_t *this_gen) { return this->status; } -/* return the approximate length in seconds */ +/* return the approximate length in miliseconds */ static int demux_vox_get_stream_length (demux_plugin_t *this_gen) { demux_vox_t *this = (demux_vox_t *) this_gen; - return this->input->get_length(this->input) * 2 / DIALOGIC_SAMPLERATE; + return (int)((int64_t)this->input->get_length(this->input) + * 2 * 1000 / DIALOGIC_SAMPLERATE); } static uint32_t demux_vox_get_capabilities(demux_plugin_t *this_gen) { diff --git a/src/demuxers/demux_wav.c b/src/demuxers/demux_wav.c index d73c531be..916c12280 100644 --- a/src/demuxers/demux_wav.c +++ b/src/demuxers/demux_wav.c @@ -20,7 +20,7 @@ * MS WAV File Demuxer by Mike Melanson (melanson@pcisys.net) * based on WAV specs that are available far and wide * - * $Id: demux_wav.c,v 1.32 2003/01/10 11:57:18 miguelfreitas Exp $ + * $Id: demux_wav.c,v 1.33 2003/01/10 21:11:12 miguelfreitas Exp $ * */ @@ -285,12 +285,12 @@ static int demux_wav_get_status (demux_plugin_t *this_gen) { return this->status; } -/* return the approximate length in seconds */ +/* return the approximate length in miliseconds */ static int demux_wav_get_stream_length (demux_plugin_t *this_gen) { demux_wav_t *this = (demux_wav_t *) this_gen; - return (int)(this->data_size / this->wave->nAvgBytesPerSec); + return (int)((int64_t) this->data_size * 1000 / this->wave->nAvgBytesPerSec); } static uint32_t demux_wav_get_capabilities(demux_plugin_t *this_gen) { diff --git a/src/demuxers/demux_yuv4mpeg2.c b/src/demuxers/demux_yuv4mpeg2.c index 127226f3f..3a2e3df28 100644 --- a/src/demuxers/demux_yuv4mpeg2.c +++ b/src/demuxers/demux_yuv4mpeg2.c @@ -22,7 +22,7 @@ * tools, visit: * http://mjpeg.sourceforge.net/ * - * $Id: demux_yuv4mpeg2.c,v 1.16 2003/01/04 14:48:12 miguelfreitas Exp $ + * $Id: demux_yuv4mpeg2.c,v 1.17 2003/01/10 21:11:12 miguelfreitas Exp $ */ #ifdef HAVE_CONFIG_H @@ -311,8 +311,8 @@ static int demux_yuv4mpeg2_get_stream_length (demux_plugin_t *this_gen) { demux_yuv4mpeg2_t *this = (demux_yuv4mpeg2_t *) this_gen; - return (this->data_size / (this->frame_size + Y4M_FRAME_SIGNATURE_SIZE) / - this->fps); + return (int)((int64_t) this->data_size * 1000 / + (this->frame_size + Y4M_FRAME_SIGNATURE_SIZE) / this->fps); } static uint32_t demux_yuv4mpeg2_get_capabilities(demux_plugin_t *this_gen) { diff --git a/src/xine-engine/xine.c b/src/xine-engine/xine.c index 7f38bb5f7..be02eff0c 100644 --- a/src/xine-engine/xine.c +++ b/src/xine-engine/xine.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: xine.c,v 1.211 2003/01/10 19:15:17 miguelfreitas Exp $ + * $Id: xine.c,v 1.212 2003/01/10 21:11:12 miguelfreitas Exp $ * * top-level xine functions * @@ -1100,7 +1100,7 @@ int xine_get_pos_length (xine_stream_t *stream, int *pos_stream, pthread_mutex_unlock( &stream->current_extra_info_lock ); } if (length_time) - *length_time = xine_get_stream_length (stream) * 1000; + *length_time = xine_get_stream_length (stream); return 1; } -- cgit v1.2.3