summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/demuxers/demux_ipmovie.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/demuxers/demux_ipmovie.c b/src/demuxers/demux_ipmovie.c
index 504c3286b..bf90bebf6 100644
--- a/src/demuxers/demux_ipmovie.c
+++ b/src/demuxers/demux_ipmovie.c
@@ -23,7 +23,7 @@
* For more information regarding the Interplay MVE file format, visit:
* http://www.pcisys.net/~melanson/codecs/
*
- * $Id: demux_ipmovie.c,v 1.23 2004/04/10 09:45:44 valtri Exp $
+ * $Id: demux_ipmovie.c,v 1.24 2004/05/29 20:20:55 tmmm Exp $
*/
#ifdef HAVE_CONFIG_H
@@ -314,10 +314,12 @@ static int process_ipmovie_chunk(demux_ipmovie_t *this) {
current_file_pos = this->input->get_current_pos(this->input);
/* figure out the number of audio frames */
- if (this->audio_type == BUF_AUDIO_LPCM_LE)
+ if (this->audio_type == BUF_AUDIO_LPCM_LE) {
+ opcode_size -= 6;
this->audio_frame_count +=
(opcode_size / this->wave.nChannels / (this->wave.wBitsPerSample / 8));
- else
+ this->input->seek(this->input, 6, SEEK_CUR);
+ } else
this->audio_frame_count +=
(opcode_size - 6) / this->wave.nChannels;
audio_pts = 90000;
@@ -477,6 +479,8 @@ static int process_ipmovie_chunk(demux_ipmovie_t *this) {
buf->extra_info->input_length = this->data_size;
buf->extra_info->input_time = this->video_pts / 90;
buf->pts = this->video_pts;
+ buf->decoder_flags = BUF_FLAG_FRAMERATE;
+ buf->decoder_info[0] = this->frame_pts_inc;
if (opcode_size > buf->max_size)
buf->size = buf->max_size;