Go to the documentation of this file.
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)
RV34VLC * cur_vlcs
VLC set used for current frame decoding.
VLC third_pattern[2]
VLCs used for decoding coefficients in the last subblock.
int luma_vlc
which VLC set will be used for decoding of luma blocks
SliceInfo si
current slice information
@ RV34_MB_B_FORWARD
B-frame macroblock, forward prediction.
const uint8_t * luma_dc_quant_p
luma subblock DC quantizer for interframes
@ RV34_MB_B_DIRECT
Bidirectionally predicted B-frame macroblock, no motion vectors.
int(* decode_intra_types)(struct RV34DecContext *r, GetBitContext *gb, int8_t *dst)
int ff_rv34_decode_frame(AVCodecContext *avctx, void *data, int *got_frame, AVPacket *avpkt)
int is16
current block has additional 16x16 specific features or not
int weight2
B-frame distance fractions (0.14) used in motion compensation.
VLC tables used by the decoder.
VLC second_pattern[2]
VLCs used for decoding coefficients in the subblocks 2 and 3.
VLC cbp[2][4]
VLCs used for coded block patterns decoding.
int8_t * intra_types
block types
uint8_t * cbp_chroma
CBP values for chroma subblocks.
uint8_t * tmp_b_block_uv[4]
const uint8_t * luma_dc_quant_i
luma subblock DC quantizer for intraframes
@ RV34_MB_SKIP
Skipped block.
int ff_rv34_decode_init_thread_copy(AVCodecContext *avctx)
int type
slice type (intra, inter)
VLC cbppattern[2]
VLCs used for pattern of coded block patterns decoding.
int ff_rv34_get_start_offset(GetBitContext *gb, int blocks)
common decoding functions
int quant
quantizer used for this slice
int ff_rv34_decode_init(AVCodecContext *avctx)
Initialize decoder.
@ RV34_MB_P_8x8
P-frame macroblock, 8x8 motion compensation partitions.
int dmv[4][2]
differential motion vectors for the current macroblock
int ff_rv34_decode_update_thread_context(AVCodecContext *dst, const AVCodecContext *src)
RV40BlockTypes
RV30 and RV40 Macroblock types.
int vlc_set
VLCs used for this slice.
@ RV34_MB_B_BACKWARD
B-frame macroblock, backward prediction.
uint8_t * tmp_b_block_base
@ RV34_MB_P_8x16
P-frame macroblock, 8x16 motion compensation partitions.
uint32_t avail_cache[3 *4]
8x8 block available flags (for MV prediction)
H264PredContext h
functions for 4x4 and 16x16 intra block prediction
int chroma_vlc
which VLC set will be used for decoding of chroma blocks
int ff_rv34_decode_end(AVCodecContext *avctx)
@ RV34_MB_TYPE_INTRA16x16
Intra macroblock with DCs in a separate 4x4 block.
int8_t * intra_types_hist
old block types, used for prediction
#define DECLARE_ALIGNED(n, t, v)
int(* decode_mb_info)(struct RV34DecContext *r)
@ RV34_MB_TYPE_INTRA
Intra macroblock.
essential slice information
int intra_types_stride
block types array stride
int block_type
current block type
main external API structure.
int end
start and end macroblocks of the slice
uint16_t * deblock_coefs
deblock coefficients for each macroblock
int(* parse_slice_header)(struct RV34DecContext *r, GetBitContext *gb, SliceInfo *si)
int * mb_type
internal macroblock types
@ RV34_MB_P_MIX16x16
P-frame macroblock with DCs in a separate 4x4 block, one motion vector.
Context for storing H.264 prediction functions.
VLC coefficient
VLCs used for decoding big coefficients.
VLC first_pattern[4]
VLCs used for decoding coefficients in the first subblock.
int rv30
indicates which RV variant is currently decoded
void(* loop_filter)(struct RV34DecContext *r, int row)
uint16_t * cbp_luma
CBP values for luma subblocks.
@ RV34_MB_P_16x8
P-frame macroblock, 16x8 motion compensation partitions.
This structure stores compressed data.
@ RV34_MB_P_16x16
P-frame macroblock, one motion frame.
@ RV34_MB_B_BIDIR
Bidirectionally predicted B-frame macroblock, two motion vectors.
uint8_t * tmp_b_block_y[2]
temporary blocks for RV4 weighted MC