flacdec: Check curr_bps after wasted bits are subtracted.
authorJustin Ruggles <justin.ruggles@gmail.com>
Wed, 4 Mar 2009 23:10:40 +0000 (23:10 +0000)
committerJustin Ruggles <justin.ruggles@gmail.com>
Wed, 4 Mar 2009 23:10:40 +0000 (23:10 +0000)
Originally committed as revision 17813 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/flacdec.c

index b8ae73f..73e524a 100644 (file)
@@ -432,10 +432,6 @@ static inline int decode_subframe(FLACContext *s, int channel)
         if (s->decorrelation == LEFT_SIDE || s->decorrelation == MID_SIDE)
             s->curr_bps++;
     }
-    if (s->curr_bps > 32) {
-        ff_log_missing_feature(s->avctx, "decorrelated bit depth > 32", 0);
-        return -1;
-    }
 
     if (get_bits1(&s->gb)) {
         av_log(s->avctx, AV_LOG_ERROR, "invalid subframe padding\n");
@@ -449,6 +445,10 @@ static inline int decode_subframe(FLACContext *s, int channel)
             wasted++;
         s->curr_bps -= wasted;
     }
+    if (s->curr_bps > 32) {
+        ff_log_missing_feature(s->avctx, "decorrelated bit depth > 32", 0);
+        return -1;
+    }
 
 //FIXME use av_log2 for types
     if (type == 0) {