platform/upstream/gst-plugins-good.git
9 years agogtkbasesink: Create a base class
Nicolas Dufresne [Thu, 16 Jul 2015 19:59:59 +0000 (15:59 -0400)]
gtkbasesink: Create a base class

This contains all the common code between the gtkglsink and
gtksink.

https://bugzilla.gnome.org/show_bug.cgi?id=752441

9 years agogtkglsink: Port to GtkGstBaseWidget
Nicolas Dufresne [Thu, 16 Jul 2015 18:30:42 +0000 (14:30 -0400)]
gtkglsink: Port to GtkGstBaseWidget

https://bugzilla.gnome.org/show_bug.cgi?id=752441

9 years agogtksink: Port to GtkGstBaseWidget
Nicolas Dufresne [Thu, 16 Jul 2015 16:55:11 +0000 (12:55 -0400)]
gtksink: Port to GtkGstBaseWidget

https://bugzilla.gnome.org/show_bug.cgi?id=752441

9 years agogtk: Add GtkGstBaseWidget
Nicolas Dufresne [Thu, 16 Jul 2015 16:51:34 +0000 (12:51 -0400)]
gtk: Add GtkGstBaseWidget

This is a "pseudo" base class. Basically it's a shared instance
and class structure and a shared set of function between the
two widget. It cannot have it's own type like normal base class
since the one instance will implement GtkGLArea while the other
implements GtkDrawingAreay. To workaround this, the parent instance
and class is a union of both.

https://bugzilla.gnome.org/show_bug.cgi?id=752441

9 years agogtkgstglwidget: Remove unused gl_caps
Nicolas Dufresne [Wed, 15 Jul 2015 21:35:22 +0000 (17:35 -0400)]
gtkgstglwidget: Remove unused gl_caps

9 years agogtksink: Create a window if the widget is unparented
Nicolas Dufresne [Wed, 15 Jul 2015 20:56:33 +0000 (16:56 -0400)]
gtksink: Create a window if the widget is unparented

The same way as it's now done with the gtkglsink, create a top
level window if the widget is not parented.

https://bugzilla.gnome.org/show_bug.cgi?id=751104

9 years agogtksink: Ensure the copy pasted code remains the same
Nicolas Dufresne [Wed, 15 Jul 2015 18:35:02 +0000 (14:35 -0400)]
gtksink: Ensure the copy pasted code remains the same

Move back the default property at the same place they are in the
other sink. This helps when using a diff viewer to synchronized
this unfortunate copy paste.

https://bugzilla.gnome.org/show_bug.cgi?id=751104

9 years agogtk: Fix race between queue_draw and destroy
Nicolas Dufresne [Wed, 15 Jul 2015 18:32:42 +0000 (14:32 -0400)]
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

9 years agogtkgstwidget: Add missing break in get_property
Nicolas Dufresne [Wed, 15 Jul 2015 15:47:51 +0000 (11:47 -0400)]
gtkgstwidget: Add missing break in get_property

9 years agogtksinks: Remove undefined private structure
Nicolas Dufresne [Wed, 15 Jul 2015 15:44:30 +0000 (11:44 -0400)]
gtksinks: Remove undefined private structure

The classes contains a private structure which are not defined,
hence unused.

9 years agogtk: add to the generic/states test
Matthew Waters [Thu, 9 Jul 2015 03:03:23 +0000 (13:03 +1000)]
gtk: add to the generic/states test

9 years agoGstGtkGLSink: Ensure widget has a toplevel parent
Xavier Claessens [Wed, 17 Jun 2015 13:36:57 +0000 (09:36 -0400)]
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

9 years agoGstGtkGLSink: Post error if widget gets destroyed
Xavier Claessens [Wed, 17 Jun 2015 13:36:40 +0000 (09:36 -0400)]
GstGtkGLSink: Post error if widget gets destroyed

https://bugzilla.gnome.org/show_bug.cgi?id=751104

9 years agoGstGtkGLSink: fix possible warning in finalize
Xavier Claessens [Tue, 16 Jun 2015 20:21:26 +0000 (16:21 -0400)]
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

9 years agogtkglsink: Release the widget lock when trying to get the GL context
Thibault Saunier [Mon, 6 Jul 2015 17:33:35 +0000 (19:33 +0200)]
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.

9 years agogtkglwidget: Const'ify another array
Sebastian Dröge [Mon, 15 Jun 2015 19:32:43 +0000 (21:32 +0200)]
gtkglwidget: Const'ify another array

