aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKostya Shishkov <kostya.shishkov@gmail.com>2009-04-23 18:21:16 +0000
committerKostya Shishkov <kostya.shishkov@gmail.com>2009-04-23 18:21:16 +0000
commit6e0f746d3eac0b07b9f5e4216d45ad70ca17fe62 (patch)
treeafea93ed0feb1b51abd8c86c973501a212ce02ff
parent0638c2ae3ce3051d09b1c5d386443c0fdbc8f3cc (diff)
downloadffmpeg-6e0f746d3eac0b07b9f5e4216d45ad70ca17fe62.tar.gz
Handle WavPack INT32INFO chunks with nonzero post shift
Originally committed as revision 18668 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r--libavcodec/wavpack.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/libavcodec/wavpack.c b/libavcodec/wavpack.c
index 4a7a9e5c6b..e0db0168aa 100644
--- a/libavcodec/wavpack.c
+++ b/libavcodec/wavpack.c
@@ -780,12 +780,14 @@ static int wavpack_decode_frame(AVCodecContext *avctx,
got_hybrid = 1;
break;
case WP_ID_INT32INFO:
- if(size != 4 || *buf){
+ if(size != 4){
av_log(avctx, AV_LOG_ERROR, "Invalid INT32INFO, size = %i, sent_bits = %i\n", size, *buf);
buf += ssize;
continue;
}
- if(buf[1])
+ if(buf[0])
+ s->post_shift = buf[0];
+ else if(buf[1])
s->shift = buf[1];
else if(buf[2]){
s->and = s->or = 1;