diff options
author | Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com> | 2009-03-29 15:28:06 +0200 |
---|---|---|
committer | Jan Schmidt <thaytan@noraisin.net> | 2009-06-20 15:21:22 +0100 |
commit | f70ddb66050244bdc0833d7cdc6c1b2e64f425ff (patch) | |
tree | c410ebd1299781df75d7e1a4dfa5fd25a6f763e4 /sys/vdpau/mpegutil.h | |
parent | 584b000583c7050689d7a93e5d6dc7083bbdfcbd (diff) | |
download | gst-plugins-bad-f70ddb66050244bdc0833d7cdc6c1b2e64f425ff.tar.gz gst-plugins-bad-f70ddb66050244bdc0833d7cdc6c1b2e64f425ff.tar.bz2 gst-plugins-bad-f70ddb66050244bdc0833d7cdc6c1b2e64f425ff.zip |
vdpau: create VdpDecoder in set_caps add more functions for parsing mpeg
Diffstat (limited to 'sys/vdpau/mpegutil.h')
-rw-r--r-- | sys/vdpau/mpegutil.h | 39 |
1 files changed, 38 insertions, 1 deletions
diff --git a/sys/vdpau/mpegutil.h b/sys/vdpau/mpegutil.h index f0f8aca0..929e4fbb 100644 --- a/sys/vdpau/mpegutil.h +++ b/sys/vdpau/mpegutil.h @@ -24,6 +24,8 @@ #include <gst/gst.h> typedef struct MPEGSeqHdr MPEGSeqHdr; +typedef struct MPEGPictureHdr MPEGPictureHdr; +typedef struct MPEGPictureExt MPEGPictureExt; /* Packet ID codes for different packet types we * care about */ @@ -40,6 +42,12 @@ typedef struct MPEGSeqHdr MPEGSeqHdr; #define MPEG_PACKET_EXT_SEQUENCE 0x01 #define MPEG_PACKET_EXT_SEQUENCE_DISPLAY 0x02 #define MPEG_PACKET_EXT_QUANT_MATRIX 0x03 +#define MPEG_PACKET_EXT_PICTURE_CODING 0x08 + +/* frame types */ +#define I_FRAME 1 +#define P_FRAME 2 +#define B_FRAME 3 struct MPEGSeqHdr { @@ -55,9 +63,38 @@ struct MPEGSeqHdr /* mpeg2 decoder profile */ gint profile; + + guint8 intra_quantizer_matrix[64]; + guint8 non_intra_quantizer_matrix[64]; +}; + +struct MPEGPictureHdr +{ + guint8 pic_type; + + guint8 full_pel_forward_vector, full_pel_backward_vector; + + guint8 f_code[2][2]; +}; + +struct MPEGPictureExt +{ + 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; }; gboolean mpeg_util_parse_sequence_hdr (MPEGSeqHdr *hdr, - guint8 *data, guint8 *end); + guint8 *data, guint8 *end); + +gboolean mpeg_util_parse_picture_hdr (MPEGPictureHdr * hdr, guint8 * data, guint8 * end); + +gboolean mpeg_util_parse_picture_coding_extension (MPEGPictureExt *ext, guint8 *data, guint8 *end); #endif |