FFmpeg
|
#include "libavutil/attributes.h"
#include "libavutil/avassert.h"
#include "config.h"
#include "cabac.h"
#include "cabac_functions.h"
#include "h264dec.h"
#include "h264data.h"
#include "h264_mvpred.h"
#include "mpegutils.h"
Go to the source code of this file.
Macros | |
#define | CABAC(h) 1 |
#define | UNCHECKED_BITSTREAM_READER 1 |
#define | INT_BIT (CHAR_BIT * sizeof(int)) |
#define | DECODE_CABAC_MB_MVD(sl, list, n) |
#define | CABAC_ON_STACK |
#define | CC &cc |
#define | DECODE_SIGNIFICANCE(coefs, sig_off, last_off) |
#define | STORE_BLOCK(type) |
Functions | |
void | ff_h264_init_cabac_states (const H264Context *h, H264SliceContext *sl) |
static av_always_inline uint16_t | pack8to16 (unsigned a, unsigned b) |
static int | decode_cabac_field_decoding_flag (const H264Context *h, H264SliceContext *sl) |
static int | decode_cabac_intra_mb_type (H264SliceContext *sl, int ctx_base, int intra_slice) |
static int | decode_cabac_mb_skip (const H264Context *h, H264SliceContext *sl, int mb_x, int mb_y) |
static int | decode_cabac_mb_intra4x4_pred_mode (H264SliceContext *sl, int pred_mode) |
static int | decode_cabac_mb_chroma_pre_mode (const H264Context *h, H264SliceContext *sl) |
static int | decode_cabac_mb_cbp_luma (H264SliceContext *sl) |
static int | decode_cabac_mb_cbp_chroma (H264SliceContext *sl) |
static int | decode_cabac_p_mb_sub_type (H264SliceContext *sl) |
static int | decode_cabac_b_mb_sub_type (H264SliceContext *sl) |
static int | decode_cabac_mb_ref (H264SliceContext *sl, int list, int n) |
static int | decode_cabac_mb_mvd (H264SliceContext *sl, int ctxbase, int amvd, int *mvda) |
static av_always_inline int | get_cabac_cbf_ctx (H264SliceContext *sl, int cat, int idx, int max_coeff, int is_dc) |
static av_always_inline void | decode_cabac_residual_internal (const H264Context *h, H264SliceContext *sl, int16_t *block, int cat, int n, const uint8_t *scantable, const uint32_t *qmul, int max_coeff, int is_dc, int chroma422) |
static av_noinline void | decode_cabac_residual_dc_internal (const H264Context *h, H264SliceContext *sl, int16_t *block, int cat, int n, const uint8_t *scantable, int max_coeff) |
static av_noinline void | decode_cabac_residual_dc_internal_422 (const H264Context *h, H264SliceContext *sl, int16_t *block, int cat, int n, const uint8_t *scantable, int max_coeff) |
static av_noinline void | decode_cabac_residual_nondc_internal (const H264Context *h, H264SliceContext *sl, int16_t *block, int cat, int n, const uint8_t *scantable, const uint32_t *qmul, int max_coeff) |
static av_always_inline void | decode_cabac_residual_dc (const H264Context *h, H264SliceContext *sl, int16_t *block, int cat, int n, const uint8_t *scantable, int max_coeff) |
static av_always_inline void | decode_cabac_residual_dc_422 (const H264Context *h, H264SliceContext *sl, int16_t *block, int cat, int n, const uint8_t *scantable, int max_coeff) |
static av_always_inline void | decode_cabac_residual_nondc (const H264Context *h, H264SliceContext *sl, int16_t *block, int cat, int n, const uint8_t *scantable, const uint32_t *qmul, int max_coeff) |
static av_always_inline void | decode_cabac_luma_residual (const H264Context *h, H264SliceContext *sl, const uint8_t *scan, const uint8_t *scan8x8, int pixel_shift, int mb_type, int cbp, int p) |
int | ff_h264_decode_mb_cabac (const H264Context *h, H264SliceContext *sl) |
Decode a macroblock. More... | |
Variables | |
static const int8_t | cabac_context_init_I [1024][2] |
static const int8_t | cabac_context_init_PB [3][1024][2] |
H.264 / AVC / MPEG-4 part10 cabac decoding.
Definition in file h264_cabac.c.
#define CABAC | ( | h | ) | 1 |
Definition at line 28 of file h264_cabac.c.
#define UNCHECKED_BITSTREAM_READER 1 |
Definition at line 29 of file h264_cabac.c.
#define INT_BIT (CHAR_BIT * sizeof(int)) |
Definition at line 30 of file h264_cabac.c.
#define DECODE_CABAC_MB_MVD | ( | sl, | |
list, | |||
n | |||
) |
Definition at line 1543 of file h264_cabac.c.
#define CABAC_ON_STACK |
#define CC &cc |
#define DECODE_SIGNIFICANCE | ( | coefs, | |
sig_off, | |||
last_off | |||
) |
#define STORE_BLOCK | ( | type | ) |
void ff_h264_init_cabac_states | ( | const H264Context * | h, |
H264SliceContext * | sl | ||
) |
Definition at line 1262 of file h264_cabac.c.
Referenced by decode_slice().
|
static |
Definition at line 1283 of file h264_cabac.c.
Referenced by ff_h264_decode_mb_cabac().
|
static |
Definition at line 1292 of file h264_cabac.c.
Referenced by ff_h264_decode_mb_cabac().
|
static |
Definition at line 1304 of file h264_cabac.c.
Referenced by ff_h264_decode_mb_cabac().
|
static |
Definition at line 1336 of file h264_cabac.c.
Referenced by ff_h264_decode_mb_cabac().
|
static |
Definition at line 1373 of file h264_cabac.c.
Referenced by ff_h264_decode_mb_cabac().
|
static |
Definition at line 1387 of file h264_cabac.c.
Referenced by ff_h264_decode_mb_cabac().
|
static |
Definition at line 1412 of file h264_cabac.c.
Referenced by ff_h264_decode_mb_cabac().
|
static |
Definition at line 1429 of file h264_cabac.c.
Referenced by ff_h264_decode_mb_cabac().
|
static |
Definition at line 1449 of file h264_cabac.c.
Referenced by ff_h264_decode_mb_cabac().
|
static |
Definition at line 1459 of file h264_cabac.c.
Referenced by ff_h264_decode_mb_cabac().
|
static |
Definition at line 1477 of file h264_cabac.c.
Referenced by ff_h264_decode_mb_cabac().
|
static |
Definition at line 1506 of file h264_cabac.c.
|
static |
Definition at line 1558 of file h264_cabac.c.
Referenced by decode_cabac_residual_dc(), decode_cabac_residual_dc_422(), and decode_cabac_residual_nondc().
|
static |
Definition at line 1591 of file h264_cabac.c.
Referenced by decode_cabac_residual_dc_internal(), decode_cabac_residual_dc_internal_422(), and decode_cabac_residual_nondc_internal().
|
static |
Definition at line 1778 of file h264_cabac.c.
Referenced by decode_cabac_residual_dc().
|
static |
Definition at line 1788 of file h264_cabac.c.
Referenced by decode_cabac_residual_dc_422().
|
static |
Definition at line 1798 of file h264_cabac.c.
Referenced by decode_cabac_residual_nondc().
|
static |
Definition at line 1821 of file h264_cabac.c.
Referenced by decode_cabac_luma_residual(), and ff_h264_decode_mb_cabac().
|
static |
Definition at line 1837 of file h264_cabac.c.
Referenced by ff_h264_decode_mb_cabac().
|
static |
Definition at line 1850 of file h264_cabac.c.
Referenced by decode_cabac_luma_residual(), and ff_h264_decode_mb_cabac().
|
static |
Definition at line 1870 of file h264_cabac.c.
Referenced by ff_h264_decode_mb_cabac().
int ff_h264_decode_mb_cabac | ( | const H264Context * | h, |
H264SliceContext * | sl | ||
) |
Decode a macroblock.
Decode a CABAC coded macroblock.
Definition at line 1920 of file h264_cabac.c.
Referenced by decode_slice().
|
static |
Definition at line 50 of file h264_cabac.c.
Referenced by ff_h264_init_cabac_states().
|
static |
Definition at line 362 of file h264_cabac.c.
Referenced by ff_h264_init_cabac_states().