summaryrefslogtreecommitdiff
path: root/libavformat/wvdec.c
diff options
context:
space:
mode:
Diffstat (limited to 'libavformat/wvdec.c')
-rw-r--r--libavformat/wvdec.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/libavformat/wvdec.c b/libavformat/wvdec.c
index 82526563ec..b6932e65af 100644
--- a/libavformat/wvdec.c
+++ b/libavformat/wvdec.c
@@ -153,11 +153,18 @@ static int wv_read_block_header(AVFormatContext *ctx, AVIOContext *pb)
case 3:
chmask = avio_rl32(pb);
break;
- case 5:
+ case 4:
avio_skip(pb, 1);
chan |= (avio_r8(pb) & 0xF) << 8;
+ chan += 1;
chmask = avio_rl24(pb);
break;
+ case 5:
+ avio_skip(pb, 1);
+ chan |= (avio_r8(pb) & 0xF) << 8;
+ chan += 1;
+ chmask = avio_rl32(pb);
+ break;
default:
av_log(ctx, AV_LOG_ERROR,
"Invalid channel info size %d\n", size);