GstVc1Parser
For more details about the structures, look at the smpte specifications (S421m-2006.pdf).
Functions
gst_vc1_bitplanes_ensure_size
gboolean gst_vc1_bitplanes_ensure_size (GstVC1BitPlanes * bitplanes, GstVC1SeqHdr * seqhdr)
Fills the bitplanes structure from seqhdr, this function should be called after gst_vc1_parse_sequence_header if in simple or main mode, or after gst_vc1_parse_entry_point_header if in advanced mode.
Parameters:
bitplanes
–
The GstVC1BitPlanes to reset
seqhdr
–
The GstVC1SeqHdr from which to set bitplanes
gst_vc1_bitplanes_free
void gst_vc1_bitplanes_free (GstVC1BitPlanes * bitplanes)
Parameters:
bitplanes
–
gst_vc1_bitplanes_free_1
void gst_vc1_bitplanes_free_1 (GstVC1BitPlanes * bitplanes)
Parameters:
bitplanes
–
gst_vc1_bitplanes_new
GstVC1BitPlanes * gst_vc1_bitplanes_new ()
Creates a new GstVC1BitPlanes. It should be freed with gst_vc1_bitplanes_free after use.
a new GstVC1BitPlanes
gst_vc1_identify_next_bdu
GstVC1ParserResult gst_vc1_identify_next_bdu (guint8 * data, gsize size, GstVC1BDU * bdu)
Parses data and fills bdu fields
Parameters:
data
–
The data to parse
size
–
the size of data
bdu
–
The GstVC1BDU where to store parsed bdu headers
gst_vc1_parse_entry_point_header
GstVC1ParserResult gst_vc1_parse_entry_point_header (guint8 * data, gsize size, GstVC1EntryPointHdr * entrypoint, GstVC1SeqHdr * seqhdr)
Parses data, and sets entrypoint fields.
Parameters:
data
–
The data to parse
size
–
the size of data
entrypoint
–
The GstVC1EntryPointHdr to set.
seqhdr
–
The GstVC1SeqHdr currently being parsed
gst_vc1_parse_field_header
GstVC1ParserResult gst_vc1_parse_field_header (guint8 * data, gsize size, GstVC1FrameHdr * fieldhdr, GstVC1SeqHdr * seqhdr, GstVC1BitPlanes * bitplanes)
Parses data, and fills fieldhdr fields.
Parameters:
data
–
The data to parse
size
–
the size of data
fieldhdr
–
The GstVC1FrameHdr to fill.
seqhdr
–
The GstVC1SeqHdr currently being parsed
bitplanes
–
The GstVC1BitPlanes to store bitplanes in or NULL
gst_vc1_parse_frame_header
GstVC1ParserResult gst_vc1_parse_frame_header (guint8 * data, gsize size, GstVC1FrameHdr * framehdr, GstVC1SeqHdr * seqhdr, GstVC1BitPlanes * bitplanes)
Parses data, and fills entrypoint fields.
Parameters:
data
–
The data to parse
size
–
the size of data
framehdr
–
The GstVC1FrameHdr to fill.
seqhdr
–
The GstVC1SeqHdr currently being parsed
bitplanes
–
The GstVC1BitPlanes to store bitplanes in or NULL
gst_vc1_parse_frame_layer
GstVC1ParserResult gst_vc1_parse_frame_layer (guint8 * data, gsize size, GstVC1FrameLayer * framelayer)
Parses data, and fills framelayer fields.
Parameters:
data
–
The data to parse
size
–
the size of data
framelayer
–
The GstVC1FrameLayer to fill.
gst_vc1_parse_sequence_header
GstVC1ParserResult gst_vc1_parse_sequence_header (guint8 * data, gsize size, GstVC1SeqHdr * seqhdr)
Parses data, and fills seqhdr fields.
gst_vc1_parse_sequence_header_struct_a
GstVC1ParserResult gst_vc1_parse_sequence_header_struct_a (guint8 * data, gsize size, GstVC1SeqStructA * structa)
Parses data, and fills structa fields.
gst_vc1_parse_sequence_header_struct_b
GstVC1ParserResult gst_vc1_parse_sequence_header_struct_b (guint8 * data, gsize size, GstVC1SeqStructB * structb)
Parses data, and fills structb fields.
gst_vc1_parse_sequence_header_struct_c
GstVC1ParserResult gst_vc1_parse_sequence_header_struct_c (guint8 * data, gsize size, GstVC1SeqStructC * structc)
Parses data, and fills structc fields.
gst_vc1_parse_sequence_layer
GstVC1ParserResult gst_vc1_parse_sequence_layer (guint8 * data, gsize size, GstVC1SeqLayer * seqlayer)
Parses data, and fills seqlayer fields.
gst_vc1_parse_slice_header
GstVC1ParserResult gst_vc1_parse_slice_header (guint8 * data, gsize size, GstVC1SliceHdr * slicehdr, GstVC1SeqHdr * seqhdr)
Parses data, and fills slicehdr fields.
Parameters:
data
–
The data to parse
size
–
The size of data
slicehdr
–
The GstVC1SliceHdr to fill
seqhdr
–
The GstVC1SeqHdr that was previously parsed
Since : 1.2
Structures
GstVC1AdvancedSeqHdr
struct _GstVC1AdvancedSeqHdr
{
  GstVC1Level  level;
  guint8  frmrtq_postproc;
  guint8  bitrtq_postproc;
  guint8  postprocflag;
  guint16 max_coded_width;
  guint16 max_coded_height;
  guint8  pulldown;
  guint8  interlace;
  guint8  tfcntrflag;
  guint8  finterpflag;
  guint8  psf;
  guint8  display_ext;
  guint16 disp_horiz_size;
  guint16 disp_vert_size;
  guint8  aspect_ratio_flag;
  guint8  aspect_ratio;
  guint8  aspect_horiz_size;
  guint8  aspect_vert_size;
  guint8  framerate_flag;
  guint8  framerateind;
  guint8  frameratenr;
  guint8  frameratedr;
  guint16 framerateexp;
  guint8  color_format_flag;
  guint8  color_prim;
  guint8  transfer_char;
  guint8  matrix_coef;
  guint8  hrd_param_flag;
  guint8  colordiff_format;
  GstVC1HrdParam hrd_param;
  /* computed */
  guint framerate; /* Around in fps, 0 if unknown*/
  guint bitrate;   /* Around in kpbs, 0 if unknown*/
  guint par_n;
  guint par_d;
  guint fps_n;
  guint fps_d;
  /* The last parsed entry point */
  GstVC1EntryPointHdr entrypoint;
};
Structure for the advanced profile sequence headers specific parameters.
Fields
level
		(GstVC1Level)
		–
	frmrtq_postproc
		(guint8)
		–
	bitrtq_postproc
		(guint8)
		–
	postprocflag
		(guint8)
		–
	max_coded_width
		(guint16)
		–
	max_coded_height
		(guint16)
		–
	pulldown
		(guint8)
		–
	interlace
		(guint8)
		–
	tfcntrflag
		(guint8)
		–
	finterpflag
		(guint8)
		–
	psf
		(guint8)
		–
	display_ext
		(guint8)
		–
	disp_horiz_size
		(guint16)
		–
	disp_vert_size
		(guint16)
		–
	aspect_ratio_flag
		(guint8)
		–
	aspect_ratio
		(guint8)
		–
	aspect_horiz_size
		(guint8)
		–
	aspect_vert_size
		(guint8)
		–
	framerate_flag
		(guint8)
		–
	framerateind
		(guint8)
		–
	frameratenr
		(guint8)
		–
	frameratedr
		(guint8)
		–
	framerateexp
		(guint16)
		–
	color_format_flag
		(guint8)
		–
	color_prim
		(guint8)
		–
	transfer_char
		(guint8)
		–
	matrix_coef
		(guint8)
		–
	hrd_param_flag
		(guint8)
		–
	colordiff_format
		(guint8)
		–
	hrd_param
		(GstVC1HrdParam)
		–
	framerate
		(guint)
		–
	bitrate
		(guint)
		–
	par_n
		(guint)
		–
	par_d
		(guint)
		–
	fps_n
		(guint)
		–
	fps_d
		(guint)
		–
	entrypoint
		(GstVC1EntryPointHdr)
		–
	GstVC1BDU
