| Top |  |  |  |  | 
| enum | GstMpeg4StartCode | 
| enum | GstMpeg4VisualObjectType | 
| enum | GstMpeg4AspectRatioInfo | 
| enum | GstMpeg4ParseResult | 
| enum | GstMpeg4VideoObjectCodingType | 
| enum | GstMpeg4ChromaFormat | 
| enum | GstMpeg4VideoObjectLayerShape | 
| enum | GstMpeg4SpriteEnable | 
| enum | GstMpeg4Profile | 
| enum | GstMpeg4Level | 
| struct | GstMpeg4VisualObjectSequence | 
| struct | GstMpeg4VisualObject | 
| struct | GstMpeg4VideoSignalType | 
| struct | GstMpeg4VideoPlaneShortHdr | 
| struct | GstMpeg4VideoObjectLayer | 
| struct | GstMpeg4SpriteTrajectory | 
| struct | GstMpeg4GroupOfVOP | 
| struct | GstMpeg4VideoObjectPlane | 
| struct | GstMpeg4Packet | 
| struct | GstMpeg4VideoPacketHdr | 
For more details about the structures, you can refer to the specifications: ISO-IEC-14496-2_2004_MPEG4_VISUAL.pdf
GstMpeg4ParseResult gst_mpeg4_parse (GstMpeg4Packet *packet,gboolean skip_user_data,GstMpeg4VideoObjectPlane *vop,const guint8 *data,guint offset,gsize size);
Parses data
 and fills packet
 with the information of the next packet
found.
| packet | The GstMpeg4Packet to fill | |
| skip_user_data | ||
| vop | The last parsed GstMpeg4VideoObjectPlane or  | |
| offset | offset from which to start the parsing | |
| data | The data to parse | |
| size | The size of the  | 
GstMpeg4ParseResult gst_mpeg4_parse_video_object_plane (GstMpeg4VideoObjectPlane *vop,GstMpeg4SpriteTrajectory *sprite_trajectory,GstMpeg4VideoObjectLayer *vol,const guint8 *data,gsize size);
Parses data
 containing the video object plane packet, and fills the vol
structure.
| vop | The GstMpeg4VideoObjectPlane currently being parsed | |
| sprite_trajectory | A GstMpeg4SpriteTrajectory to fill or  | |
| vol | The GstMpeg4VideoObjectLayer structure to fill | |
| data | The data to parse | |
| size | The size of the  | 
GstMpeg4ParseResult gst_mpeg4_parse_group_of_vop (GstMpeg4GroupOfVOP *gov,const guint8 *data,gsize size);
Parses data
 containing the group of video object plane packet, and fills
the gov
 structure.
| gov | The GstMpeg4GroupOfVOP structure to fill | |
| data | The data to parse | |
| size | The size of the  | 
GstMpeg4ParseResult gst_mpeg4_parse_video_object_layer (GstMpeg4VideoObjectLayer *vol,GstMpeg4VisualObject *vo,const guint8 *data,gsize size);
Parses data
 containing the video object layer packet, and fills
the vol
 structure.
| vol | The GstMpeg4VideoObjectLayer structure to fill | |
| vo | The GstMpeg4VisualObject currently being parsed or  | |
| data | The data to parse | |
| size | The size of the  | 
GstMpeg4ParseResult gst_mpeg4_parse_visual_object (GstMpeg4VisualObject *vo,GstMpeg4VideoSignalType *signal_type,const guint8 *data,gsize size);
Parses data
 containing the visual object packet, and fills
the vo
 structure.
| vo | The GstMpeg4VisualObject structure to fill | |
| signal_type | The GstMpeg4VideoSignalType to fill or  | |
| data | The data to parse, should contain the vo_start_code but not the start code prefix | |
| size | The size of the  | 
GstMpeg4ParseResult gst_mpeg4_parse_visual_object_sequence (GstMpeg4VisualObjectSequence *vos,const guint8 *data,gsize size);
Parses data
 containing the visual object sequence packet, and fills
the vos
 structure.
| vos | The GstMpeg4VisualObjectSequence structure to fill | |
| data | The data to parse, should contain the visual_object_sequence_start_code but not the start code prefix | |
| size | The size of the  | 
GstMpeg4ParseResult gst_mpeg4_parse_video_packet_header (GstMpeg4VideoPacketHdr *videopackethdr,GstMpeg4VideoObjectLayer *vol,GstMpeg4VideoObjectPlane *vop,GstMpeg4SpriteTrajectory *sprite_trajectory,const guint8 *data,gsize size);
Parsers data
 containing the video packet header
