summaryrefslogtreecommitdiffstats
path: root/sys/vdpau/mpegutil.h
diff options
context:
space:
mode:
authorCarl-Anton Ingmarsson <ca.ingmarsson@gmail.com>2009-03-29 15:28:06 +0200
committerJan Schmidt <thaytan@noraisin.net>2009-06-20 15:21:22 +0100
commitf70ddb66050244bdc0833d7cdc6c1b2e64f425ff (patch)
treec410ebd1299781df75d7e1a4dfa5fd25a6f763e4 /sys/vdpau/mpegutil.h
parent584b000583c7050689d7a93e5d6dc7083bbdfcbd (diff)
downloadgst-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.h39
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