diff --git a/src/enc/vp8l_enc.c b/src/enc/vp8l_enc.c index 44cb0b6e5..1cac0ab23 100644 --- a/src/enc/vp8l_enc.c +++ b/src/enc/vp8l_enc.c @@ -1084,7 +1084,7 @@ static int ApplyPredictFilter(VP8LEncoder* const enc, int width, int height, } VP8LPutBits(bw, TRANSFORM_PRESENT, 1); VP8LPutBits(bw, PREDICTOR_TRANSFORM, 2); - assert(pred_bits >= MIN_TRANSFORM_BITS); + assert(pred_bits >= MIN_TRANSFORM_BITS && pred_bits <= MAX_TRANSFORM_BITS); VP8LPutBits(bw, pred_bits - MIN_TRANSFORM_BITS, NUM_TRANSFORM_BITS); return EncodeImageNoHuffman( bw, enc->transform_data_, (VP8LHashChain*)&enc->hash_chain_, @@ -1108,7 +1108,8 @@ static int ApplyCrossColorFilter(const VP8LEncoder* const enc, int width, } VP8LPutBits(bw, TRANSFORM_PRESENT, 1); VP8LPutBits(bw, CROSS_COLOR_TRANSFORM, 2); - assert(ccolor_transform_bits >= MIN_TRANSFORM_BITS); + assert(ccolor_transform_bits >= MIN_TRANSFORM_BITS && + ccolor_transform_bits <= MAX_TRANSFORM_BITS); VP8LPutBits(bw, ccolor_transform_bits - MIN_TRANSFORM_BITS, NUM_TRANSFORM_BITS); return EncodeImageNoHuffman( diff --git a/src/enc/vp8li_enc.h b/src/enc/vp8li_enc.h index 2f04b6db8..59006cf20 100644 --- a/src/enc/vp8li_enc.h +++ b/src/enc/vp8li_enc.h @@ -34,7 +34,7 @@ extern "C" { #endif // maximum value of transform_bits_ in VP8LEncoder. -#define MAX_TRANSFORM_BITS 6 +#define MAX_TRANSFORM_BITS (MIN_TRANSFORM_BITS + (1 << NUM_TRANSFORM_BITS) - 1) typedef enum { kEncoderNone = 0,