In the GTK+ model, when a wiget is created, it is floating, thus
when it is added to a widget container, this container is the owner
of the widget.
The video_area widget is created in two different paths:
1\ when the renderer element is also a GTK+ widget and we are
the owners.
2\ when the renderer element is an overlay an video area a new
widget owned by the container.
In the first code path, there was a memory leak fixed on commit
f8d4796a, but it didn't consider the second path, leading to a
segmentation fault because the owner of the widget is not us.
This patch unrefs early the video area widget in the first path
avoiding to unref it twice in the second path.
https://bugzilla.gnome.org/show_bug.cgi?id=781904
Commit 5b8ba60c was added because of a memory leak when gtksink was
used as renderer. Nonetheless the patch didn't consider two facts:
1\ that the gtk_sink element was in floating state
2\ there is another code path where the gtk_sink element is already
sank
Thus the correct fix, is not to ref and unref gtk_sink, but sink it.
https://bugzilla.gnome.org/show_bug.cgi?id=781904
In x86 targets, gtk-play just pause rather than quitting the application
when we click the close button (delete-event). Change the callback function
to get similar behaviour when we click on "Quit" menu option.
The old version with everything included and buildable against GStreamer 1.6
can still be found in the gst-player-0.1 branch and will be continued to be
updated for a while.
In very few cases the simple version was actually needed and having the
parameters hidden by a _full() version caused application that actually needed
it to not use it.
In stream_info_get_string function, buffer variable is used
all switch case repeatedly. Also, return used in switch statement.
So, I have modified that cases.
There's a GstPlayerVideoRenderer interface now, which defines how video
rendering happens in GstPlayer. Included is an implementation for the
GstVideoOverlay interface, and inside the GTK example application one for
gtksink/gtkglsink.
This allows to implement signal dispatching to other event loop systems than
GLib without having direct GLib support in the base GstPlayer class. A
implementation for the GLib main context is provided and used in the
applications and tests.
- build toolbar ui from glade generated xml files
- build media info dialog from glade generated xml files
- add support to apply css style on widget
- multiple cleanups