9 years agogtkglwidget: Calculate the viewport size ourselves
Sebastian Dröge [Mon, 15 Jun 2015 19:29:46 +0000 (21:29 +0200)]
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.

9 years agogtk: Use the display width/height for the widget's preferred width/height
Sebastian Dröge [Mon, 15 Jun 2015 19:24:01 +0000 (21:24 +0200)]
gtk: Use the display width/height for the widget's preferred width/height

9 years agogtksink: Add support for xRGB/BGRx
Sebastian Dröge [Mon, 15 Jun 2015 18:45:11 +0000 (20:45 +0200)]
gtksink: Add support for xRGB/BGRx

9 years agogtk: Cairo color formats are in native endianness, GStreamer's in memory order
Sebastian Dröge [Mon, 15 Jun 2015 18:39:59 +0000 (20:39 +0200)]
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.

9 years agogtk: Implement ignore-alpha property and enable it by default
Sebastian Dröge [Mon, 15 Jun 2015 18:35:38 +0000 (20:35 +0200)]
gtk: Implement ignore-alpha property and enable it by default

9 years agogtk: Sync properties from the sink to the widget upon widget creation
Sebastian Dröge [Mon, 15 Jun 2015 18:13:57 +0000 (20:13 +0200)]
gtk: Sync properties from the sink to the widget upon widget creation

9 years agogtk: implement pixel and display aspect ratio handling
Matthew Waters [Mon, 15 Jun 2015 08:28:37 +0000 (18:28 +1000)]
gtk: implement pixel and display aspect ratio handling

9 years agogtk: silence unused variable warnings for unsupported winsys'
Matthew Waters [Mon, 15 Jun 2015 04:35:35 +0000 (14:35 +1000)]
gtk: silence unused variable warnings for unsupported winsys'

9 years agogtk: implement basic wayland GL support
Matthew Waters [Mon, 15 Jun 2015 04:33:08 +0000 (14:33 +1000)]
gtk: implement basic wayland GL support

9 years agogtk: Do not try to activate a NULL GLContext
Thibault Saunier [Fri, 12 Jun 2015 13:39:56 +0000 (15:39 +0200)]
gtk: Do not try to activate a NULL GLContext

At that point in the code nothing guarantees it exists

9 years agogtk: implement video aspect-ratio handling
Matthew Waters [Fri, 12 Jun 2015 05:17:30 +0000 (15:17 +1000)]
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.

9 years agogtk: fix a couple of typos
Matthew Waters [Fri, 12 Jun 2015 02:40:50 +0000 (12:40 +1000)]
gtk: fix a couple of typos

9 years agogtkglsink: reset the context/display in READY_TO_NULL
Matthew Waters [Fri, 12 Jun 2015 02:29:37 +0000 (12:29 +1000)]
gtkglsink: reset the context/display in READY_TO_NULL

Fixes context propagation in pipelines with upstream GL elements.

9 years agogstgtk: No need to realize the widget
Nicolas Dufresne [Thu, 11 Jun 2015 16:41:10 +0000 (12:41 -0400)]
gstgtk: No need to realize the widget

The widget already does that.

9 years agogstgtk: Don't leak the widget
Nicolas Dufresne [Thu, 11 Jun 2015 16:38:53 +0000 (12:38 -0400)]
gstgtk: Don't leak the widget

g_object_get() returns a ref, gtk_container_add() only ref_sink().
That mean we still need to unref afterward. This leak was hiding
a reference bug previously present.

9 years agogstgtk: Allow doing gst-inspect-1.0 on these elements
Nicolas Dufresne [Thu, 11 Jun 2015 16:10:23 +0000 (12:10 -0400)]
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).

9 years agogtk: Do not try to initialize display if we have not have a GLContext yet
Thibault Saunier [Thu, 11 Jun 2015 13:02:44 +0000 (15:02 +0200)]
gtk: Do not try to initialize display if we have not have a GLContext yet

9 years agogtk: Add missing CFLAGS to example
Sebastian Dröge [Thu, 11 Jun 2015 12:58:27 +0000 (14:58 +0200)]
gtk: Add missing CFLAGS to example

9 years agoImplement gtk sinks
Matthew Waters [Thu, 18 Dec 2014 06:00:30 +0000 (17:00 +1100)]
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.