struct _GstVC1BDU
{
  GstVC1StartCode type;
  guint size;
  guint sc_offset;
  guint offset;
  guint8 * data;
};
Structure that represents a Bitstream Data Unit.
Fields
type
		(GstVC1StartCode)
		–
	size
		(guint)
		–
	sc_offset
		(guint)
		–
	offset
		(guint)
		–
	data
		(guint8 *)
		–
	GstVC1BitPlanes
struct _GstVC1BitPlanes
{
  guint8  *acpred;
  guint8  *fieldtx;
  guint8  *overflags;
  guint8  *mvtypemb;
  guint8  *skipmb;
  guint8  *directmb;
  guint8  *forwardmb;
  guint size; /* Size of the arrays */
};
	Fields
acpred
		(guint8 *)
		–
	fieldtx
		(guint8 *)
		–
	overflags
		(guint8 *)
		–
	mvtypemb
		(guint8 *)
		–
	skipmb
		(guint8 *)
		–
	directmb
		(guint8 *)
		–
	forwardmb
		(guint8 *)
		–
	size
		(guint)
		–
	GstVC1EntryPointHdr
struct _GstVC1EntryPointHdr
{
  guint8 broken_link;
  guint8 closed_entry;
  guint8 panscan_flag;
  guint8 refdist_flag;
  guint8 loopfilter;
  guint8 fastuvmc;
  guint8 extended_mv;
  guint8 dquant;
  guint8 vstransform;
  guint8 overlap;
  guint8 quantizer;
  guint8 coded_size_flag;
  guint16 coded_width;
  guint16 coded_height;
  guint8 extended_dmv;
  guint8 range_mapy_flag;
  guint8 range_mapy;
  guint8 range_mapuv_flag;
  guint8 range_mapuv;
  guint8 hrd_full[MAX_HRD_NUM_LEAKY_BUCKETS];
};
Structure for entrypoint header, this will be used only in advanced profiles
Fields
broken_link
		(guint8)
		–
	closed_entry
		(guint8)
		–
	panscan_flag
		(guint8)
		–
	refdist_flag
		(guint8)
		–
	loopfilter
		(guint8)
		–
	fastuvmc
		(guint8)
		–
	extended_mv
		(guint8)
		–
	dquant
		(guint8)
		–
	vstransform
		(guint8)
		–
	overlap
		(guint8)
		–
	quantizer
		(guint8)
		–
	coded_size_flag
		(guint8)
		–
	coded_width
		(guint16)
		–
	coded_height
		(guint16)
		–
	extended_dmv
		(guint8)
		–
	range_mapy_flag
		(guint8)
		–
	range_mapy
		(guint8)
		–
	range_mapuv_flag
		(guint8)
		–
	range_mapuv
		(guint8)
		–
	hrd_full
		(guint8[31] )
		–
	GstVC1FrameHdr
