27 #ifndef AVCODEC_CABAC_FUNCTIONS_H
28 #define AVCODEC_CABAC_FUNCTIONS_H
35 #ifndef UNCHECKED_BITSTREAM_READER
36 #define UNCHECKED_BITSTREAM_READER !CONFIG_SAFE_BITSTREAM_READER
61 #if !UNCHECKED_BITSTREAM_READER
75 #ifndef get_cabac_inline
91 #if !UNCHECKED_BITSTREAM_READER
102 c->
range -= RangeLPS;
113 c->
range<<= lps_mask;
129 #ifndef get_cabac_bypass
147 #ifndef get_cabac_bypass_sign
160 return (val^mask)-
mask;
const char const char void * val
static int shift(int a, int b)
CABAC_TABLE_CONST uint8_t ff_h264_cabac_tables[512+4 *2 *64+4 *64+63]
const uint8_t * bytestream_end
static CABAC_TABLE_CONST uint8_t *const ff_h264_mlps_state
static void renorm_cabac_decoder_once(CABACContext *c)
static int av_unused get_cabac(CABACContext *c, uint8_t *const state)
static int av_noinline av_unused get_cabac_noinline(CABACContext *c, uint8_t *const state)
const uint8_t * bytestream
static av_unused const uint8_t * skip_bytes(CABACContext *c, int n)
Skip n bytes and reset the decoder.
static CABAC_TABLE_CONST uint8_t *const ff_h264_lps_range
static av_always_inline int get_cabac_inline(CABACContext *c, uint8_t *const state)
static const uint16_t mask[17]
const uint8_t * bytestream_start
#define H264_LAST_COEFF_FLAG_OFFSET_8x8_OFFSET
static int av_unused get_cabac_terminate(CABACContext *c)
static void refill(CABACContext *c)
static CABAC_TABLE_CONST uint8_t *const ff_h264_last_coeff_flag_offset_8x8
#define H264_MLPS_STATE_OFFSET
static av_always_inline int get_cabac_bypass_sign(CABACContext *c, int val)
static int av_unused get_cabac_bypass(CABACContext *c)
#define H264_NORM_SHIFT_OFFSET
static CABAC_TABLE_CONST uint8_t *const ff_h264_norm_shift
#define CABAC_TABLE_CONST
static void refill2(CABACContext *c)
void ff_init_cabac_decoder(CABACContext *c, const uint8_t *buf, int buf_size)
Context Adaptive Binary Arithmetic Coder.
#define H264_LPS_RANGE_OFFSET