summaryrefslogtreecommitdiff
path: root/sys/vdpau
diff options
context:
space:
mode:
authorCarl-Anton Ingmarsson <ca.ingmarsson@gmail.com>2010-06-27 09:55:22 +0200
committerCarl-Anton Ingmarsson <ca.ingmarsson@gmail.com>2010-06-28 11:11:52 +0200
commitd930556a473d92007f9ebfa5db7fa6f4eac8a64b (patch)
treea3ffbd7e34bfc791d6def675e257c728d2044d7f /sys/vdpau
parentec815085bf736e722086200f4cb0381be6a525bd (diff)
vdpau: add display property to GstVdpDecoder
Diffstat (limited to 'sys/vdpau')
-rw-r--r--sys/vdpau/basevideodecoder/gstbasevideodecoder.h18
-rw-r--r--sys/vdpau/gstvdp/gstvdpdecoder.c56
-rw-r--r--sys/vdpau/h264/gstvdph264dec.c12
-rw-r--r--sys/vdpau/mpeg/gstvdpmpegdec.c71
4 files changed, 63 insertions, 94 deletions
diff --git a/sys/vdpau/basevideodecoder/gstbasevideodecoder.h b/sys/vdpau/basevideodecoder/gstbasevideodecoder.h
index 556bcae80..24907b391 100644
--- a/sys/vdpau/basevideodecoder/gstbasevideodecoder.h
+++ b/sys/vdpau/basevideodecoder/gstbasevideodecoder.h
@@ -25,18 +25,12 @@
G_BEGIN_DECLS
-#define GST_TYPE_BASE_VIDEO_DECODER \
- (gst_base_video_decoder_get_type())
-#define GST_BASE_VIDEO_DECODER(obj) \
- (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_BASE_VIDEO_DECODER,GstBaseVideoDecoder))
-#define GST_BASE_VIDEO_DECODER_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_BASE_VIDEO_DECODER,GstBaseVideoDecoderClass))
-#define GST_BASE_VIDEO_DECODER_GET_CLASS(obj) \
- (G_TYPE_INSTANCE_GET_CLASS((obj),GST_TYPE_BASE_VIDEO_DECODER,GstBaseVideoDecoderClass))
-#define GST_IS_BASE_VIDEO_DECODER(obj) \
- (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_BASE_VIDEO_DECODER))
-#define GST_IS_BASE_VIDEO_DECODER_CLASS(obj) \
- (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_BASE_VIDEO_DECODER))
+#define GST_TYPE_BASE_VIDEO_DECODER (gst_base_video_decoder_get_type())
+#define GST_BASE_VIDEO_DECODER(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GST_TYPE_BASE_VIDEO_DECODER, GstBaseVideoDecoder))
+#define GST_BASE_VIDEO_DECODER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), GST_TYPE_BASE_VIDEO_DECODER, GstBaseVideoDecoderClass))
+#define GST_BASE_VIDEO_DECODER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GST_TYPE_BASE_VIDEO_DECODER, GstBaseVideoDecoderClass))
+#define GST_IS_BASE_VIDEO_DECODER(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GST_TYPE_BASE_VIDEO_DECODER))
+#define GST_IS_BASE_VIDEO_DECODER_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE((klass), GST_TYPE_BASE_VIDEO_DECODER))
/**
* GST_BASE_VIDEO_DECODER_SINK_NAME:
diff --git a/sys/vdpau/gstvdp/gstvdpdecoder.c b/sys/vdpau/gstvdp/gstvdpdecoder.c
index 2549b246f..a9217caac 100644
--- a/sys/vdpau/gstvdp/gstvdpdecoder.c
+++ b/sys/vdpau/gstvdp/gstvdpdecoder.c
@@ -36,6 +36,12 @@ GST_DEBUG_CATEGORY_STATIC (gst_vdp_decoder_debug);
GST_BOILERPLATE_FULL (GstVdpDecoder, gst_vdp_decoder, GstBaseVideoDecoder,
GST_TYPE_BASE_VIDEO_DECODER, DEBUG_INIT);
+enum
+{
+ PROP_0,
+ PROP_DISPLAY
+};
+
static GstFlowReturn
gst_vdp_decoder_shape_output (GstBaseVideoDecoder * base_video_decoder,
GstBuffer * buf)
@@ -99,6 +105,42 @@ gst_vdp_decoder_get_device (GstVdpDecoder * vdp_decoder, GstVdpDevice ** device,
}
static void
+gst_vdp_decoder_get_property (GObject * object, guint prop_id,
+ GValue * value, GParamSpec * pspec)
+{
+ GstVdpDecoder *vdp_decoder = GST_VDP_DECODER (object);
+
+ switch (prop_id) {
+ case PROP_DISPLAY:
+ g_object_get_property
+ (G_OBJECT (GST_BASE_VIDEO_DECODER_SRC_PAD (vdp_decoder)), "display",
+ value);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+gst_vdp_decoder_set_property (GObject * object, guint prop_id,
+ const GValue * value, GParamSpec * pspec)
+{
+ GstVdpDecoder *vdp_decoder = GST_VDP_DECODER (object);
+
+ switch (prop_id) {
+ case PROP_DISPLAY:
+ g_object_set_property
+ (G_OBJECT (GST_BASE_VIDEO_DECODER_SRC_PAD (vdp_decoder)), "display",
+ value);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
gst_vdp_decoder_base_init (gpointer g_class)
{
GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
@@ -121,9 +163,19 @@ gst_vdp_decoder_init (GstVdpDecoder * decoder, GstVdpDecoderClass * klass)
static void
gst_vdp_decoder_class_init (GstVdpDecoderClass * klass)
{
- GstBaseVideoDecoderClass *base_video_decoder_class =
- GST_BASE_VIDEO_DECODER_CLASS (klass);
+ GObjectClass *object_class;
+ GstBaseVideoDecoderClass *base_video_decoder_class;
+
+ object_class = G_OBJECT_CLASS (klass);
+ base_video_decoder_class = GST_BASE_VIDEO_DECODER_CLASS (klass);
+
+ object_class->get_property = gst_vdp_decoder_get_property;
+ object_class->set_property = gst_vdp_decoder_set_property;
base_video_decoder_class->create_srcpad = gst_vdp_decoder_create_srcpad;
base_video_decoder_class->shape_output = gst_vdp_decoder_shape_output;
+
+ g_object_class_install_property (object_class,
+ PROP_DISPLAY, g_param_spec_string ("display", "Display", "X Display name",
+ NULL, G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
}
diff --git a/sys/vdpau/h264/gstvdph264dec.c b/sys/vdpau/h264/gstvdph264dec.c
index 3b66ab72f..d3ce20930 100644
--- a/sys/vdpau/h264/gstvdph264dec.c
+++ b/sys/vdpau/h264/gstvdph264dec.c
@@ -893,19 +893,11 @@ gst_vdp_h264_dec_init (GstVdpH264Dec * h264_dec, GstVdpH264DecClass * klass)
}
static void
-gst_vdp_h264_dec_finalize (GObject * object)
-{
- G_OBJECT_CLASS (parent_class)->finalize (object);
-}
-
-static void
gst_vdp_h264_dec_class_init (GstVdpH264DecClass * klass)
{
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
- GstBaseVideoDecoderClass *base_video_decoder_class =
- GST_BASE_VIDEO_DECODER_CLASS (klass);
+ GstBaseVideoDecoderClass *base_video_decoder_class;
- gobject_class->finalize = gst_vdp_h264_dec_finalize;
+ base_video_decoder_class = GST_BASE_VIDEO_DECODER_CLASS (klass);
base_video_decoder_class->start = gst_vdp_h264_dec_start;
base_video_decoder_class->stop = gst_vdp_h264_dec_stop;
diff --git a/sys/vdpau/mpeg/gstvdpmpegdec.c b/sys/vdpau/mpeg/gstvdpmpegdec.c
index 7099d0715..e19fb68f2 100644
--- a/sys/vdpau/mpeg/gstvdpmpegdec.c
+++ b/sys/vdpau/mpeg/gstvdpmpegdec.c
@@ -47,19 +47,6 @@
GST_DEBUG_CATEGORY_STATIC (gst_vdp_mpeg_dec_debug);
#define GST_CAT_DEFAULT gst_vdp_mpeg_dec_debug
-/* Filter signals and args */
-enum
-{
- /* FILL ME */
- LAST_SIGNAL
-};
-
-enum
-{
- PROP_0,
- PROP_DISPLAY
-};
-
/* the capabilities of the inputs and outputs.
*
* describe the real formats here.
@@ -701,50 +688,6 @@ gst_vdp_mpeg_dec_stop (GstBaseVideoDecoder * base_video_decoder)
return TRUE;
}
-
-/* GObject vmethod implementations */
-static void
-gst_vdp_mpeg_dec_finalize (GObject * object)
-{
-
-}
-
-static void
-gst_vdp_mpeg_dec_get_property (GObject * object, guint prop_id,
- GValue * value, GParamSpec * pspec)
-{
- GstVdpMpegDec *mpeg_dec = (GstVdpMpegDec *) object;
-
- switch (prop_id) {
- case PROP_DISPLAY:
- g_object_get_property
- (G_OBJECT (GST_BASE_VIDEO_DECODER_SRC_PAD (mpeg_dec)), "display",
- value);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
-gst_vdp_mpeg_dec_set_property (GObject * object, guint prop_id,
- const GValue * value, GParamSpec * pspec)
-{
- GstVdpMpegDec *mpeg_dec = (GstVdpMpegDec *) object;
-
- switch (prop_id) {
- case PROP_DISPLAY:
- g_object_set_property
- (G_OBJECT (GST_BASE_VIDEO_DECODER_SRC_PAD (mpeg_dec)), "display",
- value);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
static void
gst_vdp_mpeg_dec_base_init (gpointer gclass)
{
@@ -764,17 +707,9 @@ gst_vdp_mpeg_dec_base_init (gpointer gclass)
static void
gst_vdp_mpeg_dec_class_init (GstVdpMpegDecClass * klass)
{
- GObjectClass *gobject_class;
- GstElementClass *gstelement_class;
GstBaseVideoDecoderClass *base_video_decoder_class;
- gobject_class = (GObjectClass *) klass;
- gstelement_class = (GstElementClass *) klass;
- base_video_decoder_class = (GstBaseVideoDecoderClass *) klass;
-
- gobject_class->get_property = gst_vdp_mpeg_dec_get_property;
- gobject_class->set_property = gst_vdp_mpeg_dec_set_property;
- gobject_class->finalize = gst_vdp_mpeg_dec_finalize;
+ base_video_decoder_class = GST_BASE_VIDEO_DECODER_CLASS (klass);
base_video_decoder_class->start = gst_vdp_mpeg_dec_start;
base_video_decoder_class->stop = gst_vdp_mpeg_dec_stop;
@@ -787,10 +722,6 @@ gst_vdp_mpeg_dec_class_init (GstVdpMpegDecClass * klass)
base_video_decoder_class->handle_frame = gst_vdp_mpeg_dec_handle_frame;
base_video_decoder_class->create_frame = gst_vdp_mpeg_dec_create_frame;
-
- g_object_class_install_property (gobject_class,
- PROP_DISPLAY, g_param_spec_string ("display", "Display", "X Display name",
- NULL, G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
}
static void