# glimagesinkelement

A videosink based on OpenGL

## Hierarchy

    GObject
        ╰──GInitiallyUnowned
            ╰──GstObject
                ╰──GstElement
                    ╰──GstBaseSink
                        ╰──GstVideoSink
                            ╰──glimagesinkelement

## Implemented interfaces

    GstVideoOverlay
    GstNavigation

## Factory details

Authors: – Julien Isorce

Classification: – `Sink/Video`

Rank – none

Plugin – opengl

Package – GStreamer Base Plug-ins

## Pad Templates

### `sink`

    video/x-raw(memory:GLMemory):
             format: RGBA
              width: [ 1, 2147483647 ]
             height: [ 1, 2147483647 ]
          framerate: [ 0/1, 2147483647/1 ]
     texture-target: { (string)2D, (string)external-oes }

    video/x-raw(memory:GLMemory, meta:GstVideoOverlayComposition):
             format: RGBA
              width: [ 1, 2147483647 ]
             height: [ 1, 2147483647 ]
          framerate: [ 0/1, 2147483647/1 ]
     texture-target: { (string)2D, (string)external-oes }

Presence – always

Direction – sink

Object type – GstPad

## Signals

### client-draw

    gboolean
    client_draw_callback (GstElement * object,
                          GstGLContext * context,
                          GstSample * sample,
                          gpointer udata)

    def client_draw_callback (object, context, sample, udata):
        #python callback for the 'client-draw' signal

    function client_draw_callback(object: GstElement * object, context: GstGLContext * context, sample: GstSample * sample, udata: gpointer udata): {
        // javascript callback for the 'client-draw' signal
    }

Will be emitted before actually drawing the texture. The client should redraw the surface/contents of sample and return TRUE.

Parameters:

`object` –

the glimagesinkelement

`context` –

the GstGLContext

`sample` –

the GstSample

`udata` –
No description available
Returns (gboolean) –

whether the texture was redrawn by the signal. If not, a default redraw will occur.

Flags: Run Last

### client-reshape

    gboolean
    client_reshape_callback (GstElement * object,
                             GstGLContext * context,
                             guint width,
                             guint height,
                             gpointer udata)

    def client_reshape_callback (object, context, width, height, udata):
        #python callback for the 'client-reshape' signal

    function client_reshape_callback(object: GstElement * object, context: GstGLContext * context, width: guint width, height: guint height, udata: gpointer udata): {
        // javascript callback for the 'client-reshape' signal
    }

The client should resize the surface/window/viewport with the width and height and return TRUE.

Parameters:

`object` –

the glimagesinkelement

`context` –

the GstGLContext

`width` –

the guint width of the texture.

`height` –

the guint height of the texture.

`udata` –
No description available
Returns (gboolean) –

whether the content area was resized by the signal. If not, a default viewport resize will occur.

Flags: Run Last

## Properties

### context

    “context” GstGLContext *

Get OpenGL context

Flags : Read

### force-aspect-ratio

    “force-aspect-ratio” gboolean

When enabled, scaling will respect original aspect ratio

Flags : Read / Write

Default value : true

### handle-events

    “handle-events” gboolean

When enabled, XEvents will be selected and handled

Flags : Read / Write

Default value : true

### ignore-alpha

    “ignore-alpha” gboolean

When enabled, alpha will be ignored and converted to black

Flags : Read / Write

Default value : true

### output-multiview-downmix-mode

    “output-multiview-downmix-mode” GstGLStereoDownmix *

Output anaglyph type to generate when downmixing to mono

Flags : Read / Write

Default value : green-magenta-dubois (0)

### output-multiview-flags

    “output-multiview-flags” GstVideoMultiviewFlags *

Output multiview layout modifier flags

Flags : Read / Write

Default value : none

### output-multiview-mode

    “output-multiview-mode” GstVideoMultiviewMode *

Choose output mode for multiview/3D video

Flags : Read / Write

Default value : mono (0)

### pixel-aspect-ratio

    “pixel-aspect-ratio” GstFraction *

The pixel aspect ratio of the device

Flags : Read / Write

Default value : 0/1

### render-rectangle

    “render-rectangle” GstValueArray *

The render rectangle ('<x, y, width, height>')

Flags : Read / Write

### rotate-method

    “rotate-method” GstGLRotateMethod *

rotate method

Flags : Read / Write

Default value : none (0)

## Named constants

### GstGLRotateMethod

#### Members

`none` (0) – Identity (no rotation)
`clockwise` (1) – Rotate clockwise 90 degrees
`rotate-180` (2) – Rotate 180 degrees
`counterclockwise` (3) – Rotate counter-clockwise 90 degrees
`horizontal-flip` (4) – Flip horizontally
`vertical-flip` (5) – Flip vertically
`upper-left-diagonal` (6) – Flip across upper left/lower right diagonal
`upper-right-diagonal` (7) – Flip across upper right/lower left diagonal
`automatic` (8) – Select rotate method based on image-orientation tag

The results of the search are