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
the data containing packet starting at |
||
guint |
offset of the start of the packet (without the 3 bytes startcode), but including the GstMpeg4StartCode byte. |
|
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 |
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