eglglessink

eglglessink — An EGL/GLES Video Output Sink Implementing the VideoOverlay interface

Synopsis

struct              GstEglGlesSink;

Implemented Interfaces

GstEglGlesSink implements GstVideoOverlay.

Properties

  "create-window"            gboolean              : Read / Write
  "force-aspect-ratio"       gboolean              : Read / Write

Description

Synopsis

Element Information

plugin

eglglessink

author

Reynaldo H. Verdejo Pinochet <reynaldo@collabora.com>, Sebastian Dröge <sebastian.droege@collabora.co.uk>

class

Sink/Video

Element Pads

name

sink

direction

sink

presence

always

details

video/x-raw(memory:EGLImage), format=(string){ RGBA, BGRA, ARGB, ABGR, RGBx, BGRx, xRGB, xBGR, AYUV, Y444, I420, YV12, NV12, NV21, Y42B, Y41B, RGB, BGR, RGB16 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw(meta:GstVideoGLTextureUploadMeta), format=(string){ RGBA, BGRA, ARGB, ABGR, RGBx, BGRx, xRGB, xBGR, AYUV, Y444, I420, YV12, NV12, NV21, Y42B, Y41B, RGB, BGR, RGB16 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw, format=(string){ RGBA, BGRA, ARGB, ABGR, RGBx, BGRx, xRGB, xBGR, AYUV, Y444, I420, YV12, NV12, NV21, Y42B, Y41B, RGB, BGR, RGB16 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

Details

struct GstEglGlesSink

struct GstEglGlesSink {
  GstVideoSink videosink;       /* Element hook */

  /* Region of the surface that should be rendered */
  GstVideoRectangle render_region;
  gboolean render_region_changed;
  gboolean render_region_user;

  /* Region of render_region that should be filled
   * with the video frames */
  GstVideoRectangle display_region;

  GstVideoRectangle crop;
  gboolean crop_changed;
  GstCaps *sinkcaps;
  GstCaps *current_caps, *configured_caps;
  GstVideoInfo configured_info;
  gfloat stride[3];
  GstVideoGLTextureOrientation orientation;
  GstBufferPool *pool;

  GstEglAdaptationContext *egl_context;

  /* Runtime flags */
  gboolean have_window;
  gboolean using_own_window;
  gboolean egl_started;

  gpointer own_window_data;

  GThread *thread;
  gboolean thread_running;
  GstDataQueue *queue;
  GCond render_cond;
  GMutex render_lock;
  GstFlowReturn last_flow;
  GstMiniObject *dequeued_object;

  GstBuffer *last_buffer;

  /* Properties */
  gboolean create_window;
  gboolean force_aspect_ratio;
};

Property Details

The "create-window" property

  "create-window"            gboolean              : Read / Write

If set to true, the sink will attempt to create it's own window to render to if none is provided. This is currently only supported when the sink is used under X11.

Default value: TRUE


The "force-aspect-ratio" property

  "force-aspect-ratio"       gboolean              : Read / Write

If set to true, the sink will attempt to preserve the incoming frame's geometry while scaling, taking both the storage's and display's pixel aspect ratio into account.

Default value: TRUE