|
@@ -81,6 +81,7 @@ typedef struct { |
|
|
const uint8_t *bytestream_end; |
|
|
const uint8_t *bytestream_end; |
|
|
|
|
|
|
|
|
uint16_t contexts[DIRAC_CTX_COUNT]; |
|
|
uint16_t contexts[DIRAC_CTX_COUNT]; |
|
|
|
|
|
int error; |
|
|
} DiracArith; |
|
|
} DiracArith; |
|
|
|
|
|
|
|
|
extern const uint8_t ff_dirac_next_ctx[DIRAC_CTX_COUNT]; |
|
|
extern const uint8_t ff_dirac_next_ctx[DIRAC_CTX_COUNT]; |
|
@@ -173,6 +174,7 @@ static inline int dirac_get_arith_uint(DiracArith *c, int follow_ctx, int data_c |
|
|
while (!dirac_get_arith_bit(c, follow_ctx)) { |
|
|
while (!dirac_get_arith_bit(c, follow_ctx)) { |
|
|
if (ret >= 0x40000000) { |
|
|
if (ret >= 0x40000000) { |
|
|
av_log(NULL, AV_LOG_ERROR, "dirac_get_arith_uint overflow\n"); |
|
|
av_log(NULL, AV_LOG_ERROR, "dirac_get_arith_uint overflow\n"); |
|
|
|
|
|
c->error = AVERROR_INVALIDDATA; |
|
|
return -1; |
|
|
return -1; |
|
|
} |
|
|
} |
|
|
ret <<= 1; |
|
|
ret <<= 1; |
|
|