## GstSurfaceConverter

GstSurfaceConverter — Interface for GstSurfaceBuffer convertion

## Synopsis

                        GstSurfaceConverter;
    struct              GstSurfaceConverterInterface;
    GType               gst_surface_converter_get_type      (void);
    gboolean            gst_surface_converter_upload        (GstSurfaceConverter *converter,
                                                             GstBuffer *buffer);

## Description

Objects implementing this interface are used as a convertion context. This allow element optimizing the upload by keeping required resources between uploads. The context must be discarded when the pipeline goes to GST_STATE_NULL or renewed whenever the caps are changed.

### Note

The GstSurfaceConverter interface is unstable API and may change in future. One can define GST_USE_UNSTABLE_API to acknowledge and avoid this warning.

### Example uploading to GL texture

    1
    2
    3
    4

    if (G_UNLIKELY (priv->converter == NULL))
      priv->converter = gst_surface_buffer_create_converter (surface, "opengl", &value);

    gst_surface_converter_uplaod (priv->converter, surface);

## Details

### GstSurfaceConverter

    typedef struct _GstSurfaceConverter GstSurfaceConverter;

### struct GstSurfaceConverterInterface

    struct GstSurfaceConverterInterface {
      GTypeInterface parent;

      gboolean (*upload) (GstSurfaceConverter *converter,
                          GstBuffer *buffer);
    };

GstSurfaceConverterInterface interface.

GTypeInterface `parent`; | parent interface type.
`upload` () | vmethod to upload GstSurfaceBuffer.

### gst_surface_converter_get_type ()

    GType               gst_surface_converter_get_type      (void);

### gst_surface_converter_upload ()

    gboolean            gst_surface_converter_upload        (GstSurfaceConverter *converter,
                                                             GstBuffer *buffer);

Convert and uploads the GstSurfaceBuffer to the converter destination.

`converter` : | a GstSurfaceConverter
`buffer` : | the GstBuffer to upload
Returns : | TRUE on success, FALSE otherwise