# 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

Returns (gboolean) –

TRUE if everything went fine, FALSE otherwise

### gst_vc1_bitplanes_free

    void
    gst_vc1_bitplanes_free (GstVC1BitPlanes * bitplanes)

Parameters:

`bitplanes` –
No description available
Returns (void ) –
No description available

### gst_vc1_bitplanes_free_1

    void
    gst_vc1_bitplanes_free_1 (GstVC1BitPlanes * bitplanes)

Parameters:

`bitplanes` –
No description available
Returns (void ) –
No description available

### gst_vc1_bitplanes_new

    GstVC1BitPlanes *
    gst_vc1_bitplanes_new ()

Creates a new GstVC1BitPlanes. It should be freed with gst_vc1_bitplanes_free after use.

Returns (GstVC1BitPlanes *) –

a new GstVC1BitPlanes

### gst_vc1_identify_next_bdu

    GstVC1ParserResult
    gst_vc1_identify_next_bdu (const 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

Returns (GstVC1ParserResult) –

a GstVC1ParserResult

### gst_vc1_parse_entry_point_header

    GstVC1ParserResult
    gst_vc1_parse_entry_point_header (const 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

Returns (GstVC1ParserResult) –

a GstVC1EntryPointHdr

### gst_vc1_parse_field_header

    GstVC1ParserResult
    gst_vc1_parse_field_header (const 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

Returns (GstVC1ParserResult) –

a GstVC1ParserResult

### gst_vc1_parse_frame_header

    GstVC1ParserResult
    gst_vc1_parse_frame_header (const 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

Returns (GstVC1ParserResult) –

a GstVC1ParserResult

### gst_vc1_parse_frame_layer

    GstVC1ParserResult
    gst_vc1_parse_frame_layer (const 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.

Returns (GstVC1ParserResult) –

a GstVC1ParserResult

### gst_vc1_parse_sequence_header

    GstVC1ParserResult
    gst_vc1_parse_sequence_header (const guint8 * data,
                                   gsize size,
                                   GstVC1SeqHdr * seqhdr)

Parses data, and fills seqhdr fields.

Parameters:

`data` –

The data to parse

`size` –

the size of data

`seqhdr` –

The GstVC1SeqHdr to set.

Returns (GstVC1ParserResult) –

a GstVC1ParserResult

### gst_vc1_parse_sequence_header_struct_a

    GstVC1ParserResult
    gst_vc1_parse_sequence_header_struct_a (const guint8 * data,
                                            gsize size,
                                            GstVC1SeqStructA * structa)

Parses data, and fills structa fields.

Parameters:

`data` –

The data to parse

`size` –

the size of data

`structa` –

The GstVC1SeqStructA to set.

Returns (GstVC1ParserResult) –

a GstVC1ParserResult

### gst_vc1_parse_sequence_header_struct_b

    GstVC1ParserResult
    gst_vc1_parse_sequence_header_struct_b (const guint8 * data,
                                            gsize size,
                                            GstVC1SeqStructB * structb)

Parses data, and fills structb fields.

Parameters:

`data` –

The data to parse

`size` –

the size of data

`structb` –

The GstVC1SeqStructB to set.

Returns (GstVC1ParserResult) –

a GstVC1ParserResult

### gst_vc1_parse_sequence_header_struct_c

    GstVC1ParserResult
    gst_vc1_parse_sequence_header_struct_c (const guint8 * data,
                                            gsize size,
                                            GstVC1SeqStructC * structc)

Parses data, and fills structc fields.

Parameters:

`data` –

The data to parse

`size` –

the size of data

`structc` –

The GstVC1SeqStructC to set.

Returns (GstVC1ParserResult) –

a GstVC1ParserResult

### gst_vc1_parse_sequence_layer

    GstVC1ParserResult
    gst_vc1_parse_sequence_layer (const guint8 * data,
                                  gsize size,
                                  GstVC1SeqLayer * seqlayer)

Parses data, and fills seqlayer fields.

Parameters:

`data` –

The data to parse

`size` –

the size of data

`seqlayer` –

The GstVC1SeqLayer to set.

Returns (GstVC1ParserResult) –

a GstVC1ParserResult

### gst_vc1_parse_slice_header

    GstVC1ParserResult
    gst_vc1_parse_slice_header (const 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

Returns (GstVC1ParserResult) –

a GstVC1ParserResult

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) –
No description available
`frmrtq_postproc` (guint8) –
No description available
`bitrtq_postproc` (guint8) –
No description available
`postprocflag` (guint8) –
No description available
`max_coded_width` (guint16) –
No description available
`max_coded_height` (guint16) –
No description available
`pulldown` (guint8) –
No description available
`interlace` (guint8) –
No description available
`tfcntrflag` (guint8) –
No description available
`finterpflag` (guint8) –
No description available
`psf` (guint8) –
No description available
`display_ext` (guint8) –
No description available
`disp_horiz_size` (guint16) –
No description available
`disp_vert_size` (guint16) –
No description available
`aspect_ratio_flag` (guint8) –
No description available
`aspect_ratio` (guint8) –
No description available
`aspect_horiz_size` (guint8) –
No description available
`aspect_vert_size` (guint8) –
No description available
`framerate_flag` (guint8) –
No description available
`framerateind` (guint8) –
No description available
`frameratenr` (guint8) –
No description available
`frameratedr` (guint8) –
No description available
`framerateexp` (guint16) –
No description available
`color_format_flag` (guint8) –
No description available
`color_prim` (guint8) –
No description available
`transfer_char` (guint8) –
No description available
`matrix_coef` (guint8) –
No description available
`hrd_param_flag` (guint8) –
No description available
`colordiff_format` (guint8) –
No description available
`hrd_param` (GstVC1HrdParam) –
No description available
`framerate` (guint) –
No description available
`bitrate` (guint) –
No description available
`par_n` (guint) –
No description available
`par_d` (guint) –
No description available
`fps_n` (guint) –
No description available
`fps_d` (guint) –
No description available
`entrypoint` (GstVC1EntryPointHdr) –
No description available

### GstVC1BDU

    struct _GstVC1BDU
    {
      GstVC1StartCode type;
      guint size;
      guint sc_offset;
      guint offset;
      guint8 * data;
    };

Structure that represents a Bitstream Data Unit.

#### Fields

`type` (GstVC1StartCode) –
No description available
`size` (guint) –
No description available
`sc_offset` (guint) –
No description available
`offset` (guint) –
No description available
`data` (guint8 *) –
No description available

### 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 *) –
No description available
`fieldtx` (guint8 *) –
No description available
`overflags` (guint8 *) –
No description available
`mvtypemb` (guint8 *) –
No description available
`skipmb` (guint8 *) –
No description available
`directmb` (guint8 *) –
No description available
`forwardmb` (guint8 *) –
No description available
`size` (guint) –
No description available

### 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) –
No description available
`closed_entry` (guint8) –
No description available
`panscan_flag` (guint8) –
No description available
`refdist_flag` (guint8) –
No description available
`loopfilter` (guint8) –
No description available
`fastuvmc` (guint8) –
No description available
`extended_mv` (guint8) –
No description available
`dquant` (guint8) –
No description available
`vstransform` (guint8) –
No description available
`overlap` (guint8) –
No description available
`quantizer` (guint8) –
No description available
`coded_size_flag` (guint8) –
No description available
`coded_width` (guint16) –
No description available
`coded_height` (guint16) –
No description available
`extended_dmv` (guint8) –
No description available
`range_mapy_flag` (guint8) –
No description available
`range_mapy` (guint8) –
No description available
`range_mapuv_flag` (guint8) –
No description available
`range_mapuv` (guint8) –
No description available
`hrd_full` (guint8[31] ) –
No description available

### 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) –
No description available
`interpfrm` (guint8) –
No description available
`halfqp` (guint8) –
No description available
`transacfrm` (guint8) –
No description available
`transdctab` (guint8) –
No description available
`pqindex` (guint8) –
No description available
`pquantizer` (guint8) –
No description available
`pquant` (guint8) –
No description available
`profile` (guint8) –
No description available
`dquant` (guint8) –
No description available
`vopdquant` (GstVC1VopDquant) –
No description available
`pic.simple` (GstVC1PicSimpleMain) –
No description available
`pic.advanced` (GstVC1PicAdvanced) –
No description available
`header_size` (guint) –
No description available

### GstVC1FrameLayer

    struct _GstVC1FrameLayer
    {
      guint8 key;
      guint32 framesize;

      guint32 timestamp;

      /* calculated */
      guint32 next_framelayer_offset;
      guint8 skiped_p_frame;
    };

#### Fields

`key` (guint8) –
No description available
`framesize` (guint32) –
No description available
`timestamp` (guint32) –
No description available
`next_framelayer_offset` (guint32) –
No description available
`skiped_p_frame` (guint8) –
No description available

### 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) –
No description available
`bit_rate_exponent` (guint8) –
No description available
`buffer_size_exponent` (guint8) –
No description available
`hrd_rate` (guint16[31] ) –
No description available
`hrd_buffer` (guint16[31] ) –
No description available

### 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) –
No description available
`tfcntr` (guint8) –
No description available
`rptfrm` (guint8) –
No description available
`tff` (guint8) –
No description available
`rff` (guint8) –
No description available
`ps_present` (guint8) –
No description available
`ps_hoffset` (guint32) –
No description available
`ps_voffset` (guint32) –
No description available
`ps_width` (guint16) –
No description available
`ps_height` (guint16) –
No description available
`rndctrl` (guint8) –
No description available
`uvsamp` (guint8) –
No description available
`postproc` (guint8) –
No description available
`mvrange` (guint8) –
No description available
`mvmode` (guint8) –
No description available
`mvtab` (guint8) –
No description available
`cbptab` (guint8) –
No description available
`ttmbf` (guint8) –
No description available
`ttfrm` (guint8) –
No description available
`bfraction` (guint16) –
No description available
`mvmode2` (guint8) –
No description available
`lumscale` (guint8) –
No description available
`lumshift` (guint8) –
No description available
`bf` (guint8) –
No description available
`condover` (guint8) –
No description available
`transacfrm2` (guint8) –
No description available
`acpred` (guint8) –
No description available
`overflags` (guint8) –
No description available
`mvtypemb` (guint8) –
No description available
`skipmb` (guint8) –
No description available
`directmb` (guint8) –
No description available
`forwardmb` (guint8) –
No description available
`fieldtx` (guint8) –
No description available
`intcomp` (guint8) –
No description available
`dmvrange` (guint8) –
No description available
`mbmodetab` (guint8) –
No description available
`imvtab` (guint8) –
No description available
`icbptab` (guint8) –
No description available
`mvbptab2` (guint8) –
No description available
`mvbptab4` (guint8) –
No description available
`mvswitch4` (guint8) –
No description available
`refdist` (guint16) –
No description available
`fptype` (guint8) –
No description available
`numref` (guint8) –
No description available
`reffield` (guint8) –
No description available
`lumscale2` (guint8) –
No description available
`lumshift2` (guint8) –
No description available
`intcompfield` (guint8) –
No description available

### 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) –
No description available
`mvrange` (guint8) –
No description available
`rangeredfrm` (guint8) –
No description available
`respic` (guint8) –
No description available
`transacfrm2` (guint8) –
No description available
`bf` (guint8) –
No description available
`mvmode` (guint8) –
No description available
`mvtab` (guint8) –
No description available
`ttmbf` (guint8) –
No description available
`mvmode2` (guint8) –
No description available
`lumscale` (guint8) –
No description available
`lumshift` (guint8) –
No description available
`cbptab` (guint8) –
No description available
`ttfrm` (guint8) –
No description available
`bfraction` (guint16) –
No description available
`mvtypemb` (guint8) –
No description available
`skipmb` (guint8) –
No description available
`directmb` (guint8) –
No description available

### 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) –
No description available
`struct_c` (GstVC1SeqStructC) –
No description available
`mb_height` (guint) –
No description available
`mb_width` (guint) –
No description available
`mb_stride` (guint) –
No description available
`advanced` (GstVC1AdvancedSeqHdr) –
No description available

### GstVC1SeqLayer

    struct _GstVC1SeqLayer
    {
      guint32 numframes;

      GstVC1SeqStructA struct_a;
      GstVC1SeqStructB struct_b;
      GstVC1SeqStructC struct_c;
    };

#### Fields

`numframes` (guint32) –
No description available
`struct_a` (GstVC1SeqStructA) –
No description available
`struct_b` (GstVC1SeqStructB) –
No description available
`struct_c` (GstVC1SeqStructC) –
No description available

### GstVC1SeqStructA

    struct _GstVC1SeqStructA
    {
      guint32 vert_size;
      guint32 horiz_size;
    };

#### Fields

`vert_size` (guint32) –
No description available
`horiz_size` (guint32) –
No description available

### GstVC1SeqStructB

    struct _GstVC1SeqStructB
    {
      GstVC1Level  level;

      guint8 cbr;
      guint32 framerate;

      /* In simple and main profiles only */
      guint32 hrd_buffer;
      guint32 hrd_rate;
    };

#### Fields

`level` (GstVC1Level) –
No description available
`cbr` (guint8) –
No description available
`framerate` (guint32) –
No description available
`hrd_buffer` (guint32) –
No description available
`hrd_rate` (guint32) –
No description available

### 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) –
No description available
`frmrtq_postproc` (guint8) –
No description available
`bitrtq_postproc` (guint8) –
No description available
`res_sprite` (guint8) –
No description available
`loop_filter` (guint8) –
No description available
`multires` (guint8) –
No description available
`fastuvmc` (guint8) –
No description available
`extended_mv` (guint8) –
No description available
`dquant` (guint8) –
No description available
`vstransform` (guint8) –
No description available
`overlap` (guint8) –
No description available
`syncmarker` (guint8) –
No description available
`rangered` (guint8) –
No description available
`maxbframes` (guint8) –
No description available
`quantizer` (guint8) –
No description available
`finterpflag` (guint8) –
No description available
`framerate` (guint) –
No description available
`bitrate` (guint) –
No description available
`coded_width` (guint16) –
No description available
`coded_height` (guint16) –
No description available
`wmvp` (guint8) –
No description available
`slice_code` (guint8) –
No description available

### 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) –
No description available
`header_size` (guint) –
No description available

### 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) –
No description available
`abspq` (guint8) –
No description available
`altpquant` (guint8) –
No description available
`dquantfrm` (guint8) –
No description available
`dqprofile` (guint8) –
No description available
`dqbedge` (guint8) –
No description available
`unused` (guint8) –
No description available
`dqbilevel` (guint8) –
No description available

## Enumerations

### GstVC1Condover

    typedef enum {
      GST_VC1_CONDOVER_NONE,
      GST_VC1_CONDOVER_ALL,
      GST_VC1_CONDOVER_SELECT
    } GstVC1Condover;

#### Members

`GST_VC1_CONDOVER_NONE` (0) –
No description available
`GST_VC1_CONDOVER_ALL` (1) –
No description available
`GST_VC1_CONDOVER_SELECT` (2) –
No description available

### 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) –
No description available
`GST_VC1_DQPROFILE_DOUBLE_EDGES` (1) –
No description available
`GST_VC1_DQPROFILE_SINGLE_EDGE` (2) –
No description available
`GST_VC1_DQPROFILE_ALL_MBS` (3) –
No description available

### 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) –
No description available
`GST_VC1_FRAME_INTERLACE` (16) –
No description available
`GST_VC1_FIELD_INTERLACE` (17) –
No description available

### 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) –
No description available
`GST_VC1_LEVEL_MEDIUM` (2) –
No description available
`GST_VC1_LEVEL_HIGH` (4) –
No description available
`GST_VC1_LEVEL_L0` (0) –
No description available
`GST_VC1_LEVEL_L1` (1) –
No description available
`GST_VC1_LEVEL_L2` (2) –
No description available
`GST_VC1_LEVEL_L3` (3) –
No description available
`GST_VC1_LEVEL_L4` (4) –
No description available
`GST_VC1_LEVEL_UNKNOWN` (255) –
No description available

### 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) –
No description available
`GST_VC1_MVMODE_1MV` (1) –
No description available
`GST_VC1_MVMODE_1MV_HPEL` (2) –
No description available
`GST_VC1_MVMODE_MIXED_MV` (3) –
No description available
`GST_VC1_MVMODE_INTENSITY_COMP` (4) –
No description available

### 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) –
No description available
`GST_VC1_PARSER_BROKEN_DATA` (1) –
No description available
`GST_VC1_PARSER_NO_BDU` (2) –
No description available
`GST_VC1_PARSER_NO_BDU_END` (3) –
No description available
`GST_VC1_PARSER_ERROR` (4) –
No description available

### 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) –
No description available
`GST_VC1_PICTURE_TYPE_B` (1) –
No description available
`GST_VC1_PICTURE_TYPE_I` (2) –
No description available
`GST_VC1_PICTURE_TYPE_BI` (3) –
No description available
`GST_VC1_PICTURE_TYPE_SKIPPED` (4) –
No description available

### 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) –
No description available
`GST_VC1_PROFILE_MAIN` (1) –
No description available
`GST_VC1_PROFILE_RESERVED` (2) –
No description available
`GST_VC1_PROFILE_ADVANCED` (3) –
No description available

### 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) –
No description available
`GST_VC1_QUANTIZER_EXPLICITLY` (1) –
No description available
`GST_VC1_QUANTIZER_NON_UNIFORM` (2) –
No description available
`GST_VC1_QUANTIZER_UNIFORM` (3) –
No description available

### 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) –
No description available
`GST_VC1_SLICE` (11) –
No description available
`GST_VC1_FIELD` (12) –
No description available
`GST_VC1_FRAME` (13) –
No description available
`GST_VC1_ENTRYPOINT` (14) –
No description available
`GST_VC1_SEQUENCE` (15) –
No description available
`GST_VC1_SLICE_USER` (27) –
No description available
`GST_VC1_FIELD_USER` (28) –
No description available
`GST_VC1_FRAME_USER` (29) –
No description available
`GST_VC1_ENTRY_POINT_USER` (30) –
No description available
`GST_VC1_SEQUENCE_USER` (31) –
No description available

The results of the search are