summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/demuxers/demux.h4
-rw-r--r--src/demuxers/demux_aiff.c6
-rw-r--r--src/demuxers/demux_asf.c12
-rw-r--r--src/demuxers/demux_avi.c4
-rw-r--r--src/demuxers/demux_cda.c5
-rw-r--r--src/demuxers/demux_cdda.c7
-rw-r--r--src/demuxers/demux_eawve.c6
-rw-r--r--src/demuxers/demux_film.c4
-rw-r--r--src/demuxers/demux_mpeg.c14
-rw-r--r--src/demuxers/demux_mpeg_block.c11
-rw-r--r--src/demuxers/demux_mpgaudio.c7
-rw-r--r--src/demuxers/demux_nsf.c4
-rw-r--r--src/demuxers/demux_ogg.c9
-rw-r--r--src/demuxers/demux_qt.c4
-rw-r--r--src/demuxers/demux_real.c12
-rw-r--r--src/demuxers/demux_realaudio.c6
-rw-r--r--src/demuxers/demux_smjpeg.c6
-rw-r--r--src/demuxers/demux_snd.c6
-rw-r--r--src/demuxers/demux_ts.c5
-rw-r--r--src/demuxers/demux_voc.c6
-rw-r--r--src/demuxers/demux_vox.c7
-rw-r--r--src/demuxers/demux_wav.c6
-rw-r--r--src/demuxers/demux_yuv4mpeg2.c6
-rw-r--r--src/xine-engine/xine.c4
24 files changed, 87 insertions, 74 deletions
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;
}