struct _GstVC1FrameHdr
{
  /* common fields */
  GstVC1PictureType ptype;
  guint8 interpfrm;
  guint8 halfqp;
  guint8 transacfrm;
  guint8 transdctab;
  guint8 pqindex;
  guint8 pquantizer;
  /* Computed */
  guint8 pquant;
  /* Convenience fields */
  guint8 profile;
  guint8 dquant;
  /*  If dquant */
  GstVC1VopDquant vopdquant;
  union {
    GstVC1PicSimpleMain simple;
    GstVC1PicAdvanced advanced;
  } pic;
  /* Size of the picture layer in bits */
  guint header_size;
};
Structure that represent picture in any profile or mode. You should look at ptype and profile to know what is currently in use.
Fields
ptype
		(GstVC1PictureType)
		–
	interpfrm
		(guint8)
		–
	halfqp
		(guint8)
		–
	transacfrm
		(guint8)
		–
	transdctab
		(guint8)
		–
	pqindex
		(guint8)
		–
	pquantizer
		(guint8)
		–
	pquant
		(guint8)
		–
	profile
		(guint8)
		–
	dquant
		(guint8)
		–
	vopdquant
		(GstVC1VopDquant)
		–
	pic.simple
		(GstVC1PicSimpleMain)
		–
	pic.advanced
		(GstVC1PicAdvanced)
		–
	header_size
		(guint)
		–
	GstVC1FrameLayer
