X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fproresdec.c;h=8a53719d9fae93b729f1c5929708fdf162159c71;hb=e3e8eab359238486dc233f7aa89b7bb3cb19ec38;hp=144fa26f8c624a4ceb931c606042c1648fc5e794;hpb=c0de9a23c7080e2fac8f879b9d9a0ce2b64ea953;p=ffmpeg diff --git a/libavcodec/proresdec.c b/libavcodec/proresdec.c index 144fa26f8c6..8a53719d9fa 100644 --- a/libavcodec/proresdec.c +++ b/libavcodec/proresdec.c @@ -34,13 +34,13 @@ #include "libavutil/intmath.h" #include "avcodec.h" -#include "dsputil.h" +#include "idctdsp.h" #include "internal.h" #include "proresdata.h" #include "proresdsp.h" #include "get_bits.h" -typedef struct { +typedef struct ProresThreadData { const uint8_t *index; ///< pointers to the data of this slice int slice_num; int x_pos, y_pos; @@ -51,7 +51,7 @@ typedef struct { DECLARE_ALIGNED(16, int16_t, qmat_chroma_scaled)[64]; } ProresThreadData; -typedef struct { +typedef struct ProresContext { ProresDSPContext dsp; AVFrame *frame; ScanTable scantable; @@ -365,6 +365,7 @@ static inline void decode_dc_coeffs(GetBitContext *gb, int16_t *out, } } +#define MAX_PADDING 16 /** * Decode AC coefficients for all blocks in a slice. @@ -389,7 +390,7 @@ static inline int decode_ac_coeffs(GetBitContext *gb, int16_t *out, lev_cb_index = ff_prores_lev_to_cb_index[FFMIN(level, 9)]; bits_left = get_bits_left(gb); - if (bits_left <= 0 || (bits_left <= 8 && !show_bits(gb, bits_left))) + if (bits_left <= 0 || (bits_left <= MAX_PADDING && !show_bits(gb, bits_left))) return 0; run = decode_vlc_codeword(gb, ff_prores_ac_codebook[run_cb_index]); @@ -397,7 +398,7 @@ static inline int decode_ac_coeffs(GetBitContext *gb, int16_t *out, return AVERROR_INVALIDDATA; bits_left = get_bits_left(gb); - if (bits_left <= 0 || (bits_left <= 8 && !show_bits(gb, bits_left))) + if (bits_left <= 0 || (bits_left <= MAX_PADDING && !show_bits(gb, bits_left))) return AVERROR_INVALIDDATA; level = decode_vlc_codeword(gb, ff_prores_ac_codebook[lev_cb_index]) + 1; @@ -777,5 +778,5 @@ AVCodec ff_prores_decoder = { .init = decode_init, .close = decode_close, .decode = decode_frame, - .capabilities = CODEC_CAP_DR1 | CODEC_CAP_SLICE_THREADS, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_SLICE_THREADS, };