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 AC_VLC_BITS   9
#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 ff_vc1_decode_sequence_header (AVCodecContext *avctx, VC1Context *v, GetBitContext *gb)
 Decode Simple/Main Profiles sequence header.
int ff_vc1_decode_entry_point (AVCodecContext *avctx, VC1Context *v, GetBitContext *gb)
int ff_vc1_parse_frame_header (VC1Context *v, GetBitContext *gb)
int ff_vc1_parse_frame_header_adv (VC1Context *v, GetBitContext *gb)
int ff_vc1_init_common (VC1Context *v)
 Init VC-1 specific tables and VC1Context members.
av_cold int ff_vc1_decode_init_alloc_tables (VC1Context *v)
av_cold void ff_vc1_init_transposed_scantables (VC1Context *v)
av_cold int ff_vc1_decode_end (AVCodecContext *avctx)
 Close a VC1/WMV3 decoder.
void ff_vc1_decode_blocks (VC1Context *v)


Define Documentation

#define AC_VLC_BITS   9

Definition at line 31 of file vc1.h.

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

Definition at line 46 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 124 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 146 of file vc1.h.

enum COTypes

Enumerator:
CONDOVER_NONE 
CONDOVER_ALL 
CONDOVER_SELECT 

Definition at line 159 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 91 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 70 of file vc1.h.

Enumerator:
DQSINGLE_BEDGE_LEFT 
DQSINGLE_BEDGE_TOP 
DQSINGLE_BEDGE_RIGHT 
DQSINGLE_BEDGE_BOTTOM 

Definition at line 81 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 171 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 112 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 101 of file vc1.h.

enum Profile

Available Profiles.

Enumerator:
PROFILE_SIMPLE 
PROFILE_MAIN 
PROFILE_COMPLEX  TODO: WMV9 specific.
PROFILE_ADVANCED 

Definition at line 50 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 60 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 134 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 35 of file vc1.h.


Function Documentation

void ff_vc1_decode_blocks ( VC1Context v  ) 

Definition at line 4740 of file vc1dec.c.

Referenced by decode_wmv9(), and vc1_decode_frame().

av_cold int ff_vc1_decode_end ( AVCodecContext avctx  ) 

Close a VC1/WMV3 decoder.

Warning:
Initial try at using MpegEncContext stuff

Definition at line 5272 of file vc1dec.c.

Referenced by mss2_decode_end(), and vc1_decode_frame().

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

Definition at line 527 of file vc1.c.

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

av_cold int ff_vc1_decode_init_alloc_tables ( VC1Context v  ) 

Definition at line 5054 of file vc1dec.c.

Referenced by vc1_decode_frame(), and wmv9_init().

int ff_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 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 1535 of file vc1.c.

Referenced by vc1_decode_init(), vc1_parse_init(), and wmv9_init().

av_cold void ff_vc1_init_transposed_scantables ( VC1Context v  ) 

Definition at line 5120 of file vc1dec.c.

Referenced by vc1_decode_init(), and wmv9_init().

int ff_vc1_parse_frame_header ( VC1Context v,
GetBitContext gb 
)

Definition at line 582 of file vc1.c.

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

int ff_vc1_parse_frame_header_adv ( VC1Context v,
GetBitContext gb 
)

Definition at line 832 of file vc1.c.

Referenced by vc1_decode_frame(), and vc1_extract_headers().

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

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

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


Generated on Fri Oct 26 02:50:08 2012 for FFmpeg by  doxygen 1.5.8