struct _GstVC1FrameLayer
{
  guint8 key;
  guint32 framesize;
  guint32 timestamp;
  /* calculated */
  guint32 next_framelayer_offset;
  guint8 skiped_p_frame;
};
	Fields
key
		(guint8)
		–
	framesize
		(guint32)
		–
	timestamp
		(guint32)
		–
	next_framelayer_offset
		(guint32)
		–
	skiped_p_frame
		(guint8)
		–
	GstVC1HrdParam
struct _GstVC1HrdParam
{
  guint8 hrd_num_leaky_buckets;
  guint8 bit_rate_exponent;
  guint8 buffer_size_exponent;
  guint16 hrd_rate[MAX_HRD_NUM_LEAKY_BUCKETS];
  guint16 hrd_buffer[MAX_HRD_NUM_LEAKY_BUCKETS];
};
	Fields
hrd_num_leaky_buckets
		(guint8)
		–
	bit_rate_exponent
		(guint8)
		–
	buffer_size_exponent
		(guint8)
		–
	hrd_rate
		(guint16[31] )
		–
	hrd_buffer
		(guint16[31] )
		–
	GstVC1PicAdvanced
struct _GstVC1PicAdvanced
{
  GstVC1FrameCodingMode fcm;
  guint8  tfcntr;
  guint8  rptfrm;
  guint8  tff;
  guint8  rff;
  guint8  ps_present;
  guint32 ps_hoffset;
  guint32 ps_voffset;
  guint16 ps_width;
  guint16 ps_height;
  guint8  rndctrl;
  guint8  uvsamp;
  guint8  postproc;
  /*  B and P picture specific */
  guint8  mvrange;
  guint8  mvmode;
  guint8  mvtab;
  guint8  cbptab;
  guint8  ttmbf;
  guint8  ttfrm;
  /* B and BI picture only
   * Should be divided by #GST_VC1_BFRACTION_BASIS
   * to get the real value. */
  guint16 bfraction;
  /* ppic */
  guint8  mvmode2;
  guint8  lumscale;
  guint8  lumshift;
  /* bipic */
  guint8  bf;
  guint8  condover;
  guint8  transacfrm2;
  /* Biplane value, those fields only mention the fact
   * that the bitplane is in raw mode or not */
  guint8  acpred;
  guint8  overflags;
  guint8  mvtypemb;
  guint8  skipmb;
  guint8  directmb;
  guint8  forwardmb; /* B pic interlace field only */
  /* For interlaced pictures only */
  guint8  fieldtx;
  /* P and B pictures */
  guint8  intcomp;
  guint8  dmvrange;
  guint8  mbmodetab;
  guint8  imvtab;
  guint8  icbptab;
  guint8  mvbptab2;
  guint8  mvbptab4; /* If 4mvswitch in ppic */
  /*  P picture */
  guint8  mvswitch4;
  /* For interlaced fields only */
  guint16 refdist;
  guint8 fptype; /* Raw value */
  /* P pic */
  guint8  numref;
  guint8  reffield;
  guint8  lumscale2;
  guint8  lumshift2;
  guint8  intcompfield;
};
	Fields
