27 #ifndef AVCODEC_RV34_H
28 #define AVCODEC_RV34_H
36 #define MB_TYPE_SEPARATE_DC 0x01000000
37 #define IS_SEPARATE_DC(a) ((a) & MB_TYPE_SEPARATE_DC)
P-frame macroblock with DCs in a separate 4x4 block, one motion vector.
int vlc_set
VLCs used for this slice.
VLC second_pattern[2]
VLCs used for decoding coefficients in the subblocks 2 and 3.
P-frame macroblock, 16x8 motion compensation partitions.
uint8_t * tmp_b_block_y[2]
temporary blocks for RV4 weighted MC
int(* decode_intra_types)(struct RV34DecContext *r, GetBitContext *gb, int8_t *dst)
ptrdiff_t const GLvoid * data
void(* loop_filter)(struct RV34DecContext *r, int row)
uint32_t avail_cache[3 *4]
8x8 block available flags (for MV prediction)
B-frame macroblock, forward prediction.
int dmv[4][2]
differential motion vectors for the current macroblock
Bidirectionally predicted B-frame macroblock, two motion vectors.
Bidirectionally predicted B-frame macroblock, no motion vectors.
#define DECLARE_ALIGNED(n, t, v)
int ff_rv34_decode_init(AVCodecContext *avctx)
Initialize decoder.
RV40BlockTypes
RV30 and RV40 Macroblock types.
VLC cbppattern[2]
VLCs used for pattern of coded block patterns decoding.
int weight2
B frame distance fractions (0.14) used in motion compensation.
const uint8_t * luma_dc_quant_p
luma subblock DC quantizer for interframes
int ff_rv34_decode_init_thread_copy(AVCodecContext *avctx)
uint8_t * tmp_b_block_base
int ff_rv34_decode_update_thread_context(AVCodecContext *dst, const AVCodecContext *src)
uint16_t * cbp_luma
CBP values for luma subblocks.
uint16_t * deblock_coefs
deblock coefficients for each macroblock
Context for storing H.264 prediction functions.
P-frame macroblock, 8x16 motion compensation partitions.
int ff_rv34_decode_end(AVCodecContext *avctx)
int quant
quantizer used for this slice
int(* parse_slice_header)(struct RV34DecContext *r, GetBitContext *gb, SliceInfo *si)
RV30/40 decoder motion compensation functions.
int luma_vlc
which VLC set will be used for decoding of luma blocks
int ff_rv34_decode_frame(AVCodecContext *avctx, void *data, int *got_frame, AVPacket *avpkt)
VLC tables used by the decoder.
int end
start and end macroblocks of the slice
Intra macroblock with DCs in a separate 4x4 block.
int * mb_type
internal macroblock types
typedef void(APIENTRY *FF_PFNGLACTIVETEXTUREPROC)(GLenum texture)
H264PredContext h
functions for 4x4 and 16x16 intra block prediction
VLC coefficient
VLCs used for decoding big coefficients.
VLC first_pattern[4]
VLCs used for decoding coefficients in the first subblock.
essential slice information
Libavcodec external API header.
main external API structure.
RV34VLC * cur_vlcs
VLC set used for current frame decoding.
SliceInfo si
current slice information
P-frame macroblock, 8x8 motion compensation partitions.
VLC cbp[2][4]
VLCs used for coded block patterns decoding.
int intra_types_stride
block types array stride
int is16
current block has additional 16x16 specific features or not
H.264 / AVC / MPEG4 prediction functions.
int8_t * intra_types
block types
P-frame macroblock, one motion frame.
int ff_rv34_get_start_offset(GetBitContext *gb, int blocks)
common decoding functions
int(* decode_mb_info)(struct RV34DecContext *r)
uint8_t * tmp_b_block_uv[4]
B-frame macroblock, backward prediction.
VLC third_pattern[2]
VLCs used for decoding coefficients in the last subblock.
int block_type
current block type
const uint8_t * luma_dc_quant_i
luma subblock DC quantizer for intraframes
int8_t * intra_types_hist
old block types, used for prediction
int type
slice type (intra, inter)
int rv30
indicates which RV variasnt is currently decoded
This structure stores compressed data.
int chroma_vlc
which VLC set will be used for decoding of chroma blocks
uint8_t * cbp_chroma
CBP values for chroma subblocks.