Xavier Claessens
d95fd04960
GstGtkGLSink: Ensure widget has a toplevel parent
...
Checking for a parent is not enough, it must have a toplevel one.
If widget has no toplevel parent then add it in a GtkWindow, that
make it usable from gst-launch-1.0.
https://bugzilla.gnome.org/show_bug.cgi?id=751104
2015-07-09 16:40:19 +10:00
Xavier Claessens
b71b7dc9e6
GstGtkGLSink: Post error if widget gets destroyed
...
https://bugzilla.gnome.org/show_bug.cgi?id=751104
2015-07-09 16:40:19 +10:00
Xavier Claessens
72b48a39d8
GstGtkGLSink: fix possible warning in finalize
...
If the element is finalized before going in READY state
the widget could still be NULL.
https://bugzilla.gnome.org/show_bug.cgi?id=751104
2015-07-09 16:40:19 +10:00
Thibault Saunier
31b770af0b
gtkglsink: Release the widget lock when trying to get the GL context
...
Otherwise we might be waiting for the lock on the main loop (for
example in the ->render vmethod) and thus we will deadlock.
2015-07-06 19:33:35 +02:00
Sebastian Dröge
9841cd5e58
gtkglwidget: Const'ify another array
2015-06-15 21:32:43 +02:00
Sebastian Dröge
aa37a70efb
gtkglwidget: Calculate the viewport size ourselves
...
Getting the current viewport and modifying it relatively will produce an
interesting feedback loop during widget resizing. Over a few frames we
will gradually move the viewport a bit until it converged again, adding
unnecessary additional borders at the top and left.
2015-06-15 21:29:46 +02:00
Sebastian Dröge
8b821e0cf3
gtk: Use the display width/height for the widget's preferred width/height
2015-06-15 21:24:01 +02:00
Sebastian Dröge
df034766c5
gtksink: Add support for xRGB/BGRx
2015-06-15 20:45:11 +02:00
Sebastian Dröge
60ea4c079d
gtk: Cairo color formats are in native endianness, GStreamer's in memory order
...
CAIRO_FORMAT_ARGB32 is ARGB on big endian and BGRA on little endian.
2015-06-15 20:39:59 +02:00
Sebastian Dröge
ea8aa5ff1b
gtk: Implement ignore-alpha property and enable it by default
2015-06-15 20:35:38 +02:00
Sebastian Dröge
6b731584a5
gtk: Sync properties from the sink to the widget upon widget creation
2015-06-15 20:13:57 +02:00
Matthew Waters
64f3446907
gtk: implement pixel and display aspect ratio handling
2015-06-15 22:39:07 +10:00
Matthew Waters
e34638112f
gtk: silence unused variable warnings for unsupported winsys'
2015-06-15 14:41:24 +10:00
Matthew Waters
874b578d05
gtk: implement basic wayland GL support
2015-06-15 14:41:05 +10:00
Thibault Saunier
7634a77611
gtk: Do not try to activate a NULL GLContext
...
At that point in the code nothing guarantees it exists
2015-06-12 15:40:29 +02:00
Matthew Waters
b97f2e6e6a
gtk: implement video aspect-ratio handling
...
For both the software and the GL sink's.
Doesn't deal with the pixel-aspect-ratio field at all yet.
2015-06-12 15:17:30 +10:00
Matthew Waters
adce0220a8
gtk: fix a couple of typos
2015-06-12 12:40:50 +10:00
Matthew Waters
d99b7d4219
gtkglsink: reset the context/display in READY_TO_NULL
...
Fixes context propagation in pipelines with upstream GL elements.
2015-06-12 12:32:06 +10:00
Nicolas Dufresne
b14fea7fb8
gstgtk: Allow doing gst-inspect-1.0 on these elements
...
This patch allow going gst-inspect-1.0 on these elements removing
ugly crash that was previously occurring. The method consist of
making the widget creation as lazy as possible. This way we don't
endup doing gtk_init() before the application. We also ref_sink()
the widget, so we don't crash if the parent widget is discarded,
and cleanly error out with GL if the widget has no parent window,
because calling gtk_widget_realized() can only be done if the widget
has been parented to a window).
2015-06-11 12:41:49 -04:00
Thibault Saunier
59e298a6fb
gtk: Do not try to initialize display if we have not have a GLContext yet
2015-06-11 15:07:24 +02:00
Matthew Waters
23fb666dd7
Implement gtk sinks
...
two sinks are provided. gtksink which is a cairo/software based renderer
and gtkglsink which utilises the GL support in gtk and gstreamer.
2015-06-11 22:01:03 +10:00