fcm
		(GstVC1FrameCodingMode)
		–
	tfcntr
		(guint8)
		–
	rptfrm
		(guint8)
		–
	tff
		(guint8)
		–
	rff
		(guint8)
		–
	ps_present
		(guint8)
		–
	ps_hoffset
		(guint32)
		–
	ps_voffset
		(guint32)
		–
	ps_width
		(guint16)
		–
	ps_height
		(guint16)
		–
	rndctrl
		(guint8)
		–
	uvsamp
		(guint8)
		–
	postproc
		(guint8)
		–
	mvrange
		(guint8)
		–
	mvmode
		(guint8)
		–
	mvtab
		(guint8)
		–
	cbptab
		(guint8)
		–
	ttmbf
		(guint8)
		–
	ttfrm
		(guint8)
		–
	bfraction
		(guint16)
		–
	mvmode2
		(guint8)
		–
	lumscale
		(guint8)
		–
	lumshift
		(guint8)
		–
	bf
		(guint8)
		–
	condover
		(guint8)
		–
	transacfrm2
		(guint8)
		–
	acpred
		(guint8)
		–
	overflags
		(guint8)
		–
	mvtypemb
		(guint8)
		–
	skipmb
		(guint8)
		–
	directmb
		(guint8)
		–
	forwardmb
		(guint8)
		–
	fieldtx
		(guint8)
		–
	intcomp
		(guint8)
		–
	dmvrange
		(guint8)
		–
	mbmodetab
		(guint8)
		–
	imvtab
		(guint8)
		–
	icbptab
		(guint8)
		–
	mvbptab2
		(guint8)
		–
	mvbptab4
		(guint8)
		–
	mvswitch4
		(guint8)
		–
	refdist
		(guint16)
		–
	fptype
		(guint8)
		–
	numref
		(guint8)
		–
	reffield
		(guint8)
		–
	lumscale2
		(guint8)
		–
	lumshift2
		(guint8)
		–
	intcompfield
		(guint8)
		–
	GstVC1PicSimpleMain
struct _GstVC1PicSimpleMain
{
  guint8 frmcnt;
  guint8 mvrange;
  guint8 rangeredfrm;
  /* I and P pic simple and main profiles only */
  guint8 respic;
  /* I and BI pic simple and main profiles only */
  guint8 transacfrm2;
  guint8 bf;
  /* B and P pic simple and main profiles only */
  guint8 mvmode;
  guint8 mvtab;
  guint8 ttmbf;
  /* P pic simple and main profiles only */
  guint8 mvmode2;
  guint8 lumscale;
  guint8 lumshift;
  guint8 cbptab;
  guint8 ttfrm;
  /* B and BI picture only
   * Should be divided by #GST_VC1_BFRACTION_BASIS
   * to get the real value. */
  guint16 bfraction;
  /* Biplane value, those fields only mention the fact
   * that the bitplane is in raw mode or not */
  guint8 mvtypemb;
  guint8 skipmb;
  guint8 directmb; /* B pic main profile only */
};
	Fields
frmcnt
		(guint8)
		–
	mvrange
		(guint8)
		–
	rangeredfrm
		(guint8)
		–
	respic
		(guint8)
		–
	transacfrm2
		(guint8)
		–
	bf
		(guint8)
		–
	mvmode
		(guint8)
		–
	mvtab
		(guint8)
		–
	ttmbf
		(guint8)
		–
	mvmode2
		(guint8)
		–
	lumscale
		(guint8)
		–
	lumshift
		(guint8)
		–
	cbptab
		(guint8)
		–
	ttfrm
		(guint8)
		–
	bfraction
		(guint16)
		–
	mvtypemb
		(guint8)
		–
	skipmb
		(guint8)
		–
	directmb
		(guint8)
		–
	GstVC1SeqHdr
struct _GstVC1SeqHdr
{
  GstVC1Profile profile;
  GstVC1SeqStructC struct_c;
  /*  calculated */
  guint mb_height;
  guint mb_width;
  guint mb_stride;
  GstVC1AdvancedSeqHdr   advanced;
};
Structure for sequence headers in any profile.
Fields
profile
		(GstVC1Profile)
		–
	struct_c
		(GstVC1SeqStructC)
		–
	mb_height
		(guint)
		–
	mb_width
		(guint)
		–
	mb_stride
		(guint)
		–
	advanced
		(GstVC1AdvancedSeqHdr)
		–
	GstVC1SeqLayer
struct _GstVC1SeqLayer
{
  guint32 numframes;
  GstVC1SeqStructA struct_a;
  GstVC1SeqStructB struct_b;
  GstVC1SeqStructC struct_c;
};
	Fields
numframes
		(guint32)
		–
	struct_a
		(GstVC1SeqStructA)
		–
	struct_b
		(GstVC1SeqStructB)
		–
	struct_c
		(GstVC1SeqStructC)
		–
	GstVC1SeqStructA