and fills the videopackethdr
 structure
| videopackethdr | The GstMpeg4VideoPacketHdr structure to fill | |
| vol | The last parsed GstMpeg4VideoObjectLayer, will be updated with the informations found during the parsing | |
| vop | The last parsed GstMpeg4VideoObjectPlane, will be updated with the informations found during the parsing | |
| sprite_trajectory | A GstMpeg4SpriteTrajectory to fill or  | |
| data | The data to parse, should be set after the resync marker. | |
| size | The size of the data to parse | 
Defines the different startcodes present in the bitstream as defined in: Table 6-3 — Start code values
Defines the different visual object types as defined in: Table 6-5 -- Meaning of visual object type
Defines the different pixel aspect ratios as defined in: Table 6-12 -- Meaning of pixel aspect ratio
The vop coding types as defined in: Table 6-20 -- Meaning of vop_coding_type
The chroma format in use as defined in: Table 6-13 -- Meaning of chroma_format
The different video object layer shapes as defined in: Table 6-16 — Video Object Layer shape type
Indicates the usage of static sprite coding or global motion compensation (GMC) as defined in: Table V2 - 2 -- Meaning of sprite_enable codewords
Different defined profiles as defined in: 9- Profiles and levels
It is computed using: Table G.1 — FLC table for profile_and_level_indication
Different levels as defined in: 9- Profiles and levels
It is computed using: Table G.1 — FLC table for profile_and_level_indication
struct GstMpeg4VisualObjectSequence {
  guint8 profile_and_level_indication;
  /* Computed according to:
   * Table G.1 — FLC table for profile_and_level_indication */
  GstMpeg4Level level;
  GstMpeg4Profile profile;
};
The visual object sequence structure as defined in: 6.2.2 Visual Object Sequence and Visual Object
struct GstMpeg4VisualObject {
  guint8 is_identifier;
  /* If is_identifier */
  guint8 verid;
  guint8 priority;
  GstMpeg4VisualObjectType type;
};
The visual object structure as defined in: 6.2.2 Visual Object Sequence and Visual Object
struct GstMpeg4VideoSignalType {
  guint8 type;
  guint8 format;
  guint8 range;
  guint8 color_description;
  guint8 color_primaries;
  guint8 transfer_characteristics;
  guint8 matrix_coefficients;
};
The video signal type structure as defined in: 6.2.2 Visual Object Sequence and Visual Object.
struct GstMpeg4VideoPlaneShortHdr {
  guint8 temporal_reference;
  guint8 split_screen_indicator;
  guint8 document_camera_indicator;
  guint8 full_picture_freeze_release;
  guint8 source_format;
  guint8 picture_coding_type;
  guint8 vop_quant;
  guint8 pei;
  guint8 psupp;
  /*  Gob layer specific fields */
  guint8 gob_header_empty;
  guint8 gob_number;
  guint8 gob_frame_id;
  guint8 quant_scale;
  /* Computed
   * If all the values are set to 0, then it is reserved
   * Table 6-25 -- Parameters Defined by source_format Field
   */
  guint16 vop_width;
  guint16 vop_height;
  guint16 num_macroblocks_in_gob;
  guint8 num_gobs_in_vop;
  /* The size in bits */
  guint size;
};
The video plane short header structure as defined in: 6.2.5.2 Video Plane with Short Header
struct GstMpeg4VideoObjectLayer {
  guint8 random_accessible_vol;
  guint8 video_object_type_indication;
  guint8 is_object_layer_identifier;
  /* if is_object_layer_identifier */
  guint8 verid;
  guint8 priority;
  GstMpeg4AspectRatioInfo aspect_ratio_info;
  guint8 par_width;
  guint8 par_height;
  guint8 control_parameters;
  /* if control_parameters */
  GstMpeg4ChromaFormat chroma_format;
  guint8 low_delay;
  guint8 vbv_parameters;
  /* if vbv_parameters */
  guint16 first_half_bitrate;
  guint16 latter_half_bitrate;
  guint16 first_half_vbv_buffer_size;
  guint16 latter_half_vbv_buffer_size;
  guint16 first_half_vbv_occupancy;
  guint16 latter_half_vbv_occupancy;
  /* Computed values */
  guint32 bit_rate;
  guint32 vbv_buffer_size;
  GstMpeg4VideoObjectLayerShape shape;
  /* if shape == GST_MPEG4_GRAYSCALE && verid =! 1 */
  guint8 shape_extension;
  guint16 vop_time_increment_resolution;
  guint8 vop_time_increment_bits;
  guint8 fixed_vop_rate;
  /* if fixed_vop_rate */
  guint16 fixed_vop_time_increment;
  guint16 width;
  guint16 height;
  guint8 interlaced;
  guint8 obmc_disable;
  GstMpeg4SpriteEnable sprite_enable;
  /* if vol->sprite_enable == SPRITE_GMG or SPRITE_STATIC*/
  /* if vol->sprite_enable != GST_MPEG4_SPRITE_GMG */
  guint16 sprite_width;
  guint16 sprite_height;
  guint16 sprite_left_coordinate;
  guint16 sprite_top_coordinate;
  guint8 no_of_sprite_warping_points;
  guint8 sprite_warping_accuracy;
  guint8 sprite_brightness_change;
  /* if vol->sprite_enable != GST_MPEG4_SPRITE_GMG */
  guint8 low_latency_sprite_enable;
  /* if shape != GST_MPEG4_RECTANGULAR */
  guint8 sadct_disable;
  guint8 not_8_bit;
  /* if no_8_bit */
  guint8 quant_precision;
  guint8 bits_per_pixel;
  /* if shape == GRAYSCALE */
  guint8 no_gray_quant_update;
  guint8 composition_method;
  guint8 linear_composition;
  guint8 quant_type;
  /* if quant_type */
  guint8 load_intra_quant_mat;
  guint8 intra_quant_mat[64];
  guint8 load_non_intra_quant_mat;
  guint8 non_intra_quant_mat[64];
  guint8 quarter_sample;
  guint8 complexity_estimation_disable;
  guint8 resync_marker_disable;
  guint8 data_partitioned;
  guint8 reversible_vlc;
  guint8 newpred_enable;
  guint8 reduced_resolution_vop_enable;
  guint8 scalability;
  guint8 enhancement_type;
  GstMpeg4VideoPlaneShortHdr short_hdr;
};
The video object layer structure as defined in: 6.2.3 Video Object Layer
struct GstMpeg4SpriteTrajectory {
  guint16 vop_ref_points[63]; /* Defined as "du" in 6.2.5.4 */
  guint16 sprite_ref_points[63]; /* Defined as "dv" in 6.2.5.4 */
};
The sprite trajectory structure as defined in: 7.8.4 Sprite reference point decoding and 6.2.5.4 Sprite coding
struct GstMpeg4GroupOfVOP {
  guint8 hours;
  guint8 minutes;
  guint8 seconds;
  guint8 closed;
  guint8 broken_link;
};
The group of video object plane structure as defined in: 6.2.4 Group of Video Object Plane
struct GstMpeg4VideoObjectPlane {
  GstMpeg4VideoObjectCodingType coding_type;
  guint8  modulo_time_base;
  guint16 time_increment;
  guint8  coded;
  /* if newpred_enable */
  guint16 id;
  guint8  id_for_prediction_indication;
  guint16 id_for_prediction;
  guint16 width;
  guint16 height;
  guint16 horizontal_mc_spatial_ref;
  guint16 vertical_mc_spatial_ref;
  guint8  rounding_type;
  /*if vol->shape != GST_MPEG4_RECTANGULAR */
  guint8  background_composition;
  guint8  change_conv_ratio_disable;
  guint8  constant_alpha;
  guint8  constant_alpha_value;
  guint8  reduced_resolution;
  guint8  intra_dc_vlc_thr;
  guint8  top_field_first;
  guint8  alternate_vertical_scan_flag;
  guint16 quant;
  guint8  fcode_forward;
  guint8  fcode_backward;
  guint8  shape_coding_type;
  guint8  load_backward_shape;
  guint8  ref_select_code;
  /* Computed macroblock informations */
  guint16 mb_height;
  guint16 mb_width;
  guint mb_num;
  /* The size of the header */
  guint    size;
};
The Video object plane structure as defined in: 6.2.5 Video Object Plane and Video Plane with Short Header
struct GstMpeg4Packet {
  const guint8     *data;
  guint             offset;
  gsize             size;
  guint             marker_size;
  GstMpeg4StartCode type;
};
A structure that contains the type of a packet, its offset and its size
| const guint8 * | the data containing packet starting at  | |
| guint  | offset of the start of the packet (without the 3 bytes startcode), but including the GstMpeg4StartCode byte. | |
| gsize  | The size in bytes of the packet or  | |
| guint  | The size in bit of the resync marker. | |
| GstMpeg4StartCode  | the type of the packet that start at  |