libavcodec/vc1.h File Reference

#include "avcodec.h"
#include "mpegvideo.h"
#include "intrax8.h"
#include "vc1dsp.h"

Go to the source code of this file.

Data Structures

struct  VC1Context
 The VC1 Context. More...

Defines

#define IS_MARKER(x)   (((x) & ~0xFF) == VC1_CODE_RES0)

Enumerations

enum  CodingSet {
  CS_HIGH_MOT_INTRA = 0, CS_HIGH_MOT_INTER, CS_LOW_MOT_INTRA, CS_LOW_MOT_INTER,
  CS_MID_RATE_INTRA, CS_MID_RATE_INTER, CS_HIGH_RATE_INTRA, CS_HIGH_RATE_INTER
}
enum  FrameCodingMode { PROGRESSIVE = 0, ILACE_FRAME, ILACE_FIELD }
 FCM Frame Coding Mode. More...
enum  VC1Code {
  VC1_CODE_RES0 = 0x00000100, VC1_CODE_ENDOFSEQ = 0x0000010A, VC1_CODE_SLICE, VC1_CODE_FIELD,
  VC1_CODE_FRAME, VC1_CODE_ENTRYPOINT, VC1_CODE_SEQHDR
}
 Markers used in VC-1 AP frame data. More...
enum  Profile { PROFILE_SIMPLE, PROFILE_MAIN, PROFILE_COMPLEX, PROFILE_ADVANCED }
 Available Profiles. More...
enum  QuantMode { QUANT_FRAME_IMPLICIT, QUANT_FRAME_EXPLICIT, QUANT_NON_UNIFORM, QUANT_UNIFORM }
 Sequence quantizer mode. More...
enum  DQProfile { DQPROFILE_FOUR_EDGES, DQPROFILE_DOUBLE_EDGES, DQPROFILE_SINGLE_EDGE, DQPROFILE_ALL_MBS }
 Where quant can be changed. More...
Where quant can be changed
enum  DQSingleEdge { DQSINGLE_BEDGE_LEFT, DQSINGLE_BEDGE_TOP, DQSINGLE_BEDGE_RIGHT, DQSINGLE_BEDGE_BOTTOM }
enum  DQDoubleEdge { DQDOUBLE_BEDGE_TOPLEFT, DQDOUBLE_BEDGE_TOPRIGHT, DQDOUBLE_BEDGE_BOTTOMRIGHT, DQDOUBLE_BEDGE_BOTTOMLEFT }
 Which pair of edges is quantized with ALTPQUANT. More...
enum  MVModes {
  MV_PMODE_1MV_HPEL_BILIN, MV_PMODE_1MV, MV_PMODE_1MV_HPEL, MV_PMODE_MIXED_MV,
  MV_PMODE_INTENSITY_COMP
}
 MV modes for P frames. More...
enum  MBModesIntfr {
  MV_PMODE_INTFR_1MV, MV_PMODE_INTFR_2MV_FIELD, MV_PMODE_INTFR_2MV, MV_PMODE_INTFR_4MV_FIELD,
  MV_PMODE_INTFR_4MV, MV_PMODE_INTFR_INTRA
}
 MBMODE for interlaced frame P-picture. More...
MV types for B frames
enum  BMVTypes { BMV_TYPE_BACKWARD, BMV_TYPE_FORWARD, BMV_TYPE_INTERPOLATED, BMV_TYPE_DIRECT }
Block types for P/B frames
enum  TransformTypes {
  TT_8X8, TT_8X4_BOTTOM, TT_8X4_TOP, TT_8X4,
  TT_4X8_RIGHT, TT_4X8_LEFT, TT_4X8, TT_4X4
}
Overlap conditions for Advanced Profile
enum  COTypes { CONDOVER_NONE = 0, CONDOVER_ALL, CONDOVER_SELECT }

Functions

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)
int vc1_decode_sequence_header (AVCodecContext *avctx, VC1Context *v, GetBitContext *gb)
 Decode Simple/Main Profiles sequence header.
int vc1_decode_entry_point (AVCodecContext *avctx, VC1Context *v, GetBitContext *gb)
int vc1_parse_frame_header (VC1Context *v, GetBitContext *gb)
int vc1_parse_frame_header_adv (VC1Context *v, GetBitContext *gb)
int ff_vc1_init_common (VC1Context *v)
 Init VC-1 specific tables and VC1Context members.


Define Documentation

#define IS_MARKER (  )     (((x) & ~0xFF) == VC1_CODE_RES0)

Definition at line 44 of file vc1.h.


Enumeration Type Documentation

enum BMVTypes

Enumerator:
BMV_TYPE_BACKWARD 
BMV_TYPE_FORWARD 
BMV_TYPE_INTERPOLATED 
BMV_TYPE_DIRECT 

Definition at line 122 of file vc1.h.

enum CodingSet

Enumerator:
CS_HIGH_MOT_INTRA 
CS_HIGH_MOT_INTER 
CS_LOW_MOT_INTRA 
CS_LOW_MOT_INTER 
CS_MID_RATE_INTRA 
CS_MID_RATE_INTER 
CS_HIGH_RATE_INTRA 
CS_HIGH_RATE_INTER 

Definition at line 144 of file vc1.h.

enum COTypes