struct _GstVC1SeqStructA
{
  guint32 vert_size;
  guint32 horiz_size;
};
	Fields
vert_size
		(guint32)
		–
	horiz_size
		(guint32)
		–
	GstVC1SeqStructB
struct _GstVC1SeqStructB
{
  GstVC1Level  level;
  guint8 cbr;
  guint32 framerate;
  /* In simple and main profiles only */
  guint32 hrd_buffer;
  guint32 hrd_rate;
};
	Fields
level
		(GstVC1Level)
		–
	cbr
		(guint8)
		–
	framerate
		(guint32)
		–
	hrd_buffer
		(guint32)
		–
	hrd_rate
		(guint32)
		–
	GstVC1SeqStructC
struct _GstVC1SeqStructC
{
  GstVC1Profile profile;
  /* Only in simple and main profiles */
  guint8 frmrtq_postproc;
  guint8 bitrtq_postproc;
  guint8 res_sprite;
  guint8 loop_filter;
  guint8 multires;
  guint8 fastuvmc;
  guint8 extended_mv;
  guint8 dquant;
  guint8 vstransform;
  guint8 overlap;
  guint8 syncmarker;
  guint8 rangered;
  guint8 maxbframes;
  guint8 quantizer;
  guint8 finterpflag;
  /* Computed */
  guint framerate; /* Around in fps, 0 if unknown*/
  guint bitrate;   /* Around in kpbs, 0 if unknown*/
  /* This should be filled by user if previously known */
  guint16 coded_width;
  /* This should be filled by user if previously known */
  guint16 coded_height;
  /* Wmvp specific */
  guint8 wmvp;          /* Specify if the stream is wmp or not */
  /* In the wmvp case, the framerate is not computed but in the bitstream */
  guint8 slice_code;
};
	Fields
profile
		(GstVC1Profile)
		–
	frmrtq_postproc
		(guint8)
		–
	bitrtq_postproc
		(guint8)
		–
	res_sprite
		(guint8)
		–
	loop_filter
		(guint8)
		–
	multires
		(guint8)
		–
	fastuvmc
		(guint8)
		–
	extended_mv
		(guint8)
		–
	dquant
		(guint8)
		–
	vstransform
		(guint8)
		–
	overlap
		(guint8)
		–
	syncmarker
		(guint8)
		–
	rangered
		(guint8)
		–
	maxbframes
		(guint8)
		–
	quantizer
		(guint8)
		–
	finterpflag
		(guint8)
		–
	framerate
		(guint)
		–
	bitrate
		(guint)
		–
	coded_width
		(guint16)
		–
	coded_height
		(guint16)
		–
	wmvp
		(guint8)
		–
	slice_code
		(guint8)
		–
	GstVC1SliceHdr
struct _GstVC1SliceHdr
{
  guint16 slice_addr;
  /* Size of the slice layer in bits */
  guint header_size;
};
Structure that represents slice layer in advanced profile.
Fields
slice_addr
		(guint16)
		–
	header_size
		(guint)
		–
	GstVC1VopDquant
struct _GstVC1VopDquant
{
  guint8 pqdiff;
  guint8 abspq;
  /* Computed */
  guint8 altpquant;
  /*  if dqant != 2*/
  guint8 dquantfrm;
  guint8 dqprofile;
  /* Boundary edge selection. This represents DQSBEDGE
   * if dqprofile == GST_VC1_DQPROFILE_SINGLE_EDGE or
   * DQDBEDGE if dqprofile == GST_VC1_DQPROFILE_DOUBLE_EDGE */
  guint8 dqbedge;
  /* FIXME: remove */
  guint8 unused;
  /* if dqprofile == GST_VC1_DQPROFILE_ALL_MBS */
  guint8 dqbilevel;
};
	Fields
pqdiff
		(guint8)
		–
	abspq
		(guint8)
		–
	altpquant
		(guint8)
		–
	dquantfrm
		(guint8)
		–
	dqprofile
		(guint8)
		–
	dqbedge
		(guint8)
		–
	unused
		(guint8)
		–
	dqbilevel
		(guint8)
		–
	Enumerations