10 years agogl/examples: move to -bad
Matthew Waters [Tue, 29 Apr 2014 06:38:55 +0000 (16:38 +1000)]
gl/examples: move to -bad

- fix all the compiler errors
- give them their own gl directory

10 years agogl: fix the use of always-defined macros
Руслан Ижбулатов [Tue, 18 Mar 2014 00:08:50 +0000 (00:08 +0000)]
gl: fix the use of always-defined macros

After 2a0f0399ae226089c2ba07b1b904741b856f37af GST_GL_* macros are always
defined to 0 or 1. Don't use #ifdef ... or #if defined() on them.

https://bugzilla.gnome.org/show_bug.cgi?id=726591

10 years ago[864/906] examples: update to gtk3
Matthew Waters [Sun, 29 Dec 2013 06:29:53 +0000 (17:29 +1100)]
[864/906] examples: update to gtk3

10 years ago[771/906] gl: Some less long/ulong/gulong usage
Sebastian Dröge [Wed, 17 Jul 2013 09:22:02 +0000 (11:22 +0200)]
[771/906] gl: Some less long/ulong/gulong usage

10 years ago[769/906] tests/examples: fix and port some of the examples.
Mathieu Duponchelle [Tue, 16 Jul 2013 16:27:07 +0000 (18:27 +0200)]
[769/906] tests/examples: fix and port some of the examples.

Realize widgets, remove glupload element.

10 years ago[729/906] gl: Include config.h everywhere
Sebastian Dröge [Wed, 10 Jul 2013 09:24:34 +0000 (11:24 +0200)]
[729/906] gl: Include config.h everywhere

10 years ago[720/906] examples: Stop using deprecated GLib thread API
Sebastian Dröge [Fri, 28 Jun 2013 09:00:46 +0000 (11:00 +0200)]
[720/906] examples: Stop using deprecated GLib thread API

10 years ago[603/906] update FSF address
Matthew Waters [Thu, 8 Nov 2012 11:53:56 +0000 (22:53 +1100)]
[603/906] update FSF address

10 years ago[560/906] examples: update for bus api changes and glimagesink changes
Matthew Waters [Tue, 14 Aug 2012 04:41:19 +0000 (14:41 +1000)]
[560/906] examples: update for bus api changes and glimagesink changes

10 years ago[511/906] tests: update for 1.0
Matthew Waters [Wed, 6 Jun 2012 14:51:47 +0000 (00:51 +1000)]
[511/906] tests: update for 1.0

10 years ago[461/906] xoverlay: require base from git and update to new API
Stefan Kost [Thu, 16 Sep 2010 12:00:29 +0000 (15:00 +0300)]
[461/906] xoverlay: require base from git and update to new API

10 years ago[457/906] gtk examples: adapt code since the native-window changes from gtk
Julien Isorce [Mon, 12 Jul 2010 16:38:59 +0000 (18:38 +0200)]
[457/906] gtk examples: adapt code since the native-window changes from gtk

Fixes bug #599885

10 years ago[413/906] Fix Windows compiler warning in test/examples/gtk/fxtest/pixbufdrop.c
Руслан Ижбулатов [Tue, 12 Jan 2010 15:32:39 +0000 (18:32 +0300)]
[413/906] Fix Windows compiler warning in test/examples/gtk/fxtest/pixbufdrop.c

10 years ago[386/906] pixbufdrop: fix example on win32
Julien Isorce [Thu, 22 Oct 2009 23:07:29 +0000 (01:07 +0200)]
[386/906] pixbufdrop: fix example on win32

10 years ago[361/906] gstgtk: add missing license and copyright information
Filippo Argiolas [Tue, 14 Jul 2009 18:36:13 +0000 (20:36 +0200)]
[361/906] gstgtk: add missing license and copyright information

10 years ago[360/906] examples: add missing copyright/license to my examples
Filippo Argiolas [Tue, 14 Jul 2009 18:25:28 +0000 (20:25 +0200)]
[360/906] examples: add missing copyright/license to my examples

10 years ago[328/906] Convert gtk examples to use helper library
David Schleef [Mon, 13 Apr 2009 03:03:30 +0000 (20:03 -0700)]
[328/906] Convert gtk examples to use helper library

Helper lib implements gst-gtk glue on all platforms

10 years ago[310/906] Global reindent
David Schleef [Wed, 11 Feb 2009 06:39:14 +0000 (22:39 -0800)]
[310/906] Global reindent

