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.
B-frame macroblock, forward prediction.
Bidirectionally predicted B-frame macroblock, two motion vectors.
Bidirectionally predicted B-frame macroblock, no motion vectors.
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.
static av_cold int end(AVCodecContext *avctx)
uint16_t * deblock_coefs
deblock coefficients for each macroblock
Context for storing H.264 prediction functions.
#define DECLARE_ALIGNED(n, t, v)
Declare a variable that is aligned in memory.
P-frame macroblock, 8x16 motion compensation partitions.
int ff_rv34_decode_end(AVCodecContext *avctx)
int quant
quantizer used for this slice
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.
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.
essential slice information
Libavcodec external API header.
typedef void(RENAME(mix_any_func_type))
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(* decode_intra_types)(struct RV34DecContext *r, GetBitContext *gb, int8_t *dst)
int is16
current block has additional 16x16 specific features or not
H.264 / AVC / MPEG-4 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
B-frame macroblock, backward prediction.
VLC third_pattern[2]
VLCs used for decoding coefficients in the last subblock.
static int decode_mb_info(IVI45DecContext *ctx, IVIBandDesc *band, IVITile *tile, AVCodecContext *avctx)
Decode information (block type, cbp, quant delta, motion vector) for all macroblocks in the current t...
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 variant is currently decoded
static void loop_filter(const H264Context *h, H264SliceContext *sl, int start_x, int end_x)
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.