| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Until the examples are ported to opengl3/gles2, they will not work with any
other GL api.
|
|
|
|
| |
Fixes some sporadic X11 threading assertions.
|
|
|
|
|
|
| |
The examples don't work with any other GL API.
Also fix the yuv example to not translate the cube out of the clipping area.
|
|
|
|
| |
Fixes a negotiation failure in the example
|
|
|
|
|
| |
X11_LIBS is needed for XInitThreads() and without the #define we get
warnings about the GL API being still unstable.
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=756082
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Include gst/gl.h instead of specific headers to prevent such problems also in
the future.
In file included from ../../../../gst-libs/gst/gl/gl.h:47:0,
from ../../../../gst-libs/gst/gl/gstglbasememory.h:137,
from ../../../../gst-libs/gst/gl/gstglmemory.h:29,
from cluttershare.c:39:
../../../../gst-libs/gst/gl/gstglmemorypbo.h:51:20: error: field ‘mem’ has incomplete type
GstGLMemory mem;
^
../../../../gst-libs/gst/gl/gstglmemorypbo.h:124:24: error: field ‘parent’ has incomplete type
GstGLMemoryAllocator parent;
^
../../../../gst-libs/gst/gl/gstglmemorypbo.h:134:29: error: field ‘parent_class’ has incomplete type
GstGLMemoryAllocatorClass parent_class;
^
|
| |
|
|
|
|
|
|
| |
First, use top_builddir, otherwise it fails in out-of-source builds.
Second, link to the libtool archive directly to let make understand
the dependency.
|
|
|
|
| |
g_free() is NULL-safe
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=748322
|
|
|
|
| |
work at all
|
|
|
|
|
|
| |
One may not have an GstGLContext available or current in the thread where one
would need to update the shader. Support this by signalling create-shader
whenever the one-shot 'update-shader' is set to TRUE.
|
|
|
|
|
|
|
| |
Implemented with videotestsrc ! glshader ! glupload ! gtkglsink
Errors on an invalid shader compilation are ignored however any error
provided by the glsl compiler is printed to stdout.
|
|
|
|
|
|
|
|
|
|
| |
When g_option_context_parse fails, context and error variables are not getting free'd
which results in memory leaks. Free'ing the same.
And replacing g_error_free with g_clear_error, which checks if the error being passed
is not NULL and sets the variable to NULL on free'ing.
https://bugzilla.gnome.org/show_bug.cgi?id=753854
|
|
|
|
|
|
|
|
|
|
| |
Instead of checking for the gstreamer-video-1.0 package is installed,
just assume it is since we already check for the -base dependency.
With this replace the GST_VIDEO_* variables in makefiles and directly
link with libgstvideo.
https://bugzilla.gnome.org/show_bug.cgi?id=753820
|
|
|
|
|
| |
By default the example floods the screen with the detected face values.
Add an option to avoid this for frail terminals.
|
|
|
|
|
|
| |
The variables to store face values are only needed if they will be used to
control the volume. Which isn't the default to avoid potentially being very
loud accidentally. Only create variables when needed.
|
| |
|
| |
|
|
|
|
|
| |
"/dev/video0" is the default device of v4l2src, setting it to this is
redundant.
|
|
|
|
|
|
|
|
|
|
|
|
| |
I created four utilities of the detected features:
1- If you hide your mouth, the volume of video is low.
2- If you hide the nose, the volume of the video is up.
3- If you hide the full face, the video stops.
You can see proof of this here:
https://www.youtube.com/watch?v=pxzejNKV_WQ
https://bugzilla.gnome.org/show_bug.cgi?id=748377
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Very much in the same spirit as the Gtk GL sink
Two things are provided
1. A QQuickItem subclass that renders out RGBA filled GstGLMemory
buffers that is instantiated from qml.
2. A sink element that will push buffers into (1)
To use
1. Declare the GstGLVideoItem in qml with an appropriate
objectName property set.
2. Get the aforementioned GstGLVideoItem from qml using something like
QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
QObject *rootObject = engine.rootObjects().first();
QQuickItem *videoItem = rootObject->findChild<QQuickItem *> ("videoItem");
3. Set the videoItem on the sink
https://bugzilla.gnome.org/show_bug.cgi?id=752185
|
| |
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=673925
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=611157
|
| |
|
|
|
|
| |
This should help people figure out how to use the example a bit better
|
|
|
|
|
| |
Only do that when we're removing an item that was playing, otherwise we'll mess
things up while trying to edit the play queue (playlist).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
An example app that takes video URIs as command line arguments and switches
between them seamlessly one after the other using compositor and audiomixer.
Both audio-video and video-only media files are valid inputs, but mixing files
of both types in a single invocation is cumbersome to support, and hence does
not work. The example attempts to keep the audio stream moving along perfectly,
and duplicates video frames where necessary to cover gaps in the video
timestamps using the 'ignore-eos' videoaggregator pad property.
Ensuring seamless (and mostly-glitch-free) switching is harder than it sounds,
and hence the example contains plenty of pad probes and running time
calculations to make things work.
The GPtrArray play_queue contains items that are being played back, have been
prepared for playback, and will be played back in the future. The queue itself
is mutable besides the first two items (playing and prepared). The item that has
been prepared should not be edited or removed since it has been prepared in
advance to be activated immediately on the current item's EOS.
The example also has support for switching to the next item in the queue
prematurely; see the --switch-after/-s flag to the application.
Note: the output video is hard-coded at 1280x720, and input video is scaled as
needed to fit this size. Set OUTPUT_VIDEO_WIDTH/HEIGHT to change this.
https://bugzilla.gnome.org/show_bug.cgi?id=748947
|
|
|
|
| |
The widget already does that.
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
| |
two sinks are provided. gtksink which is a cairo/software based renderer
and gtkglsink which utilises the GL support in gtk and gstreamer.
|
|
|
|
|
|
| |
libtool: error: ignoring unknown tag OBJC
and
clang: error: argument unused during compilation: '-pthread'
|
|
|
|
|
| |
Highly unlikely to have 0 captures, but protect from crashes in the future by
doing none of the math if there is no data.
|
|
|
|
|
| |
Not all platforms have wayland support. Handle that gracefully at
compile time
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Add a slider to modify the zoom in camerabin
|
|
|
|
| |
VBox and HBox are now simply Box
|
|
|
|
|
|
| |
When opening the .ui file it complains about being for GTK 2 and
automatically updates it to GTK3. Commit this version and update
the makefile
|
|
|
|
|
|
|
|
| |
If 95% of the code of an example app consists of GObject
code, maybe that's defeating the point a little. So just
remove a lot of that and trim down the example to the
absolute minimum. Also removes the last remaining GPL3
licensed code in -bad.
|
| |
|
| |
|
| |
|
|
|
|
| |
translating outside the clip region doesn't work
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=739681
|