Enumerator:
CONDOVER_NONE 
CONDOVER_ALL 
CONDOVER_SELECT 

Definition at line 157 of file vc1.h.

Which pair of edges is quantized with ALTPQUANT.

Enumerator:
DQDOUBLE_BEDGE_TOPLEFT 
DQDOUBLE_BEDGE_TOPRIGHT 
DQDOUBLE_BEDGE_BOTTOMRIGHT 
DQDOUBLE_BEDGE_BOTTOMLEFT 

Definition at line 89 of file vc1.h.

enum DQProfile

Where quant can be changed.

Enumerator:
DQPROFILE_FOUR_EDGES 
DQPROFILE_DOUBLE_EDGES 
DQPROFILE_SINGLE_EDGE 
DQPROFILE_ALL_MBS 

Definition at line 68 of file vc1.h.

Enumerator:
DQSINGLE_BEDGE_LEFT 
DQSINGLE_BEDGE_TOP 
DQSINGLE_BEDGE_RIGHT 
DQSINGLE_BEDGE_BOTTOM 

Definition at line 79 of file vc1.h.

FCM Frame Coding Mode.

Note:
some content might be marked interlaced but have fcm set to 0 as well (e.g. HD-DVD)
Enumerator:
PROGRESSIVE  in the bitstream is reported as 00b
ILACE_FRAME  in the bitstream is reported as 10b
ILACE_FIELD  in the bitstream is reported as 11b

Definition at line 169 of file vc1.h.

MBMODE for interlaced frame P-picture.

Enumerator:
MV_PMODE_INTFR_1MV 
MV_PMODE_INTFR_2MV_FIELD 
MV_PMODE_INTFR_2MV 
MV_PMODE_INTFR_4MV_FIELD 
MV_PMODE_INTFR_4MV 
MV_PMODE_INTFR_INTRA 

Definition at line 110 of file vc1.h.

enum MVModes

MV modes for P frames.

Enumerator:
MV_PMODE_1MV_HPEL_BILIN 
MV_PMODE_1MV 
MV_PMODE_1MV_HPEL 
MV_PMODE_MIXED_MV 
MV_PMODE_INTENSITY_COMP 

Definition at line 99 of file vc1.h.

enum Profile

Available Profiles.

Enumerator:
PROFILE_SIMPLE 
PROFILE_MAIN 
PROFILE_COMPLEX  TODO: WMV9 specific.
PROFILE_ADVANCED 

Definition at line 48 of file vc1.h.

enum QuantMode

Sequence quantizer mode.

Enumerator:
QUANT_FRAME_IMPLICIT  Implicitly specified at frame level.
QUANT_FRAME_EXPLICIT  Explicitly specified at frame level.
QUANT_NON_UNIFORM  Non-uniform quant used for all frames.
QUANT_UNIFORM  Uniform quant used for all frames.

Definition at line 58 of file vc1.h.

Enumerator:
TT_8X8 
TT_8X4_BOTTOM 
TT_8X4_TOP 
TT_8X4 
TT_4X8_RIGHT 
TT_4X8_LEFT 
TT_4X8 
TT_4X4 

Definition at line 132 of file vc1.h.

enum VC1Code

Markers used in VC-1 AP frame data.

Enumerator:
VC1_CODE_RES0 
VC1_CODE_ENDOFSEQ 
VC1_CODE_SLICE 
VC1_CODE_FIELD 
VC1_CODE_FRAME 
VC1_CODE_ENTRYPOINT 
VC1_CODE_SEQHDR 

Definition at line 33 of file vc1.h.


Function Documentation

int ff_vc1_init_common ( VC1Context v  ) 

Init VC-1 specific tables and VC1Context members.

Parameters:
v The VC1Context to initialize
Returns:
Status

Definition at line 70 of file vc1dec.c.

Referenced by vc1_decode_init(), and vc1_parse_init().

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 403 of file vc1.h.

Referenced by vc1_decode_frame(), vc1_decode_init(), and vc1_extract_headers().

int vc1_decode_entry_point ( AVCodecContext avctx,
VC1Context v,
GetBitContext gb 
)

Definition at line 528 of file vc1.c.

Referenced by vc1_decode_frame(), vc1_decode_init(), and vc1_extract_headers().

int vc1_decode_sequence_header ( AVCodecContext avctx,
VC1Context v,
GetBitContext gb 
)

Decode Simple/Main Profiles sequence header.

See also:
Figure 7-8, p16-17
Parameters:
avctx Codec context
gb GetBit context initialized from Codec context extra_data
Returns:
Status

Definition at line 294 of file vc1.c.

Referenced by vc1_decode_init(), and vc1_extract_headers().

int vc1_parse_frame_header ( VC1Context v,
GetBitContext gb 
)

Definition at line 577 of file vc1.c.

Referenced by vc1_decode_frame(), and vc1_extract_headers().

int vc1_parse_frame_header_adv ( VC1Context v,
GetBitContext gb 
)

Definition at line 820 of file vc1.c.

Referenced by vc1_decode_frame(), and vc1_extract_headers().

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

Definition at line 417 of file vc1.h.

Referenced by vc1_decode_frame(), vc1_decode_init(), and vc1_extract_headers().


Generated on Fri Oct 26 02:46:10 2012 for FFmpeg by  doxygen 1.5.8