27 #ifndef AVCODEC_RV34_H
28 #define AVCODEC_RV34_H
37 #define MB_TYPE_SEPARATE_DC 0x01000000
38 #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)
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.
int * deblock_coefs
deblock coefficients for each macroblock
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.
int ff_rv34_decode_frame(AVCodecContext *avctx, void *data, int *data_size, AVPacket *avpkt)
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
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
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.
struct SliceInfo SliceInfo
essential slice information
essential slice information
main external API structure.
static void(WINAPI *cond_broadcast)(pthread_cond_t *cond)
RV34VLC * cur_vlcs
VLC set used for current frame decoding.
SliceInfo si
current slice information
struct RV34VLC RV34VLC
VLC tables used by the decoder.
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
int rpr
one field size in RV30 slice header
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
int chroma_vlc
which VLC set will be used for decoding of chroma blocks
struct RV34DecContext RV34DecContext
decoder context
uint8_t * cbp_chroma
CBP values for chroma subblocks.