GstMpeg4Parser
For more details about the structures, you can refer to the specifications: ISO-IEC-14496-2_2004_MPEG4_VISUAL.pdf
Functions
gst_h263_parse
GstMpeg4ParseResult gst_h263_parse (GstMpeg4Packet * packet, guint8 * data, guint offset, gsize size)
Parses data and fills packet with the information of the next packet found.
Note that the type of the packet is meaningless in this case.
Parameters:
packet
–
The GstMpeg4Packet to fill
data
–
The data to parse
offset
–
offset from which to start the parsing
size
–
The size of the data to parse
gst_mpeg4_parse
GstMpeg4ParseResult gst_mpeg4_parse (GstMpeg4Packet * packet, gboolean skip_user_data, GstMpeg4VideoObjectPlane * vop, guint8 * data, guint offset, gsize size)
Parses data and fills packet with the information of the next packet found.
Parameters:
packet
–
The GstMpeg4Packet to fill
vop
–
The last parsed GstMpeg4VideoObjectPlane or NULL if you do not need to detect the resync codes.
data
–
The data to parse
offset
–
offset from which to start the parsing
size
–
The size of the data to parse
gst_mpeg4_parse_group_of_vop
GstMpeg4ParseResult gst_mpeg4_parse_group_of_vop (GstMpeg4GroupOfVOP * gov, guint8 * data, gsize size)
Parses data containing the group of video object plane packet, and fills the gov structure.
Parameters:
gov
–
The GstMpeg4GroupOfVOP structure to fill
data
–
The data to parse
size
–
The size of the data to parse
gst_mpeg4_parse_video_object_layer
GstMpeg4ParseResult gst_mpeg4_parse_video_object_layer (GstMpeg4VideoObjectLayer * vol, GstMpeg4VisualObject * vo, guint8 * data, gsize size)
Parses data containing the video object layer packet, and fills the vol structure.
Parameters:
vol
–
The GstMpeg4VideoObjectLayer structure to fill
vo
–
The GstMpeg4VisualObject currently being parsed or NULL
data
–
The data to parse
size
–
The size of the data to parse
gst_mpeg4_parse_video_object_plane
GstMpeg4ParseResult gst_mpeg4_parse_video_object_plane (GstMpeg4VideoObjectPlane * vop, GstMpeg4SpriteTrajectory * sprite_trajectory, GstMpeg4VideoObjectLayer * vol, guint8 * data, gsize size)
Parses data containing the video object plane packet, and fills the vol structure.
Parameters:
vop
–
The GstMpeg4VideoObjectPlane currently being parsed
sprite_trajectory
–
A GstMpeg4SpriteTrajectory to fill or NULL
vol
–
The GstMpeg4VideoObjectLayer structure to fill
data
–
The data to parse
size
–
The size of the data to parse
gst_mpeg4_parse_video_packet_header
GstMpeg4ParseResult gst_mpeg4_parse_video_packet_header (GstMpeg4VideoPacketHdr * videopackethdr, GstMpeg4VideoObjectLayer * vol, GstMpeg4VideoObjectPlane * vop, GstMpeg4SpriteTrajectory * sprite_trajectory, guint8 * data, gsize size)
Parsers data containing the video packet header and fills the videopackethdr structure
Parameters:
videopackethdr
–
The GstMpeg4VideoPacketHdr structure to fill
vol
–
The last parsed GstMpeg4VideoObjectLayer, will be updated with the information found during the parsing
vop
–
The last parsed GstMpeg4VideoObjectPlane, will be updated with the information found during the parsing
sprite_trajectory
–
A GstMpeg4SpriteTrajectory to fill or NULL with the information found during the parsing
data
–
The data to parse, should be set after the resync marker.
size
–
The size of the data to parse
gst_mpeg4_parse_video_plane_short_header
GstMpeg4ParseResult gst_mpeg4_parse_video_plane_short_header (GstMpeg4VideoPlaneShortHdr * shorthdr, guint8 * data, gsize size)
Parameters:
shorthdr
–
data
–
size
–
gst_mpeg4_parse_visual_object
GstMpeg4ParseResult gst_mpeg4_parse_visual_object (GstMpeg4VisualObject * vo, GstMpeg4VideoSignalType * signal_type, guint8 * data, gsize size)
Parses data containing the visual object packet, and fills the vo structure.
Parameters:
vo
–
The GstMpeg4VisualObject structure to fill
signal_type
–
The GstMpeg4VideoSignalType to fill or NULL
data
–
The data to parse, should contain the vo_start_code but not the start code prefix
size
–
The size of the data to parse
gst_mpeg4_parse_visual_object_sequence
GstMpeg4ParseResult gst_mpeg4_parse_visual_object_sequence (GstMpeg4VisualObjectSequence * vos, guint8 * data, gsize size)
Parses data containing the visual object sequence packet, and fills the vos structure.
Parameters:
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 data to parse
Structures
GstMpeg4GroupOfVOP
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
Fields
hours
		(guint8)
		–
	minutes
		(guint8)
		–
	seconds
		(guint8)
		–
	closed
		(guint8)
		–
	broken_link
		(guint8)
		–
	GstMpeg4Packet
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
Fields
data
		(guint8 *)
		–
	the data containing packet starting at offset
