VC1 Macroblock-level functions in Simple/Main Profiles
[RV30/40 4x4 block decoding functions]


Functions

static int vc1_coded_block_pred (MpegEncContext *s, int n, uint8_t **coded_block_ptr)
static void vc1_decode_ac_coeff (VC1Context *v, int *last, int *skip, int *value, int codingset)
 Decode one AC coefficient.
static int vc1_decode_i_block (VC1Context *v, DCTELEM block[64], int n, int coded, int codingset)
 Decode intra block in intra frames - should be faster than decode_intra_block.
static int vc1_decode_i_block_adv (VC1Context *v, DCTELEM block[64], int n, int coded, int codingset, int mquant)
 Decode intra block in intra frames - should be faster than decode_intra_block.
static int vc1_decode_intra_block (VC1Context *v, DCTELEM block[64], int n, int coded, int mquant, int codingset)
 Decode intra block in inter frames - more generic version than vc1_decode_i_block.
static int vc1_decode_p_block (VC1Context *v, DCTELEM block[64], int n, int mquant, int ttmb, int first_block, uint8_t *dst, int linesize, int skip_block)
 Decode P block.
static int vc1_decode_p_mb (VC1Context *v)
 Decode one P-frame MB (in Simple/Main profile).
static void vc1_decode_b_mb (VC1Context *v)
 Decode one B-frame MB (in Main profile).
static void vc1_decode_i_blocks (VC1Context *v)
 Decode blocks of I-frame.
static void vc1_decode_i_blocks_adv (VC1Context *v)
 Decode blocks of I-frame for advanced profile.
static void vc1_decode_p_blocks (VC1Context *v)
static void vc1_decode_b_blocks (VC1Context *v)
static void vc1_decode_skip_blocks (VC1Context *v)
static void vc1_decode_blocks (VC1Context *v)
static av_always_inline const
uint8_t
find_next_marker (const uint8_t *src, const uint8_t *end)
 Find VC-1 marker in buffer.
static av_always_inline int vc1_unescape_buffer (const uint8_t *src, int size, uint8_t *dst)
static int vc1_decode_init (AVCodecContext *avctx)
 Initialize a VC1/WMV3 decoder.
static int vc1_decode_frame (AVCodecContext *avctx, void *data, int *data_size, const uint8_t *buf, int buf_size)
 Decode a VC1/WMV3 frame.
static int vc1_decode_end (AVCodecContext *avctx)
 Close a VC1/WMV3 decoder.

Variables

AVCodec vc1_decoder
AVCodec wmv3_decoder

Detailed Description

See also:
7.1.4, p91 and 8.1.1.7, p(1)04

Function Documentation

static av_always_inline const uint8_t* find_next_marker ( const uint8_t src,
const uint8_t end 
) [static]

Find VC-1 marker in buffer.

Returns:
position where next marker starts or end of buffer if no marker found

Definition at line 3779 of file vc1.c.

Referenced by vc1_decode_frame(), and vc1_decode_init().

static int vc1_coded_block_pred ( MpegEncContext s,
int  n,
uint8_t **  coded_block_ptr 
) [inline, static]

Definition at line 2233 of file vc1.c.

Referenced by vc1_decode_i_blocks(), and vc1_decode_i_blocks_adv().

static void vc1_decode_ac_coeff ( VC1Context v,
int *  last,
int *  skip,
int *  value,
int  codingset 
) [static]

Decode one AC coefficient.

Parameters:
v The VC1 context
last Last coefficient
skip How much zero coefficients to skip
value Decoded AC coefficient value
See also:
8.1.3.4

Definition at line 2267 of file vc1.c.

Referenced by vc1_decode_i_block(), vc1_decode_i_block_adv(), vc1_decode_intra_block(), and vc1_decode_p_block().

static void vc1_decode_b_blocks ( VC1Context v  )  [static]

Definition at line 3674 of file vc1.c.

Referenced by vc1_decode_blocks().

static void vc1_decode_b_mb ( VC1Context v  )  [static]

Decode one B-frame MB (in Main profile).

Definition at line 3236 of file vc1.c.

Referenced by vc1_decode_b_blocks().

