From b59ebf6220bb35ce68780bede40d376ba386d431 Mon Sep 17 00:00:00 2001 From: Mike Melanson Date: Thu, 18 Sep 2003 04:25:41 +0000 Subject: provisions for raw PCM audio Originally committed as revision 2291 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavformat/ipmovie.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'libavformat') diff --git a/libavformat/ipmovie.c b/libavformat/ipmovie.c index a290da734f..cf8894147c 100644 --- a/libavformat/ipmovie.c +++ b/libavformat/ipmovie.c @@ -133,6 +133,12 @@ static int load_ipmovie_packet(IPMVEContext *s, ByteIOContext *pb, if (s->audio_chunk_offset) { + /* adjust for PCM audio by skipping chunk header */ + if (s->audio_type != CODEC_ID_INTERPLAY_DPCM) { + s->audio_chunk_offset += 6; + s->audio_chunk_size -= 6; + } + url_fseek(pb, s->audio_chunk_offset, SEEK_SET); s->audio_chunk_offset = 0; @@ -568,8 +574,9 @@ static int ipmovie_read_header(AVFormatContext *s, st->codec.sample_rate = ipmovie->audio_sample_rate; st->codec.bits_per_sample = ipmovie->audio_bits; st->codec.bit_rate = st->codec.channels * st->codec.sample_rate * - st->codec.bits_per_sample / - (st->codec.codec_id == CODEC_ID_INTERPLAY_DPCM) ? 2 : 1; + st->codec.bits_per_sample; + if (st->codec.codec_id == CODEC_ID_INTERPLAY_DPCM) + st->codec.bit_rate /= 2; st->codec.block_align = st->codec.channels * st->codec.bits_per_sample; return 0; -- cgit v1.2.3