## GstImplementsInterface

GstImplementsInterface — Core interface implemented by GstElements that allows runtime querying of interface availabillity

## Synopsis

    #define     GST_TYPE_IMPLEMENTS_INTERFACE
    struct      GstImplementsInterface;
    #define     GST_IMPLEMENTS_INTERFACE_CHECK_INSTANCE_CAST(obj, type, cast_t)
    #define     GST_IMPLEMENTS_INTERFACE_CHECK_INSTANCE_TYPE(obj, type)
    gboolean    gst_element_implements_interface
                                                (GstElement *element,
                                                 GType iface_type);
    gpointer    gst_implements_interface_cast   (gpointer from,
                                                 GType type);
    gboolean    gst_implements_interface_check  (gpointer from,
                                                 GType type);

## Object Hierarchy

      GInterface
       +----GstImplementsInterface

## Prerequisites

GstImplementsInterface requires GstElement.

## Known Derived Interfaces

GstImplementsInterface is required by GstColorBalance, GstTuner, GstMixer and GstXOverlay.

## Known Implementations

GstImplementsInterface is implemented by GstXvImageSink, GstOssSink, GstV4lSrc, GstVideobalance, GstSDLVideoSink, GstAlsaMixer, GstVolume, GstCACASink, GstV4lMjpegSink, GstV4lMjpegSrc, GstXImageSink, GstAlsaSrc, GstOssElement, GstV4lElement, GstOssSrc and GstAlsaSink.

## Description

## Details

### GST_TYPE_IMPLEMENTS_INTERFACE

    #define     GST_TYPE_IMPLEMENTS_INTERFACE

### struct GstImplementsInterface

    struct GstImplementsInterface;

### GST_IMPLEMENTS_INTERFACE_CHECK_INSTANCE_CAST()

    #define     GST_IMPLEMENTS_INTERFACE_CHECK_INSTANCE_CAST(obj, type, cast_t)

`obj` : |
`type` : |
`cast_t` : |

### GST_IMPLEMENTS_INTERFACE_CHECK_INSTANCE_TYPE()

    #define     GST_IMPLEMENTS_INTERFACE_CHECK_INSTANCE_TYPE(obj, type)

`obj` : |
`type` : |

### gst_element_implements_interface ()

    gboolean    gst_element_implements_interface
                                                (GstElement *element,
                                                 GType iface_type);

Test whether the given element implements a certain interface of type iface_type, and test whether it is supported for this specific instance.

`element` : | GstElement to check for the implementation of the interface
`iface_type` : | (final) type of the interface which we want to be implemented
Returns : | whether or not the element implements the interface.

### gst_implements_interface_cast ()

    gpointer    gst_implements_interface_cast   (gpointer from,
                                                 GType type);

cast a given object to an interface type, and check whether this interface is supported for this specific instance.

`from` : | the object (any sort) from which to cast to the interface
`type` : | the interface type to cast to
Returns : | a gpointer to the interface type

### gst_implements_interface_check ()

    gboolean    gst_implements_interface_check  (gpointer from,
                                                 GType type);

check a given object for an interface implementation, and check whether this interface is supported for this specific instance.

`from` : | the object (any sort) from which to check from for the interface
`type` : | the interface type to check for
Returns : | whether or not the object implements the given interface