GstVC1Condover
typedef enum {
  GST_VC1_CONDOVER_NONE,
  GST_VC1_CONDOVER_ALL,
  GST_VC1_CONDOVER_SELECT
} GstVC1Condover;
	Members
GST_VC1_CONDOVER_NONE
		(0)
		–
	GST_VC1_CONDOVER_ALL
		(1)
		–
	GST_VC1_CONDOVER_SELECT
		(2)
		–
	GstVC1DQProfile
typedef enum {
  GST_VC1_DQPROFILE_FOUR_EDGES,
  GST_VC1_DQPROFILE_DOUBLE_EDGES,
  GST_VC1_DQPROFILE_SINGLE_EDGE,
  GST_VC1_DQPROFILE_ALL_MBS
} GstVC1DQProfile;
	Members
GST_VC1_DQPROFILE_FOUR_EDGES
		(0)
		–
	GST_VC1_DQPROFILE_DOUBLE_EDGES
		(1)
		–
	GST_VC1_DQPROFILE_SINGLE_EDGE
		(2)
		–
	GST_VC1_DQPROFILE_ALL_MBS
		(3)
		–
	GstVC1FrameCodingMode
typedef enum
{
  GST_VC1_FRAME_PROGRESSIVE = 0x0,
  GST_VC1_FRAME_INTERLACE   = 0x10,
  GST_VC1_FIELD_INTERLACE   = 0x11
} GstVC1FrameCodingMode;
	Members
GST_VC1_FRAME_PROGRESSIVE
		(0)
		–
	GST_VC1_FRAME_INTERLACE
		(16)
		–
	GST_VC1_FIELD_INTERLACE
		(17)
		–
	GstVC1Level
typedef enum
{
    GST_VC1_LEVEL_LOW    = 0,    /* Simple/Main profile low level */
    GST_VC1_LEVEL_MEDIUM = 2,    /* Simple/Main profile medium level */
    GST_VC1_LEVEL_HIGH   = 4,   /* Main profile high level */
    GST_VC1_LEVEL_L0    = 0,    /* Advanced profile level 0 */
    GST_VC1_LEVEL_L1    = 1,    /* Advanced profile level 1 */
    GST_VC1_LEVEL_L2    = 2,    /* Advanced profile level 2 */
    GST_VC1_LEVEL_L3    = 3,    /* Advanced profile level 3 */
    GST_VC1_LEVEL_L4    = 4,    /* Advanced profile level 4 */
    /* 5 to 7 reserved */
    GST_VC1_LEVEL_UNKNOWN = 255  /* Unknown profile */
} GstVC1Level;
	Members
GST_VC1_LEVEL_LOW
		(0)
		–
	GST_VC1_LEVEL_MEDIUM
		(2)
		–
	GST_VC1_LEVEL_HIGH
		(4)
		–
	GST_VC1_LEVEL_L0
		(0)
		–
	GST_VC1_LEVEL_L1
		(1)
		–
	GST_VC1_LEVEL_L2
		(2)
		–
	GST_VC1_LEVEL_L3
		(3)
		–
	GST_VC1_LEVEL_L4
		(4)
		–
	GST_VC1_LEVEL_UNKNOWN
		(255)
		–
	GstVC1MvMode
typedef enum
{
  GST_VC1_MVMODE_1MV_HPEL_BILINEAR,
  GST_VC1_MVMODE_1MV,
  GST_VC1_MVMODE_1MV_HPEL,
  GST_VC1_MVMODE_MIXED_MV,
  GST_VC1_MVMODE_INTENSITY_COMP
} GstVC1MvMode;
	Members
GST_VC1_MVMODE_1MV_HPEL_BILINEAR
		(0)
		–
	GST_VC1_MVMODE_1MV
		(1)
		–
	GST_VC1_MVMODE_1MV_HPEL
		(2)
		–
	GST_VC1_MVMODE_MIXED_MV
		(3)
		–
	GST_VC1_MVMODE_INTENSITY_COMP
		(4)
		–
	GstVC1ParserResult