offset
		(guint)
		–
	offset of the start of the packet (without the 3 bytes startcode), but including the GstMpeg4StartCode byte.
marker_size
		(guint)
		–
	The size in bit of the resync marker.
type
		(GstMpeg4StartCode)
		–
	the type of the packet that start at offset
GstMpeg4SpriteTrajectory
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
Fields
vop_ref_points
		(guint16[63] )
		–
	sprite_ref_points
		(guint16[63] )
		–
	GstMpeg4VideoObjectLayer
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
Fields
random_accessible_vol
		(guint8)
		–
	video_object_type_indication
		(guint8)
		–
	is_object_layer_identifier
		(guint8)
		–
	verid
		(guint8)
		–
	priority
		(guint8)
		–
	aspect_ratio_info
		(GstMpeg4AspectRatioInfo)
		–
	par_width
		(guint8)
		–
	par_height
		(guint8)
		–
	control_parameters
		(guint8)
		–
	chroma_format
		(GstMpeg4ChromaFormat)
		–
	low_delay
		(guint8)
		–
	vbv_parameters
		(guint8)
		–
	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
		(guint16)
		–
	bit_rate
		(guint32)
		–
	vbv_buffer_size
		(guint32)
		–
	shape
		(GstMpeg4VideoObjectLayerShape)
		–
	shape_extension
		(guint8)
		–
	vop_time_increment_resolution
		(guint16)
		–
	vop_time_increment_bits
		(guint8)
		–
	fixed_vop_rate
		(guint8)
		–
	fixed_vop_time_increment
		(guint16)
		–
	width
		(guint16)
		–
	height
		(guint16)
		–
	interlaced
		(guint8)
		–
	obmc_disable
		(guint8)
		–
	sprite_enable
		(GstMpeg4SpriteEnable)
		–
	sprite_width
		(guint16)
		–
	sprite_height
		(guint16)
		–
	sprite_left_coordinate
		(guint16)
		–
	sprite_top_coordinate
		(guint16)
		–
	no_of_sprite_warping_points
		(guint8)
		–
	sprite_warping_accuracy
		(guint8)
		–
	sprite_brightness_change
		(guint8)
		–
	low_latency_sprite_enable
		(guint8)
		–
	sadct_disable
		(guint8)
		–
	not_8_bit
		(guint8)
		–
	quant_precision
		(guint8)
		–
	bits_per_pixel
		(guint8)
		–
	no_gray_quant_update
		(guint8)
		–
	composition_method
		(guint8)
		–
	linear_composition
		(guint8)
		–
	quant_type
		(guint8)
		–
	load_intra_quant_mat
		(guint8)
		–
	intra_quant_mat
		(guint8[64] )
		–
	load_non_intra_quant_mat
		(guint8)
		–
	non_intra_quant_mat
		(guint8[64] )
		–
	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
		(guint8)
		–
	short_hdr
		(GstMpeg4VideoPlaneShortHdr)
		–
	GstMpeg4VideoObjectPlane
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 information */
  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
