summaryrefslogtreecommitdiffstats
path: root/sys/vdpau/gstvdpaudevice.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/vdpau/gstvdpaudevice.h')
-rw-r--r--sys/vdpau/gstvdpaudevice.h51
1 files changed, 51 insertions, 0 deletions
diff --git a/sys/vdpau/gstvdpaudevice.h b/sys/vdpau/gstvdpaudevice.h
index a4d147c4..c1c6608a 100644
--- a/sys/vdpau/gstvdpaudevice.h
+++ b/sys/vdpau/gstvdpaudevice.h
@@ -70,6 +70,57 @@ struct _GstVdpauDevice
VdpDecoderGetParameters *vdp_decoder_get_parameters;
};
+typedef struct
+{
+ VdpChromaType chroma_type;
+ VdpYCbCrFormat format;
+ guint32 fourcc;
+} VdpauFormats;
+
+#define N_CHROMA_TYPES 3
+#define N_FORMATS 7
+
+static const VdpChromaType chroma_types[N_CHROMA_TYPES] =
+ { VDP_CHROMA_TYPE_420, VDP_CHROMA_TYPE_422, VDP_CHROMA_TYPE_444 };
+
+static const VdpauFormats formats[N_FORMATS] = {
+ {
+ VDP_CHROMA_TYPE_420,
+ VDP_YCBCR_FORMAT_NV12,
+ GST_MAKE_FOURCC ('N', 'V', '1', '2')
+ },
+ {
+ VDP_CHROMA_TYPE_422,
+ VDP_YCBCR_FORMAT_UYVY,
+ GST_MAKE_FOURCC ('U', 'Y', 'V', 'Y')
+ },
+ {
+ VDP_CHROMA_TYPE_444,
+ VDP_YCBCR_FORMAT_V8U8Y8A8,
+ GST_MAKE_FOURCC ('A', 'Y', 'U', 'V')
+ },
+ {
+ VDP_CHROMA_TYPE_444,
+ VDP_YCBCR_FORMAT_Y8U8V8A8,
+ GST_MAKE_FOURCC ('A', 'V', 'U', 'Y')
+ },
+ {
+ VDP_CHROMA_TYPE_422,
+ VDP_YCBCR_FORMAT_YUYV,
+ GST_MAKE_FOURCC ('Y', 'U', 'Y', 'V')
+ },
+ {
+ VDP_CHROMA_TYPE_420,
+ VDP_YCBCR_FORMAT_YV12,
+ GST_MAKE_FOURCC ('Y', 'V', '1', '2')
+ },
+ {
+ VDP_CHROMA_TYPE_420,
+ VDP_YCBCR_FORMAT_YV12,
+ GST_MAKE_FOURCC ('I', '4', '2', '0')
+ }
+};
+
GType gst_vdpau_device_get_type (void) G_GNUC_CONST;
GstVdpauDevice *gst_vdpau_device_new (const gchar *display_name);