diff options
author | Gwenole Beauchesne <gwenole.beauchesne@intel.com> | 2012-07-19 11:43:03 +0200 |
---|---|---|
committer | Gwenole Beauchesne <gwenole.beauchesne@intel.com> | 2012-07-19 11:45:19 +0200 |
commit | 50e40a4c8752d97d828d0dea1cc28709b84bb57f (patch) | |
tree | ed321d436be3220bbc4ee307a7c3d72ddfa87c3c /gst/vaapi/gstvaapidecode.c | |
parent | 2594aadb0eee5113569874667febec3c9d762d75 (diff) |
plugins: add support for GstImplementsInterface.
Diffstat (limited to 'gst/vaapi/gstvaapidecode.c')
-rw-r--r-- | gst/vaapi/gstvaapidecode.c | 28 |
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) { |