Fields
coding_type
		(GstMpeg4VideoObjectCodingType)
		–
	modulo_time_base
		(guint8)
		–
	time_increment
		(guint16)
		–
	coded
		(guint8)
		–
	id
		(guint16)
		–
	id_for_prediction_indication
		(guint8)
		–
	id_for_prediction
		(guint16)
		–
	width
		(guint16)
		–
	height
		(guint16)
		–
	horizontal_mc_spatial_ref
		(guint16)
		–
	vertical_mc_spatial_ref
		(guint16)
		–
	rounding_type
		(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
		(guint8)
		–
	quant
		(guint16)
		–
	fcode_forward
		(guint8)
		–
	fcode_backward
		(guint8)
		–
	shape_coding_type
		(guint8)
		–
	load_backward_shape
		(guint8)
		–
	ref_select_code
		(guint8)
		–
	mb_height
		(guint16)
		–
	mb_width
		(guint16)
		–
	mb_num
		(guint)
		–
	size
		(guint)
		–
	GstMpeg4VideoPacketHdr
struct _GstMpeg4VideoPacketHdr {
  guint8  header_extension_code;
  guint16 macroblock_number;
  guint16 quant_scale;
  guint   size;
};
The video packet header structure as defined in: 6.2.5.2 Video Plane with Short Header
Fields
header_extension_code
		(guint8)
		–
	macroblock_number
		(guint16)
		–
	quant_scale
		(guint16)
		–
	size
		(guint)
		–
	Size of the header in bit.
GstMpeg4VideoPlaneShortHdr
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
Fields
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
		(guint8)
		–
	gob_header_empty
		(guint8)
		–
	gob_number
		(guint8)
		–
	gob_frame_id
		(guint8)
		–
	quant_scale
		(guint8)
		–
	vop_width
		(guint16)
		–
	vop_height
		(guint16)
		–
	num_macroblocks_in_gob
		(guint16)
		–
	num_gobs_in_vop
		(guint8)
		–
	size
		(guint)
		–
	GstMpeg4VideoSignalType
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.
Fields
type
		(guint8)
		–
	format
		(guint8)
		–
	range
		(guint8)
		–
	color_description
		(guint8)
		–
	color_primaries
		(guint8)
		–
	transfer_characteristics
		(guint8)
		–
	matrix_coefficients
		(guint8)
		–
	GstMpeg4VisualObject
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
Fields
is_identifier
		(guint8)
		–
	verid
		(guint8)
		–
	priority
		(guint8)
		–
	type
		(GstMpeg4VisualObjectType)
		–
	GstMpeg4VisualObjectSequence
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
Fields
profile_and_level_indication
		(guint8)
		–
	level
		(GstMpeg4Level)
		–
	profile
		(GstMpeg4Profile)
		–
	Enumerations
GstMpeg4AspectRatioInfo
typedef enum {
  GST_MPEG4_SQUARE        = 0x01,
  GST_MPEG4_625_TYPE_4_3  = 0x02,
  GST_MPEG4_525_TYPE_4_3  = 0x03,
  GST_MPEG4_625_TYPE_16_9 = 0x04,
  GST_MPEG4_525_TYPE_16_9 = 0x05,
  GST_MPEG4_EXTENDED_PAR  = 0x0f,
} GstMpeg4AspectRatioInfo;
Defines the different pixel aspect ratios as defined in: Table 6-12 -- Meaning of pixel aspect ratio
Members
GST_MPEG4_SQUARE
		(1)
		–
	1:1 square
GST_MPEG4_625_TYPE_4_3
		(2)
		–
	12:11 (625-type for 4:3 picture)
GST_MPEG4_525_TYPE_4_3
		(3)
		–
	10:11 (525-type for 4:3 picture)
GST_MPEG4_625_TYPE_16_9
		(4)
		–
	16:11 (625-type stretched for 16:9 picture)
GST_MPEG4_525_TYPE_16_9
		(5)
		–
	40:33 (525-type stretched for 16:9 picture)
GST_MPEG4_EXTENDED_PAR
		(15)
		–
	Extended par
GstMpeg4ChromaFormat
typedef enum {
  /* Other value are reserved */
  GST_MPEG4_CHROMA_4_2_0 = 0x01
} GstMpeg4ChromaFormat;
The chroma format in use as defined in: Table 6-13 -- Meaning of chroma_format
Members
GST_MPEG4_CHROMA_4_2_0
		(1)
		–
	GstMpeg4Level
typedef enum {
  GST_MPEG4_LEVEL0,
  GST_MPEG4_LEVEL1,
  GST_MPEG4_LEVEL2,
  GST_MPEG4_LEVEL3,
  GST_MPEG4_LEVEL3b,
  GST_MPEG4_LEVEL4,
  GST_MPEG4_LEVEL5,
  GST_MPEG4_LEVEL_RESERVED
} GstMpeg4Level;
Different levels as defined in: 9- Profiles and levels
It is computed using: Table G.1 — FLC table for profile_and_level_indication
Members
GST_MPEG4_LEVEL0
		(0)
		–
	GST_MPEG4_LEVEL1
		(1)
		–
	GST_MPEG4_LEVEL2
		(2)
		–
	GST_MPEG4_LEVEL3
		(3)
		–
	GST_MPEG4_LEVEL3b
		(4)
		–
	GST_MPEG4_LEVEL4
		(5)
		–
	GST_MPEG4_LEVEL5
		(6)
		–
	GST_MPEG4_LEVEL_RESERVED
		(7)
		–
	GstMpeg4ParseResult
typedef enum {
  GST_MPEG4_PARSER_OK,
  GST_MPEG4_PARSER_BROKEN_DATA,
  GST_MPEG4_PARSER_NO_PACKET,
  GST_MPEG4_PARSER_NO_PACKET_END,
  GST_MPEG4_PARSER_ERROR,
} GstMpeg4ParseResult;
Result type of any parsing function.
Members
GST_MPEG4_PARSER_OK
		(0)
		–
	The parsing went well
GST_MPEG4_PARSER_BROKEN_DATA
		(1)
		–
	The bitstream was broken
GST_MPEG4_PARSER_NO_PACKET
		(2)
		–
	There was no packet in the buffer
GST_MPEG4_PARSER_NO_PACKET_END
		(3)
		–
	There was no packet end in the buffer
GST_MPEG4_PARSER_ERROR
		(4)
		–
	GstMpeg4Profile
typedef enum {
  GST_MPEG4_PROFILE_CORE,
  GST_MPEG4_PROFILE_MAIN,
  GST_MPEG4_PROFILE_N_BIT,
  GST_MPEG4_PROFILE_SIMPLE,
  GST_MPEG4_PROFILE_HYBRID,
  GST_MPEG4_PROFILE_RESERVED,
  GST_MPEG4_PROFILE_SIMPLE_FBA,
  GST_MPEG4_PROFILE_CORE_STUDIO,
  GST_MPEG4_PROFILE_SIMPLE_STUDIO,
  GST_MPEG4_PROFILE_CORE_SCALABLE,
  GST_MPEG4_PROFILE_ADVANCED_CORE,
  GST_MPEG4_PROFILE_ADVANCED_SIMPLE,
  GST_MPEG4_PROFILE_SIMPLE_SCALABLE,
  GST_MPEG4_PROFILE_SCALABLE_TEXTURE,
  GST_MPEG4_PROFILE_SIMPLE_FACE_ANIMATION,
  GST_MPEG4_PROFILE_BASIC_ANIMATED_TEXTURE,
  GST_MPEG4_PROFILE_ADVANCED_REALTIME_SIMPLE,
  GST_MPEG4_PROFILE_ADVANCED_SCALABLE_TEXTURE,
  GST_MPEG4_PROFILE_FINE_GRANULARITY_SCALABLE,
  GST_MPEG4_PROFILE_ADVANCED_CODING_EFFICIENCY
} GstMpeg4Profile;
Different defined profiles as defined in: 9- Profiles and levels
It is computed using: Table G.1 — FLC table for profile_and_level_indication
Members
GST_MPEG4_PROFILE_CORE
		(0)
		–
	GST_MPEG4_PROFILE_MAIN
		(1)
		–
	GST_MPEG4_PROFILE_N_BIT
		(2)
		–
	GST_MPEG4_PROFILE_SIMPLE
		(3)
		–
	GST_MPEG4_PROFILE_HYBRID
		(4)
		–
	GST_MPEG4_PROFILE_RESERVED
		(5)
		–
	GST_MPEG4_PROFILE_SIMPLE_FBA
		(6)
		–
	GST_MPEG4_PROFILE_CORE_STUDIO
		(7)
		–
	GST_MPEG4_PROFILE_SIMPLE_STUDIO
		(8)
		–
	GST_MPEG4_PROFILE_CORE_SCALABLE
		(9)
		–
	GST_MPEG4_PROFILE_ADVANCED_CORE
		(10)
		–
	GST_MPEG4_PROFILE_ADVANCED_SIMPLE
		(11)
		–
	GST_MPEG4_PROFILE_SIMPLE_SCALABLE
		(12)
		–
	GST_MPEG4_PROFILE_SCALABLE_TEXTURE
		(13)
		–
	GST_MPEG4_PROFILE_SIMPLE_FACE_ANIMATION
		(14)
		–
	GST_MPEG4_PROFILE_BASIC_ANIMATED_TEXTURE
		(15)
		–
	GST_MPEG4_PROFILE_ADVANCED_REALTIME_SIMPLE
		(16)
		–
	GST_MPEG4_PROFILE_ADVANCED_SCALABLE_TEXTURE
		(17)
		–
	GST_MPEG4_PROFILE_FINE_GRANULARITY_SCALABLE
		(18)
		–
	GST_MPEG4_PROFILE_ADVANCED_CODING_EFFICIENCY
		(19)
		–
	GstMpeg4SpriteEnable
typedef enum {
  GST_MPEG4_SPRITE_UNUSED,
  GST_MPEG4_SPRITE_STATIC,
  GST_MPEG4_SPRITE_GMG
} GstMpeg4SpriteEnable;
Indicates the usage of static sprite coding or global motion compensation (GMC) as defined in: Table V2 - 2 -- Meaning of sprite_enable codewords
Members
GST_MPEG4_SPRITE_UNUSED
		(0)
		–
	GST_MPEG4_SPRITE_STATIC
		(1)
		–
	GST_MPEG4_SPRITE_GMG
		(2)
		–
	GstMpeg4StartCode
typedef enum
{
  GST_MPEG4_VIDEO_OBJ_FIRST      = 0x00,
  GST_MPEG4_VIDEO_OBJ_LAST       = 0x1f,
  GST_MPEG4_VIDEO_LAYER_FIRST    = 0x20,
  GST_MPEG4_VIDEO_LAYER_LAST     = 0x2f,
  GST_MPEG4_VISUAL_OBJ_SEQ_START = 0xb0,
  GST_MPEG4_VISUAL_OBJ_SEQ_END   = 0xb1,
  GST_MPEG4_USER_DATA            = 0xb2,
  GST_MPEG4_GROUP_OF_VOP         = 0xb3,
  GST_MPEG4_VIDEO_SESSION_ERR    = 0xb4,
  GST_MPEG4_VISUAL_OBJ           = 0xb5,
  GST_MPEG4_VIDEO_OBJ_PLANE      = 0xb6,
  GST_MPEG4_FBA                  = 0xba,
  GST_MPEG4_FBA_PLAN             = 0xbb,
  GST_MPEG4_MESH                 = 0xbc,
  GST_MPEG4_MESH_PLAN            = 0xbd,
  GST_MPEG4_STILL_TEXTURE_OBJ    = 0xbe,
  GST_MPEG4_TEXTURE_SPATIAL      = 0xbf,
  GST_MPEG4_TEXTURE_SNR_LAYER    = 0xc0,
  GST_MPEG4_TEXTURE_TILE         = 0xc1,
  GST_MPEG4_SHAPE_LAYER          = 0xc2,
  GST_MPEG4_STUFFING             = 0xc3,
  GST_MPEG4_SYSTEM_FIRST         = 0xc6,
  GST_MPEG4_SYSTEM_LAST          = 0xff,
  GST_MPEG4_RESYNC               = 0xfff
} GstMpeg4StartCode;
Defines the different startcodes present in the bitstream as defined in: Table 6-3 — Start code values
Members
GST_MPEG4_VIDEO_OBJ_FIRST
		(0)
		–
	GST_MPEG4_VIDEO_OBJ_LAST
		(31)
		–
	GST_MPEG4_VIDEO_LAYER_FIRST
		(32)
		–
	GST_MPEG4_VIDEO_LAYER_LAST
		(47)
		–
	GST_MPEG4_VISUAL_OBJ_SEQ_START
		(176)
		–
	GST_MPEG4_VISUAL_OBJ_SEQ_END
		(177)
		–
	GST_MPEG4_USER_DATA
		(178)
		–
	GST_MPEG4_GROUP_OF_VOP
		(179)
		–
	GST_MPEG4_VIDEO_SESSION_ERR
		(180)
		–
	GST_MPEG4_VISUAL_OBJ
		(181)
		–
	GST_MPEG4_VIDEO_OBJ_PLANE
		(182)
		–
	GST_MPEG4_FBA
		(186)
		–
	GST_MPEG4_FBA_PLAN
		(187)
		–
	GST_MPEG4_MESH
		(188)
		–
	GST_MPEG4_MESH_PLAN
		(189)
		–
	GST_MPEG4_STILL_TEXTURE_OBJ
		(190)
		–
	GST_MPEG4_TEXTURE_SPATIAL
		(191)
		–
	GST_MPEG4_TEXTURE_SNR_LAYER
		(192)
		–
	GST_MPEG4_TEXTURE_TILE
		(193)
		–
	GST_MPEG4_SHAPE_LAYER
		(194)
		–
	GST_MPEG4_STUFFING
		(195)
		–
	GST_MPEG4_SYSTEM_FIRST
		(198)
		–
	GST_MPEG4_SYSTEM_LAST
		(255)
		–
	GST_MPEG4_RESYNC
		(4095)
		–
	GstMpeg4VideoObjectCodingType
typedef enum {
  GST_MPEG4_I_VOP = 0x0,
  GST_MPEG4_P_VOP = 0x1,
  GST_MPEG4_B_VOP = 0x2,
  GST_MPEG4_S_VOP = 0x3
} GstMpeg4VideoObjectCodingType;
The vop coding types as defined in: Table 6-20 -- Meaning of vop_coding_type
Members
GST_MPEG4_I_VOP
		(0)
		–
	intra-coded (I)
GST_MPEG4_P_VOP
		(1)
		–
	predictive-coded (P)
GST_MPEG4_B_VOP
		(2)
		–
	bidirectionally-predictive-coded (B)
GST_MPEG4_S_VOP
		(3)
		–
	sprite (S)
GstMpeg4VideoObjectLayerShape
typedef enum {
  GST_MPEG4_RECTANGULAR,
  GST_MPEG4_BINARY,
  GST_MPEG4_BINARY_ONLY,
  GST_MPEG4_GRAYSCALE
} GstMpeg4VideoObjectLayerShape;
The different video object layer shapes as defined in: Table 6-16 — Video Object Layer shape type
Members
GST_MPEG4_RECTANGULAR
		(0)
		–
	GST_MPEG4_BINARY
		(1)
		–
	GST_MPEG4_BINARY_ONLY
		(2)
		–
	GST_MPEG4_GRAYSCALE
		(3)
		–
	GstMpeg4VisualObjectType
typedef enum {
  GST_MPEG4_VIDEO_ID         = 0x01,
  GST_MPEG4_STILL_TEXTURE_ID = 0x02,
  GST_MPEG4_STILL_MESH_ID    = 0x03,
  GST_MPEG4_STILL_FBA_ID     = 0x04,
  GST_MPEG4_STILL_3D_MESH_ID = 0x05,
  /*... reserved */
} GstMpeg4VisualObjectType;
Defines the different visual object types as defined in: Table 6-5 -- Meaning of visual object type
Members
GST_MPEG4_VIDEO_ID
		(1)
		–
	GST_MPEG4_STILL_TEXTURE_ID
		(2)
		–
	GST_MPEG4_STILL_MESH_ID
		(3)
		–
	GST_MPEG4_STILL_FBA_ID
		(4)
		–
	GST_MPEG4_STILL_3D_MESH_ID
		(5)
		–
	The results of the search are