summaryrefslogtreecommitdiff
path: root/gst/vaapi/gstvaapidecode.c
diff options
context:
space:
mode:
authorGwenole Beauchesne <gwenole.beauchesne@intel.com>2012-07-19 11:43:03 +0200
committerGwenole Beauchesne <gwenole.beauchesne@intel.com>2012-07-19 11:45:19 +0200
commit50e40a4c8752d97d828d0dea1cc28709b84bb57f (patch)
treeed321d436be3220bbc4ee307a7c3d72ddfa87c3c /gst/vaapi/gstvaapidecode.c
parent2594aadb0eee5113569874667febec3c9d762d75 (diff)
plugins: add support for GstImplementsInterface.
Diffstat (limited to 'gst/vaapi/gstvaapidecode.c')
-rw-r--r--gst/vaapi/gstvaapidecode.c28
1 files changed, 22 insertions, 6 deletions
diff --git a/gst/vaapi/gstvaapidecode.c b/gst/vaapi/gstvaapidecode.c
index ea343452..540d15f6 100644
--- a/gst/vaapi/gstvaapidecode.c
+++ b/gst/vaapi/gstvaapidecode.c
@@ -105,6 +105,9 @@ static GstStaticPadTemplate gst_vaapidecode_src_factory =
GST_STATIC_CAPS(gst_vaapidecode_src_caps_str));
static void
+gst_vaapidecode_implements_iface_init(GstImplementsInterfaceClass *iface);
+
+static void
gst_video_context_interface_init(GstVideoContextInterface *iface);
#define GstVideoContextClass GstVideoContextInterface
@@ -112,6 +115,8 @@ G_DEFINE_TYPE_WITH_CODE(
GstVaapiDecode,
gst_vaapidecode,
GST_TYPE_ELEMENT,
+ G_IMPLEMENT_INTERFACE(GST_TYPE_IMPLEMENTS_INTERFACE,
+ gst_vaapidecode_implements_iface_init);
G_IMPLEMENT_INTERFACE(GST_TYPE_VIDEO_CONTEXT,
gst_video_context_interface_init));
@@ -404,6 +409,23 @@ gst_vaapidecode_reset(GstVaapiDecode *decode, GstCaps *caps)
return gst_vaapidecode_create(decode, caps);
}
+/* GstImplementsInterface interface */
+
+static gboolean
+gst_vaapidecode_implements_interface_supported(
+ GstImplementsInterface *iface,
+ GType type
+)
+{
+ return (type == GST_TYPE_VIDEO_CONTEXT);
+}
+
+static void
+gst_vaapidecode_implements_iface_init(GstImplementsInterfaceClass *iface)
+{
+ iface->supported = gst_vaapidecode_implements_interface_supported;
+}
+
/* GstVideoContext interface */
static void
@@ -414,12 +436,6 @@ gst_vaapidecode_set_video_context(GstVideoContext *context, const gchar *type,
gst_vaapi_set_display (type, value, &decode->display);
}
-static gboolean
-gst_video_context_supported (GstVaapiDecode *decode, GType iface_type)
-{
- return (iface_type == GST_TYPE_VIDEO_CONTEXT);
-}
-
static void
gst_video_context_interface_init(GstVideoContextInterface *iface)
{