Commit graph

14 commits

Author SHA1 Message Date
Nicolas Dufresne
1a7c9b82f4 gtk: Fix race between queue_draw and destroy
In GTK dispose can be called before the last ref is reached. This
happens when you close the container window. The dispose will be
explicitly called, and destroyed notify will be fired. This patch
fixes this race by properly tracking the widget state.

In the sink, we now set the widget pointer to NULL, so the widget
will properly get created again if you set your pipeline to NULL
state after the widget was destroy, and set it back to PLAYING.

https://bugzilla.gnome.org/show_bug.cgi?id=751104
2015-07-16 17:05:36 -04:00
Matthew Waters
469ea20754 gtk: add to the generic/states test 2015-07-09 16:40:19 +10:00
Thibault Saunier
cb10f1b290 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
577ca6a0e8 gtkglwidget: Const'ify another array 2015-06-15 21:32:43 +02:00
Sebastian Dröge
e410c770f5 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
5cabeb3415 gtk: Use the display width/height for the widget's preferred width/height 2015-06-15 21:24:01 +02:00
Sebastian Dröge
05fa796c25 gtk: Implement ignore-alpha property and enable it by default 2015-06-15 20:35:38 +02:00
Matthew Waters
48db03200d gtk: implement pixel and display aspect ratio handling 2015-06-15 22:39:07 +10:00
Matthew Waters
8648d59974 gtk: silence unused variable warnings for unsupported winsys' 2015-06-15 14:41:24 +10:00
Matthew Waters
869ea6093c gtk: implement basic wayland GL support 2015-06-15 14:41:05 +10:00
Thibault Saunier
baad74b995 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
a512a91598 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
Thibault Saunier
4cef5787c8 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
a959c410d9 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