static void vc1_decode_blocks ( VC1Context v  )  [static]

Definition at line 3742 of file vc1.c.

Referenced by vc1_decode_frame().

static int vc1_decode_end ( AVCodecContext avctx  )  [static]

Close a VC1/WMV3 decoder.

Warning:
Initial try at using MpegEncContext stuff

Definition at line 4112 of file vc1.c.

static int vc1_decode_frame ( AVCodecContext avctx,
void *  data,
int *  data_size,
const uint8_t buf,
int  buf_size 
) [static]

Decode a VC1/WMV3 frame.

Todo:
TODO: Handle VC-1 IDUs (Transport level?)

Definition at line 3944 of file vc1.c.

static int vc1_decode_i_block ( VC1Context v,
DCTELEM  block[64],
int  n,
int  coded,
int  codingset 
) [static]

Decode intra block in intra frames - should be faster than decode_intra_block.

Parameters:
v VC1Context
block block to decode
coded are AC coeffs present or not
codingset set of VLC to decode data

Definition at line 2331 of file vc1.c.

Referenced by vc1_decode_i_blocks().

static int vc1_decode_i_block_adv ( VC1Context v,
DCTELEM  block[64],
int  n,
int  coded,
int  codingset,
int  mquant 
) [static]

Decode intra block in intra frames - should be faster than decode_intra_block.

Parameters:
v VC1Context
block block to decode
coded are AC coeffs present or not
codingset set of VLC to decode data

Definition at line 2496 of file vc1.c.

Referenced by vc1_decode_i_blocks_adv().

static void vc1_decode_i_blocks ( VC1Context v  )  [static]

Decode blocks of I-frame.

Definition at line 3385 of file vc1.c.

Referenced by vc1_decode_blocks().

static void vc1_decode_i_blocks_adv ( VC1Context v  )  [static]

Decode blocks of I-frame for advanced profile.

Definition at line 3497 of file vc1.c.

Referenced by vc1_decode_blocks().

static int vc1_decode_init ( AVCodecContext avctx  )  [static]

Initialize a VC1/WMV3 decoder.

Todo:
TODO: Handle VC-1 IDUs (Transport level?)
Todo:
TODO: Decypher remaining bits in extra_data

Definition at line 3815 of file vc1.c.

static int vc1_decode_intra_block ( VC1Context v,
DCTELEM  block[64],
int  n,
int  coded,
int  mquant,
int  codingset 
) [static]

Decode intra block in inter frames - more generic version than vc1_decode_i_block.

Parameters:
v VC1Context
block block to decode
coded are AC coeffs present or not
mquant block quantizer
codingset set of VLC to decode data

Definition at line 2693 of file vc1.c.

Referenced by vc1_decode_b_mb(), and vc1_decode_p_mb().

static int vc1_decode_p_block ( VC1Context v,
DCTELEM  block[64],
int  n,
int  mquant,
int  ttmb,
int  first_block,
uint8_t dst,
int  linesize,
int  skip_block 
) [static]

Decode P block.

Definition at line 2889 of file vc1.c.

Referenced by vc1_decode_b_mb(), and vc1_decode_p_mb().

static void vc1_decode_p_blocks ( VC1Context v  )  [static]

Definition at line 3625 of file vc1.c.

Referenced by vc1_decode_blocks().

static int vc1_decode_p_mb ( VC1Context v  )  [static]

Decode one P-frame MB (in Simple/Main profile).

Definition at line 3005 of file vc1.c.

Referenced by vc1_decode_p_blocks().

static void vc1_decode_skip_blocks ( VC1Context v  )  [static]

Definition at line 3723 of file vc1.c.

Referenced by vc1_decode_blocks().

static av_always_inline int vc1_unescape_buffer ( const uint8_t src,
int  size,
uint8_t dst 
) [static]

Definition at line 3792 of file vc1.c.

Referenced by vc1_decode_frame(), and vc1_decode_init().


Variable Documentation

Initial value:

Definition at line 4129 of file vc1.c.

Initial value:

Definition at line 4142 of file vc1.c.


Generated on Thu Apr 2 07:15:44 2009 for ffmpeg by  doxygen 1.5.6