27#ifndef AVCODEC_CABAC_FUNCTIONS_H
28#define AVCODEC_CABAC_FUNCTIONS_H
38#ifndef UNCHECKED_BITSTREAM_READER
39#define UNCHECKED_BITSTREAM_READER !CONFIG_SAFE_BITSTREAM_READER
63#if !defined(get_cabac_bypass) || !defined(get_cabac_terminate)
66 c->low+= (
c->bytestream[0]<<9) + (
c->bytestream[1]<<1);
68 c->low+=
c->bytestream[0]<<1;
71#if !UNCHECKED_BITSTREAM_READER
72 if (
c->bytestream <
c->bytestream_end)
78#ifndef get_cabac_terminate
80 int shift= (uint32_t)(
c->range - 0x100)>>31;
88#ifndef get_cabac_inline
93 x=
c->low ^ (
c->low-1);
102 x+= (
c->bytestream[0]<<9) + (
c->bytestream[1]<<1);
104 x+=
c->bytestream[0]<<1;
108#if !UNCHECKED_BITSTREAM_READER
109 if (
c->bytestream <
c->bytestream_end)
115#ifndef get_cabac_inline
121 c->range -= RangeLPS;
125 c->range += (RangeLPS -
c->range) & lps_mask;
132 c->range<<= lps_mask;
148#ifndef get_cabac_bypass
166#ifndef get_cabac_bypass_sign
186#ifndef get_cabac_terminate
193 return c->bytestream -
c->bytestream_start;
204 const uint8_t *ptr =
c->bytestream;
212 if ((
int) (
c->bytestream_end - ptr) < n)
static double val(void *priv, double ch)
int ff_init_cabac_decoder(CABACContext *c, const uint8_t *buf, int buf_size)
Context Adaptive Binary Arithmetic Coder.
#define H264_LAST_COEFF_FLAG_OFFSET_8x8_OFFSET
#define H264_LPS_RANGE_OFFSET
#define H264_MLPS_STATE_OFFSET
#define H264_NORM_SHIFT_OFFSET
const uint8_t ff_h264_cabac_tables[512+4 *2 *64+4 *64+63]
static void refill(CABACContext *c)
static void refill2(CABACContext *c)
static void renorm_cabac_decoder_once(CABACContext *c)
static const uint8_t *const ff_h264_last_coeff_flag_offset_8x8
static const uint8_t *const ff_h264_norm_shift
static av_unused int get_cabac_terminate(CABACContext *c)
av_unused static av_noinline int get_cabac_noinline(CABACContext *c, uint8_t *const state)
static av_unused int get_cabac(CABACContext *c, uint8_t *const state)
static const uint8_t *const ff_h264_lps_range
static av_unused const uint8_t * skip_bytes(CABACContext *c, int n)
Skip n bytes and reset the decoder.
static const uint8_t *const ff_h264_mlps_state
#define i(width, name, range_min, range_max)
#define bit(string, value)
static struct @346255127015250356166251341105367306144006377143 state
static int shift(int a, int b)
Macro definitions for various function/variable attributes.
#define get_cabac_bypass_sign
static const uint16_t mask[17]