show_bits() is undefined when the number of bits is less than or equal to
zero.
---
libavcodec/proresdec.c | 8 ++++++--
1 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/libavcodec/proresdec.c b/libavcodec/proresdec.c
index 759c10b..25c7f8d 100644
--- a/libavcodec/proresdec.c
+++ b/libavcodec/proresdec.c
@@ -403,6 +403,10 @@ static uint8_t run_to_cb_index[16] =
static uint8_t lev_to_cb_index[10] = { 0, 6, 3, 5, 0, 1, 1, 1, 1, 2 };
+static inline unsigned show_bits0(GetBitContext *s, int n)
+{
+ return n <= 0 ? 0 : show_bits(s, n);
+}
/**
* Decode AC coefficients for all blocks in a slice.
@@ -427,13 +431,13 @@ static inline void decode_ac_coeffs(GetBitContext *gb,
DCTELEM *out,
lev_cb_index = lev_to_cb_index[FFMIN(level, 9)];
bits_left = get_bits_left(gb);
- if (bits_left <= 8 && !show_bits(gb, bits_left))
+ if (bits_left <= 8 && !show_bits0(gb, bits_left))
return;
run = decode_vlc_codeword(gb, ac_codebook[run_cb_index]);
bits_left = get_bits_left(gb);
- if (bits_left <= 8 && !show_bits(gb, bits_left))
+ if (bits_left <= 8 && !show_bits0(gb, bits_left))
return;
level = decode_vlc_codeword(gb, ac_codebook[lev_cb_index]) + 1;
--
1.7.3.1
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel