| Top |
| gchar * | display | Read / Write |
| gpointer | client-data | Write |
| gpointer | client-draw-callback | Write |
| gpointer | client-reshape-callback | Write |
| gboolean | force-aspect-ratio | Read / Write |
| GstGLContext * | other-context | Read / Write |
| GstFraction | pixel-aspect-ratio | Read / Write |
| GstGLContext * | context | Read |
| gboolean | handle-events | Read / Write |
| gboolean | ignore-alpha | Read / Write |
| GstGLStereoDownmix | output-multiview-downmix-mode | Read / Write |
| GstVideoMultiviewFlags | output-multiview-flags | Read / Write |
| GstVideoMultiviewMode | output-multiview-mode | Read / Write |
| GstGLRotateMethod | rotate-method | Read / Write |
name |
sink |
direction |
sink |
presence |
always |
details |
video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ], texture-target=(string){ 2D, external-oes } |
| video/x-raw(memory:GLMemory, meta:GstVideoOverlayComposition), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ], texture-target=(string){ 2D, external-oes } |
struct GstGLImageSink {
GstVideoSink video_sink;
guintptr window_id;
guintptr new_window_id;
gulong mouse_sig_id;
gulong key_sig_id;
/* GstVideoOverlay::set_render_rectangle() cache */
gint x;
gint y;
gint width;
gint height;
/* Input info before 3d stereo output conversion, if any */
GstVideoInfo in_info;
GstCaps *in_caps;
/* format/caps we actually hand off to the app */
GstVideoInfo out_info;
GstCaps *out_caps;
GstGLTextureTarget texture_target;
GstGLDisplay *display;
GstGLContext *context;
GstGLContext *other_context;
gboolean handle_events;
gboolean ignore_alpha;
GstGLViewConvert *convert_views;
/* Original input RGBA buffer, ready for display,
* or possible reconversion through the views filter */
GstBuffer *input_buffer;
/* Secondary view buffer - when operating in frame-by-frame mode */
GstBuffer *input_buffer2;
guint next_tex;
GstBuffer *next_buffer;
GstBuffer *next_buffer2; /* frame-by-frame 2nd view */
GstBuffer *next_sync;
GstGLSyncMeta *next_sync_meta;
volatile gint to_quit;
gboolean keep_aspect_ratio;
gint par_n, par_d;
/* avoid replacing the stored_buffer while drawing */
GMutex drawing_lock;
GstBuffer *stored_buffer[2];
GstBuffer *stored_sync;
GstGLSyncMeta *stored_sync_meta;
GLuint redisplay_texture;
/* protected with drawing_lock */
gboolean window_resized;
guint window_width;
guint window_height;
GstVideoRectangle display_rect;
GstGLShader *redisplay_shader;
GLuint vao;
GLuint vbo_indices;
GLuint vertex_buffer;
GLint attr_position;
GLint attr_texture;
GstVideoMultiviewMode mview_output_mode;
GstVideoMultiviewFlags mview_output_flags;
gboolean output_mode_changed;
GstGLStereoDownmix mview_downmix_mode;
GstGLOverlayCompositor *overlay_compositor;
/* current video flip method */
GstGLRotateMethod current_rotate_method;
GstGLRotateMethod rotate_method;
const gfloat *transform_matrix;
};
“client-data” property “client-data” gpointer
Pass data to the draw and reshape callbacks.
Flags: Write
“client-draw-callback” property “client-draw-callback” gpointer
Define a custom draw callback in a client code.
Flags: Write
“client-reshape-callback” property “client-reshape-callback” gpointer
Define a custom reshape callback in a client code.
Flags: Write
“force-aspect-ratio” property “force-aspect-ratio” gboolean
When enabled, scaling will respect original aspect ratio.
Flags: Read / Write
Default value: TRUE
“other-context” property “other-context” GstGLContext *
Give an external OpenGL context with which to share textures.
Flags: Read / Write
“pixel-aspect-ratio” property “pixel-aspect-ratio” GstFraction
The pixel aspect ratio of the device.
Flags: Read / Write
“handle-events” property “handle-events” gboolean
When enabled, XEvents will be selected and handled.
Flags: Read / Write
Default value: TRUE
“ignore-alpha” property “ignore-alpha” gboolean
When enabled, alpha will be ignored and converted to black.
Flags: Read / Write
Default value: TRUE
“output-multiview-downmix-mode” property “output-multiview-downmix-mode” GstGLStereoDownmix
Output anaglyph type to generate when downmixing to mono.
Flags: Read / Write
Default value: Dubois optimised Green-Magenta anaglyph
“output-multiview-flags” property“output-multiview-flags” GstVideoMultiviewFlags
Output multiview layout modifier flags.
Flags: Read / Write
“output-multiview-mode” property“output-multiview-mode” GstVideoMultiviewMode
Choose output mode for multiview/3D video.
Flags: Read / Write
Default value: GST_VIDEO_MULTIVIEW_MODE_MONO
“client-draw” signalgboolean user_function (GstGLImageSink *object, GstGLContext *texture, GstSample *width, gpointer user_data)
Will be emitted before actually drawing the texture. The client should
redraw the surface/contents with the texture
, width
and height
and
and return TRUE.
object |
the GstGLImageSink |
|
texture |
the guint id of the texture. |
|
width |
the guint width of the texture. |
|
height |
the guint height of the texture. |
|
user_data |
user data set when the signal handler was connected. |
Flags: Run Last
“client-reshape” signalgboolean user_function (GstGLImageSink *object, GstGLContext *width, guint height, guint Returns, gpointer user_data)
The client should resize the surface/window/viewport with the width
and
height
and return TRUE.
object |
the GstGLImageSink |
|
width |
the guint width of the texture. |
|
height |
the guint height of the texture. |
|
user_data |
user data set when the signal handler was connected. |
whether the content area was resized by the signal. If not, a default viewport resize will occur.
Flags: Run Last