typedef enum {
  GST_VC1_PARSER_OK,
  GST_VC1_PARSER_BROKEN_DATA,
  GST_VC1_PARSER_NO_BDU,
  GST_VC1_PARSER_NO_BDU_END,
  GST_VC1_PARSER_ERROR,
} GstVC1ParserResult;
	Members
GST_VC1_PARSER_OK
		(0)
		–
	GST_VC1_PARSER_BROKEN_DATA
		(1)
		–
	GST_VC1_PARSER_NO_BDU
		(2)
		–
	GST_VC1_PARSER_NO_BDU_END
		(3)
		–
	GST_VC1_PARSER_ERROR
		(4)
		–
	GstVC1PictureType
typedef enum
{
  GST_VC1_PICTURE_TYPE_P,
  GST_VC1_PICTURE_TYPE_B,
  GST_VC1_PICTURE_TYPE_I,
  GST_VC1_PICTURE_TYPE_BI,
  GST_VC1_PICTURE_TYPE_SKIPPED
} GstVC1PictureType;
	Members
GST_VC1_PICTURE_TYPE_P
		(0)
		–
	GST_VC1_PICTURE_TYPE_B
		(1)
		–
	GST_VC1_PICTURE_TYPE_I
		(2)
		–
	GST_VC1_PICTURE_TYPE_BI
		(3)
		–
	GST_VC1_PICTURE_TYPE_SKIPPED
		(4)
		–
	GstVC1Profile
typedef enum {
  GST_VC1_PROFILE_SIMPLE,
  GST_VC1_PROFILE_MAIN,
  GST_VC1_PROFILE_RESERVED,
  GST_VC1_PROFILE_ADVANCED
} GstVC1Profile;
	Members
GST_VC1_PROFILE_SIMPLE
		(0)
		–
	GST_VC1_PROFILE_MAIN
		(1)
		–
	GST_VC1_PROFILE_RESERVED
		(2)
		–
	GST_VC1_PROFILE_ADVANCED
		(3)
		–
	GstVC1QuantizerSpec
typedef enum
{
  GST_VC1_QUANTIZER_IMPLICITLY,
  GST_VC1_QUANTIZER_EXPLICITLY,
  GST_VC1_QUANTIZER_NON_UNIFORM,
  GST_VC1_QUANTIZER_UNIFORM
} GstVC1QuantizerSpec;
	Members
GST_VC1_QUANTIZER_IMPLICITLY
		(0)
		–
	GST_VC1_QUANTIZER_EXPLICITLY
		(1)
		–
	GST_VC1_QUANTIZER_NON_UNIFORM
		(2)
		–
	GST_VC1_QUANTIZER_UNIFORM
		(3)
		–
	GstVC1StartCode
typedef enum {
  GST_VC1_END_OF_SEQ       = 0x0A,
  GST_VC1_SLICE            = 0x0B,
  GST_VC1_FIELD            = 0x0C,
  GST_VC1_FRAME            = 0x0D,
  GST_VC1_ENTRYPOINT       = 0x0E,
  GST_VC1_SEQUENCE         = 0x0F,
  GST_VC1_SLICE_USER       = 0x1B,
  GST_VC1_FIELD_USER       = 0x1C,
  GST_VC1_FRAME_USER       = 0x1D,
  GST_VC1_ENTRY_POINT_USER = 0x1E,
  GST_VC1_SEQUENCE_USER    = 0x1F
} GstVC1StartCode;
	Members
GST_VC1_END_OF_SEQ
		(10)
		–
	GST_VC1_SLICE
		(11)
		–
	GST_VC1_FIELD
		(12)
		–
	GST_VC1_FRAME
		(13)
		–
	GST_VC1_ENTRYPOINT
		(14)
		–
	GST_VC1_SEQUENCE
		(15)
		–
	GST_VC1_SLICE_USER
		(27)
		–
	GST_VC1_FIELD_USER
		(28)
		–
	GST_VC1_FRAME_USER
		(29)
		–
	GST_VC1_ENTRY_POINT_USER
		(30)
		–
	GST_VC1_SEQUENCE_USER
		(31)
		–
	The results of the search are