29 #include <stdatomic.h> 39 #define VP8_MAX_QUANT 127 132 #define EDGE_EMU_LINESIZE 32 146 #define MAX_THREADS 8 182 int8_t base_quant[4];
204 int16_t luma_qmul[2];
205 int16_t luma_dc_qmul[2];
206 int16_t chroma_qmul[2];
259 } coder_state_at_header_end;
300 int coeff_partition_size[8];
333 uint16_t inter_dc_pred[2][2];
VP8Macroblock * macroblocks
int ff_vp8_decode_free(AVCodecContext *avctx)
static enum AVPixelFormat pix_fmt
(only used in prediction) no split MVs
VP5 and VP6 compatible video decoder (common features)
uint8_t * intra4x4_pred_mode_top
int update_probabilities
If this flag is not set, all the probability updates are discarded after this frame is decoded...
static void filter(int16_t *output, ptrdiff_t out_stride, int16_t *low, ptrdiff_t low_stride, int16_t *high, ptrdiff_t high_stride, int len, int clip)
int update_golden
VP56_FRAME_NONE if not updated, or which frame to copy if so.
static av_always_inline void filter_mb_row(AVCodecContext *avctx, void *tdata, int jobnr, int threadnr, int is_vp7)
int fade_present
Fade bit present in bitstream (VP7)
int ff_vp8_decode_frame(AVCodecContext *avctx, void *data, int *got_frame, AVPacket *avpkt)
Multithreading support functions.
VP8 compatible video decoder.
Context for storing H.264 prediction functions.
int update_last
update VP56_FRAME_PREVIOUS with the current one
#define DECLARE_ALIGNED(n, t, v)
Declare a variable that is aligned in memory.
int num_coeff_partitions
All coefficients are contained in separate arith coding contexts.
uint8_t colorspace
0 is the only value allowed (meaning bt601)
#define EDGE_EMU_LINESIZE
VP8Macroblock * macroblocks_base
uint8_t fullrange
whether we can skip clamping in dsp functions
static av_always_inline int decode_mb_row_no_filter(AVCodecContext *avctx, void *tdata, int jobnr, int threadnr, int is_vp7)
typedef void(RENAME(mix_any_func_type))
void(* vp8_mc_func)(uint8_t *dst, ptrdiff_t dstStride, uint8_t *src, ptrdiff_t srcStride, int h, int x, int y)
main external API structure.
int mb_layout
This describes the macroblock memory layout.
VP56RangeCoder c
header context, includes mb modes and motion vectors
AVBufferRef * hwaccel_priv_buf
VP8FilterStrength * filter_strength
uint8_t enabled
whether each mb can have a different strength based on mode/ref
refcounted data buffer API
int header_partition_size
uint8_t update_feature_data
H.264 / AVC / MPEG-4 prediction functions.
int ff_vp8_decode_init(AVCodecContext *avctx)
void * hwaccel_picture_private
2 8x16 blocks (horizontal)
static pthread_mutex_t lock
int(* cond)(enum AVPixelFormat pix_fmt)
A reference to a data buffer.
static int ref[MAX_W *MAX_W]
AVPixelFormat
Pixel format.
This structure stores compressed data.
mode
Use these values in ebur128_init (or'ed).
VP8ThreadData * thread_data