26 #ifndef AVCODEC_VP56_H 27 #define AVCODEC_VP56_H 71 #define VP56_SIZE_CHANGE 1 76 int offset1,
int offset2, ptrdiff_t
stride,
154 int above_block_idx[6];
155 int16_t prev_dc[3][3];
161 int idct_selector[6];
209 unsigned int nb_null[2][2];
218 int flip,
int has_alpha);
251 code_word |= bytestream_get_be16(&c->
buffer) <<
bits;
264 #ifndef vp56_rac_get_prob 265 #define vp56_rac_get_prob vp56_rac_get_prob 269 unsigned int low = 1 + (((c->
high - 1) * prob) >> 8);
270 unsigned int low_shift = low << 16;
271 int bit = code_word >= low_shift;
273 c->
high = bit ? c->
high - low : low;
274 c->
code_word = bit ? code_word - low_shift : code_word;
280 #ifndef vp56_rac_get_prob_branchy 285 unsigned low = 1 + (((c->
high - 1) * prob) >> 8);
286 unsigned low_shift = low << 16;
288 if (code_word >= low_shift) {
304 int low = (c->
high + 1) >> 1;
305 unsigned int low_shift = low << 16;
306 int bit = code_word >= low_shift;
309 code_word -= low_shift;
380 while (tree->
val > 0) {
static int shift(int a, int b)
This structure describes decoded (raw) audio or video data.
int(* VP56ParseCoeff)(VP56Context *s)
int(* VP56ParseCoeffModels)(VP56Context *s)
static av_always_inline int vp8_rac_get_tree(VP56RangeCoder *c, const int8_t(*tree)[2], const uint8_t *probs)
Inter MB, no vector, from previous frame.
VP56ParseVectorAdjustment parse_vector_adjustment
VP56ParseCoeffModels parse_coeff_models
VP56ParseVectorModels parse_vector_models
int ff_vp56_init(AVCodecContext *avctx, int flip, int has_alpha)
void(* VP56ParseVectorModels)(VP56Context *s)
#define DECLARE_ALIGNED(n, t, v)
Declare a variable that is aligned in memory.
void ff_vp56_init_dequant(VP56Context *s, int quantizer)
bitstream reader API header.
static av_always_inline int vpX_rac_is_end(VP56RangeCoder *c)
vp5689 returns 1 if the end of the stream has been reached, 0 otherwise.
uint8_t * edge_emu_buffer
static av_always_inline int vp56_rac_get_tree(VP56RangeCoder *c, const VP56Tree *tree, const uint8_t *probs)
Inter MB, second vector, from golden frame.
VP56ParseCoeff parse_coeff
#define prob(name, subs,...)
#define i(width, name, range_min, range_max)
static const uint16_t mask[17]
static void flip(AVCodecContext *avctx, AVFrame *frame)
static av_always_inline int vp56_rac_get(VP56RangeCoder *c)
Inter MB, first vector, from previous frame.
int ff_vp56_init_range_decoder(VP56RangeCoder *c, const uint8_t *buf, int buf_size)
static av_unused int vp56_rac_gets_nn(VP56RangeCoder *c, int bits)
VP56Context * alpha_context
Inter MB, first vector, from golden frame.
void(* VP56Filter)(VP56Context *s, uint8_t *dst, uint8_t *src, int offset1, int offset2, ptrdiff_t stride, VP56mv mv, int mask, int select, int luma)
static av_unused int vp8_rac_get_sint(VP56RangeCoder *c, int bits)
VP56ParseHeader parse_header
#define vp56_rac_get_prob
VP56Macroblock * macroblocks
static const int8_t mv[256][2]
static av_always_inline int vp56_rac_get_prob_branchy(VP56RangeCoder *c, int prob)
Inter MB, 4 vectors, from previous frame.
Inter MB, no vector, from golden frame.
int ff_vp56_init_context(AVCodecContext *avctx, VP56Context *s, int flip, int has_alpha)
Libavcodec external API header.
typedef void(RENAME(mix_any_func_type))
Inter MB, second vector, from previous frame.
main external API structure.
static av_always_inline unsigned int vp56_rac_renorm(VP56RangeCoder *c)
int ff_vp56_free(AVCodecContext *avctx)
VP56DefaultModelsInit default_models_init
Inter MB, above/left vector + delta, from previous frame.
static av_always_inline int vp8_rac_get_coeff(VP56RangeCoder *c, const uint8_t *prob)
int sample_variance_threshold
int ff_vp56_free_context(VP56Context *s)
const uint8_t ff_vp56_norm_shift[256]
vp56 specific range coder implementation
static int vp8_rac_get_uint(VP56RangeCoder *c, int bits)
int ff_vp56_decode_frame(AVCodecContext *avctx, void *data, int *got_frame, AVPacket *avpkt)
const uint8_t * vp56_coord_div
int(* VP56ParseHeader)(VP56Context *s, const uint8_t *buf, int buf_size)
void(* VP56ParseVectorAdjustment)(VP56Context *s, VP56mv *vect)
void(* VP56DefaultModelsInit)(VP56Context *s)
static av_always_inline int vp8_rac_get(VP56RangeCoder *c)
Core video DSP helper functions.
Inter MB, above/left vector + delta, from golden frame.
uint8_t * edge_emu_buffer_alloc
static av_unused int vp8_rac_get_nn(VP56RangeCoder *c)
This structure stores compressed data.
H264ChromaContext h264chroma
static int vp56_rac_gets(VP56RangeCoder *c, int bits)