Top |
GstMpegvideoParserGstMpegvideoParser — Convenience library for mpeg1 and 2 video bitstream parsing. |
enum | GstMpegVideoPacketTypeCode |
enum | GstMpegVideoPacketExtensionCode |
enum | GstMpegVideoLevel |
enum | GstMpegVideoProfile |
enum | GstMpegVideoPictureType |
enum | GstMpegVideoPictureStructure |
struct | GstMpegVideoSequenceHdr |
struct | GstMpegVideoSequenceExt |
struct | GstMpegVideoPictureHdr |
struct | GstMpegVideoGop |
struct | GstMpegVideoPictureExt |
struct | GstMpegVideoQuantMatrixExt |
gboolean gst_mpeg_video_parse (GstMpegVideoPacket *packet
,const guint8 *data
,gsize size
,guint offset
);
Parses the MPEG 1/2 video bitstream contained in data
, and returns the
offset, and if known also the size, in packet
. This function will scan
the data to find the next packet if needed.
gboolean gst_mpeg_video_packet_parse_sequence_header (const GstMpegVideoPacket *packet
,GstMpegVideoSequenceHdr *seqhdr
);
Parses the seqhdr
MPEG Video Sequence Header structure members
from video packet
packet |
The GstMpegVideoPacket that carries the data |
|
seqhdr |
The GstMpegVideoSequenceHdr structure to fill. |
[out] |
Since: 1.2
gboolean gst_mpeg_video_packet_parse_sequence_extension (const GstMpegVideoPacket *packet
,GstMpegVideoSequenceExt *seqext
);
Parses the seqext
MPEG Video Sequence Extension structure members
from video packet
packet |
The GstMpegVideoPacket that carries the data |
|
seqext |
The GstMpegVideoSequenceExt structure to fill. |
[out] |
Since: 1.2
gboolean gst_mpeg_video_packet_parse_sequence_display_extension (const GstMpegVideoPacket *packet
,GstMpegVideoSequenceDisplayExt *seqdisplayext
);
Parses the seqext
MPEG Video Sequence Display Extension structure
members from video packet
packet |
The GstMpegVideoPacket that carries the data |
|
seqdisplayext |
The GstMpegVideoSequenceDisplayExt structure to fill. |
[out] |
Since: 1.2
gboolean gst_mpeg_video_packet_parse_sequence_scalable_extension (const GstMpegVideoPacket *packet
,GstMpegVideoSequenceScalableExt *seqscaleext
);
Parses the seqscaleext
MPEG Video Sequence Scalable Extension structure
members from video packet
packet |
The GstMpegVideoPacket that carries the data |
|
seqscaleext |
The GstMpegVideoSequenceScalableExt structure to fill. |
[out] |
Since: 1.2
gboolean gst_mpeg_video_packet_parse_picture_header (const GstMpegVideoPacket *packet
,GstMpegVideoPictureHdr *pichdr
);
Parsers the pichdr
MPEG Video Picture Header structure members
from video packet
packet |
The GstMpegVideoPacket that carries the data |
|
pichdr |
The GstMpegVideoPictureHdr structure to fill. |
[out] |
Since: 1.2
gboolean gst_mpeg_video_packet_parse_picture_extension (const GstMpegVideoPacket *packet
,GstMpegVideoPictureExt *picext
);
Parse the ext
MPEG Video Picture Extension structure members from
video packet
packet |
The GstMpegVideoPacket that carries the data |
|
ext |
The GstMpegVideoPictureExt structure to fill. |
[out] |
Since: 1.2
gboolean gst_mpeg_video_packet_parse_gop (const GstMpegVideoPacket *packet
,GstMpegVideoGop *gop
);
Parses the gop
MPEG Video Group of Picture structure members from
video packet
packet |
The GstMpegVideoPacket that carries the data |
|
gop |
The GstMpegVideoGop structure to fill. |
[out] |
Since: 1.2
gboolean gst_mpeg_video_packet_parse_slice_header (const GstMpegVideoPacket *packet
,GstMpegVideoSliceHdr *slice_hdr
,GstMpegVideoSequenceHdr *seq_hdr
,GstMpegVideoSequenceScalableExt *seqscaleext
);
Parses the GstMpegVideoSliceHdr
structure members from data
packet |
The GstMpegVideoPacket that carries the data |
|
slice_hdr |
The GstMpegVideoSliceHdr structure to fill. |
[out] |
seqhdr |
The GstMpegVideoSequenceHdr header |
|
seqscaleext |
The GstMpegVideoSequenceScalableExt header |
Since: 1.2
gboolean gst_mpeg_video_packet_parse_quant_matrix_extension (const GstMpegVideoPacket *packet
,GstMpegVideoQuantMatrixExt *quant
);
Parses the quant
MPEG Video Quantization Matrix Extension
structure members from video packet
packet |
The GstMpegVideoPacket that carries the data |
|
quant |
The GstMpegVideoQuantMatrixExt structure to fill. |
[out] |
Since: 1.2
gboolean gst_mpeg_video_finalise_mpeg2_sequence_header (GstMpegVideoSequenceHdr *hdr
,GstMpegVideoSequenceExt *seqext
,GstMpegVideoSequenceDisplayExt *displayext
);
void gst_mpeg_video_quant_matrix_get_raster_from_zigzag (guint8 out_quant[64]
,const guint8 quant[64]
);
Converts quantization matrix quant
from zigzag scan order to
raster scan order and store the resulting factors into out_quant
.
Note: it is an error to pass the same table in both quant
and
out_quant
arguments.
Since: 1.2
void gst_mpeg_video_quant_matrix_get_zigzag_from_raster (guint8 out_quant[64]
,const guint8 quant[64]
);
Converts quantization matrix quant
from raster scan order to
zigzag scan order and store the resulting factors into out_quant
.
Note: it is an error to pass the same table in both quant
and
out_quant
arguments.
Since: 1.2
Indicates the type of MPEG packet
Indicates what type of packets are in this block, some are mutually exclusive though - ie, sequence packs are accumulated separately. GOP & Picture may occur together or separately.
Mpeg-2 Profiles.
struct GstMpegVideoSequenceHdr { guint16 width, height; guint8 aspect_ratio_info; guint8 frame_rate_code; guint32 bitrate_value; guint16 vbv_buffer_size_value; guint8 constrained_parameters_flag; guint8 load_intra_quantiser_matrix; guint8 intra_quantizer_matrix[64]; guint8 load_non_intra_quantiser_matrix; guint8 non_intra_quantizer_matrix[64]; /* Calculated values */ guint par_w, par_h; guint fps_n, fps_d; guint bitrate; };
The Mpeg2 Video Sequence Header structure.
guint16 |
Width of each frame |
|
guint16 |
Height of each frame |
|
guint8 |
||
guint8 |
||
guint32 |
Value of the bitrate as is in the stream (400bps unit) |
|
guint16 |
||
guint8 |
|
|
guint8 |
|
|
guint8 |
intra-quantization table, in zigzag scan order |
|
guint8 |
|
|
guint8 |
non-intra quantization table, in zigzag scan order |
|
guint |
Calculated Pixel Aspect Ratio width |
|
guint |
Calculated Pixel Aspect Ratio height |
|
guint |
Calculated Framrate nominator |
|
guint |
Calculated Framerate denominator |
|
guint |
the real bitrate of the Mpeg video stream in bits per second, 0 if VBR stream |
struct GstMpegVideoSequenceExt { /* mpeg2 decoder profile */ guint8 profile; /* mpeg2 decoder level */ guint8 level; guint8 progressive; guint8 chroma_format; guint8 horiz_size_ext, vert_size_ext; guint16 bitrate_ext; guint8 vbv_buffer_size_extension; guint8 low_delay; guint8 fps_n_ext, fps_d_ext; /* Additional information */ guint8 profile_level_escape_bit; };
The Mpeg2 Video Sequence Extension structure.
guint8 |
mpeg2 decoder profile |
|
guint8 |
mpeg2 decoder level |
|
guint8 |
||
guint8 |
indicates the chrominance format |
|
guint8 |
Horizontal size |
|
guint8 |
Vertical size |
|
guint16 |
The bitrate |
|
guint8 |
VBV vuffer size |
|
guint8 |
|
|
guint8 |
Framerate nominator code |
|
guint8 |
Framerate denominator code |
|
guint8 |
Escape bit. If set, the meaning of the
|
struct GstMpegVideoPictureHdr { guint16 tsn; guint8 pic_type; guint16 vbv_delay; guint8 full_pel_forward_vector, full_pel_backward_vector; guint8 f_code[2][2]; };
The Mpeg2 Video Picture Header structure.
struct GstMpegVideoGop { guint8 drop_frame_flag; guint8 hour, minute, second, frame; guint8 closed_gop; guint8 broken_link; };
The Mpeg Video Group of Picture structure.
struct GstMpegVideoPictureExt { guint8 f_code[2][2]; guint8 intra_dc_precision; guint8 picture_structure; guint8 top_field_first; guint8 frame_pred_frame_dct; guint8 concealment_motion_vectors; guint8 q_scale_type; guint8 intra_vlc_format; guint8 alternate_scan; guint8 repeat_first_field; guint8 chroma_420_type; guint8 progressive_frame; guint8 composite_display; guint8 v_axis; guint8 field_sequence; guint8 sub_carrier; guint8 burst_amplitude; guint8 sub_carrier_phase; };
The Mpeg2 Video Picture Extension structure.
guint8 |
||
guint8 |
Intra DC precision |
|
guint8 |
Structure of the picture |
|
guint8 |
Top field first |
|
guint8 |
Frame |
|
guint8 |
Concealment Motion Vectors |
|
guint8 |
Q Scale Type |
|
guint8 |
Intra Vlc Format |
|
guint8 |
Alternate Scan |
|
guint8 |
Repeat First Field |
|
guint8 |
Chroma 420 Type |
|
guint8 |
||
guint8 |
||
guint8 |
||
guint8 |
||
guint8 |
||
guint8 |
||
guint8 |
struct GstMpegVideoQuantMatrixExt { guint8 load_intra_quantiser_matrix; guint8 intra_quantiser_matrix[64]; guint8 load_non_intra_quantiser_matrix; guint8 non_intra_quantiser_matrix[64]; guint8 load_chroma_intra_quantiser_matrix; guint8 chroma_intra_quantiser_matrix[64]; guint8 load_chroma_non_intra_quantiser_matrix; guint8 chroma_non_intra_quantiser_matrix[64]; };
The Quant Matrix Extension structure that exposes quantization matrices in zigzag scan order. i.e. the original encoded scan order.