summaryrefslogtreecommitdiff
path: root/libav/avidec.c
diff options
context:
space:
mode:
authorFabrice Bellard <fabrice@bellard.org>2001-09-24 23:26:46 +0000
committerFabrice Bellard <fabrice@bellard.org>2001-09-24 23:26:46 +0000
commit46a3d0685df667158628a8037faa0383f9bd4c22 (patch)
tree2beb53820c1270a5d56e0417a21a56c27ea89a29 /libav/avidec.c
parent96baaa6affc11ebd71b8f84c11086c92e1c7248b (diff)
correct pcm audio format handling
Originally committed as revision 147 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libav/avidec.c')
-rw-r--r--libav/avidec.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/libav/avidec.c b/libav/avidec.c
index 342bfd0f07..a3d5a8fa6d 100644
--- a/libav/avidec.c
+++ b/libav/avidec.c
@@ -51,7 +51,7 @@ int avi_read_header(AVFormatContext *s, AVFormatParameters *ap)
ByteIOContext *pb = &s->pb;
UINT32 tag, tag1;
int codec_type, stream_index, size, frame_period, bit_rate;
- int i;
+ int i, bps;
AVStream *st;
avi = malloc(sizeof(AVIContext));
@@ -169,14 +169,16 @@ int avi_read_header(AVFormatContext *s, AVFormatParameters *ap)
tag1 = get_le16(pb);
st->codec.codec_type = CODEC_TYPE_AUDIO;
st->codec.codec_tag = tag1;
- st->codec.codec_id = codec_get_id(codec_wav_tags, tag1);
#ifdef DEBUG
printf("audio: 0x%x\n", tag1);
#endif
st->codec.channels = get_le16(pb);
st->codec.sample_rate = get_le32(pb);
st->codec.bit_rate = get_le32(pb) * 8;
- url_fskip(pb, size - 3 * 4);
+ get_le16(pb); /* block align */
+ bps = get_le16(pb);
+ st->codec.codec_id = wav_codec_get_id(tag1, bps);
+ url_fskip(pb, size - 4 * 4);
break;
default:
url_fskip(pb, size);