Indent parameters:
INDENT_PARAMETERS="--braces-on-if-line \
        --case-brace-indentation0 \
        --case-indentation2 \
        --braces-after-struct-decl-line \
        --line-length80 \
        --no-tabs \
        --cuddle-else \
        --dont-line-up-parentheses \
        --honour-newlines \
        --continuation-indentation4 \
        --tab-size8 \
        --indent-level2"

10 years ago[308/906] Rename glpixbufoverlay to gloverlay
David Schleef [Thu, 5 Feb 2009 21:13:51 +0000 (13:13 -0800)]
[308/906] Rename glpixbufoverlay to gloverlay

10 years ago[301/906] depends on libpng instead of gdk_pixbuf
Julien Isorce [Fri, 23 Jan 2009 01:04:23 +0000 (02:04 +0100)]
[301/906] depends on libpng instead of gdk_pixbuf

10 years ago[298/906] Revert "Fix indention"
David Schleef [Wed, 11 Feb 2009 05:57:31 +0000 (21:57 -0800)]
[298/906] Revert "Fix indention"

This reverts commit 96e4ab18c2cf9876f6c031b9aba6282d0bd45a93.

You should have asked first.  And you would have been told "no",
because it causes people on development branches to do a huge
amount of extra work.

10 years ago[295/906] Fix indention
Sebastian Dröge [Tue, 3 Feb 2009 17:33:36 +0000 (18:33 +0100)]
[295/906] Fix indention

10 years ago[247/906] Import xray effect
Filippo Argiolas [Wed, 15 Oct 2008 14:18:22 +0000 (16:18 +0200)]
[247/906] Import xray effect

Add xray effect. Maps luma to a negative, slightly cyan tinted, curve,
applies some light gaussian blur and multiplies it with its sobel edges. Not
sure about the name, likely to change. Probably still needs some tuning.

10 years ago[199/906] add pixbufdrop vs8 project
Julien Isorce [Tue, 19 Aug 2008 20:15:17 +0000 (22:15 +0200)]
[199/906] add pixbufdrop vs8 project

10 years ago[198/906] add fxtest vs8 project
Julien Isorce [Tue, 19 Aug 2008 19:04:29 +0000 (21:04 +0200)]
[198/906] add fxtest vs8 project

10 years ago[195/906] fix gstgldifferencematte and add an example app to test it dragging an...
Filippo Argiolas [Tue, 19 Aug 2008 06:50:14 +0000 (08:50 +0200)]
[195/906] fix gstgldifferencematte and add an example app to test it dragging an image over the video (works with pixbufoverlay too, see pixbufdrop --help)

10 years ago[180/906] minor cleanup in fxtest
Filippo Argiolas [Sat, 16 Aug 2008 15:36:10 +0000 (17:36 +0200)]
[180/906] minor cleanup in fxtest

10 years ago[178/906] improve fxtest command line option handling, default to videotestsrc if...
Filippo Argiolas [Sat, 16 Aug 2008 08:15:31 +0000 (10:15 +0200)]
[178/906] improve fxtest command line option handling, default to videotestsrc if no source bin description is given

10 years ago[175/906] add sin effect (desaturate everything but red shades). still needs some...
Filippo Argiolas [Sat, 16 Aug 2008 07:13:39 +0000 (09:13 +0200)]
[175/906] add sin effect (desaturate everything but red shades). still needs some tuning.

10 years ago[173/906] add lumaxpro (desaturate + cross process) effect. nothing too impressive...
Filippo Argiolas [Thu, 14 Aug 2008 19:29:02 +0000 (21:29 +0200)]
[173/906] add lumaxpro (desaturate + cross process) effect. nothing too impressive but I like it.

10 years ago[172/906] add support for command line parsing to fxtest (try fxtest videotestsrc...
Filippo Argiolas [Thu, 14 Aug 2008 18:54:54 +0000 (20:54 +0200)]
[172/906] add support for command line parsing to fxtest (try fxtest videotestsrc ! desired caps ! identity). report a new issue on BUGS.

10 years ago[171/906] import fxtest (little gtk app to easily test effects) from cvs branch,...
Filippo Argiolas [Thu, 14 Aug 2008 18:02:04 +0000 (20:02 +0200)]
[171/906] import fxtest (little gtk app to easily test effects) from cvs branch, fixed rgbtocurve.