Commit graph

20848 commits

Author SHA1 Message Date
Matthew Waters
5e80a99faf eglimage: perform eglCreateImage in the gl thread
while calling eglCreateImage without a GL context current in the executing
thread works on the RPi, some other implementations will return errors.

Marshall the eglCreateImage to the GL thread to appease these implementations.
2016-04-01 16:08:18 +11:00
Matthew Waters
beeb3ff883 glviewconvert: support outputting to multiple draw buffers on GLES3
A similar change that was done to glcolorconvert adding the necessary shader
mangling.
2016-04-01 15:37:04 +11:00
Matthew Waters
822f09f6ae glcolorconvert: implement multiple render targets for GLES3
There are numerous slight differences required between Desktop GL and GLES3 for
multiple render targets.

1. gl_FragData doesn't exist at all and one is required to use
   'layout (location = ?) out ...' instead.
2. gl_FragColor doesn't exist, same as 1
3. texture2D() has been deprecated

Fortunately most of these have been taken care of with GL3 and the shader
mangling already exists so just expand the conditions they are used in.  The
gl_FragData issue requires a new mangle pass though.  We also use this new
pass on desktop GL for consistency.
2016-04-01 15:37:04 +11:00
Thiago Santos
8b777669f5 tests: mssdemux: do not use gst_object_unref for pure GObject*
Deallocate GObject* with g_object_unref instead of gst_object_unref.

Even if it works now, it is confusing and in the future it might
not work if any GstObject specifics are added.

https://bugzilla.gnome.org/show_bug.cgi?id=762142
2016-03-31 18:24:38 -03:00
Florin Apostol
6efda04059 dashdemux: tests: use g_object_unref for test data
The GstDashDemuxTestCase object is allocated using g_object_newv
but in many places was being deallocated using gst_object_unref.
This was caused by commit ae3ed25025.

https://bugzilla.gnome.org/show_bug.cgi?id=762142
2016-03-31 18:24:37 -03:00
Luis de Bethencourt
9d7b525f19 motioncells: fully construct MotionCells
Some members of MotionCells were not being initialized in the constructor.
Protect from potential garbage memory usage by fully initializing it.
Moving m_frameSize out of the class because it is only used in
performDetectionMotionCells().

CID 1197704
2016-03-31 16:12:04 +01:00
Matthew Waters
8b310665c5 gl/build: add missing '\' at the end of the line in MakeFile.am
Otherwise the following elements aren't included in the correct variable.

Fixes error in 'make distcheck' failing to find gstgltestsrc.h
2016-04-01 00:27:04 +11:00
Matthew Waters
74cc987446 gl/tests/pipelines: add custom _CFLAGS and LDADD
As is done everywhere else.

From what I can gather from make -C tests/check V=1 $(GST_PLUGINS_BAD_CFLAGS) is
required in order to find in-tree headers as well as srcdir != builddir
configurations.
2016-03-31 23:07:17 +11:00
Matthew Waters
0ef4269a7f gl/tests: only build the simple-launch-lines test if we have GL 2016-03-31 22:27:02 +11:00
Matthew Waters
1fe958d6d3 glcolorconvert: don't use the predefined variable name sample
Using 'sample' as a variable name is an error in GLES3
2016-03-31 20:53:18 +11:00
Matthew Waters
f9d03dd9c4 gl/examples: fix switchvideooverlay for wayland
and call XInitThreads() for X11
2016-03-31 20:53:18 +11:00
Matthew Waters
8fe5b198be gl/examples: remove duplicated videooverlay example
filtervideooverlay proved the exact same example (only with a extra glfiltercube).
2016-03-31 20:53:18 +11:00
Matthew Waters
14cf686e61 gl/examples/3d: additions for wayland support 2016-03-31 20:53:18 +11:00
Matthew Waters
4210e84f24 gl/tests: add missing test to the build system
Also update it for the current api
2016-03-31 20:53:18 +11:00
Matthew Waters
42817bd6f2 gldifferencematte: port to gl3/gles2 2016-03-31 20:53:18 +11:00
Matthew Waters
a2d82e329a gltestsrc: port to gles2/gl3
This makes gltestsrc work everywhere \o/

- workaround RPi returning invalid values for positive coords in the
  checker shader
- reduce the number of iterations in the mandelbrot shader for gles2

https://bugzilla.gnome.org/show_bug.cgi?id=751540
2016-03-31 20:53:18 +11:00
Matthew Waters
00828b8c4c gltestsrc: port smpte pattern to shaders
Loosely based on patch by
Lubosz Sarnecki <lubosz.sarnecki@collabora.co.uk>

https://bugzilla.gnome.org/show_bug.cgi?id=751540
2016-03-31 20:53:18 +11:00
Matthew Waters
d412d617c2 gltestsrc: implement the circular method
https://bugzilla.gnome.org/show_bug.cgi?id=759801
2016-03-31 20:53:18 +11:00
Matthew Waters
6d368c0d0e gltestsrc: add a generic src framework
Any unsupported pattern (circular) results in an error
2016-03-31 20:53:18 +11:00
Matthew Waters
624ca1aaf0 glsterosplit: remove internal glupload/glcolorconvert
They are provided separately as elements and no other element contains the
internal references to glupload/glcolorconvert.
2016-03-31 20:53:18 +11:00
Matthew Waters
9e40dd7d40 gl: add support for building against GLES3 headers
with a fallback to GLES2 headers if available.
2016-03-31 20:53:18 +11:00
Matthew Waters
9ea15579ec glmemory: add checking the read implementation format/type on gles2 platforms
By default, reading GL_RED or GL_RG us unsupported by glReadPixels unless
exposed through GL_COLOR_READ_IMPLEMENTATION_FORMAT/TYPE.  This allows
downloading multiple-planar video frames where possible.
2016-03-31 20:52:42 +11:00
Matthew Waters
afd0ce7160 glbasememory: rollback map state when subclass map fails
Otherwise our state doesn't reflect reality.
2016-03-31 20:52:42 +11:00
Matthew Waters
7685b052b8 glmemorypbo: unmap pbo memory on pbo read error
Otherwise we are returning failure with a dangling map!

Also only unset the NEED_DOWNLOAD flag in download_transfer() if the read actually
succeeds.
2016-03-31 20:52:42 +11:00
Matthew Waters
d38587c142 glshader: add glBindFragDataLocation
There are some cases where it's needed for binding in/out variables in shaders.
e.g. glsl 150 (gl 3.2) doesn't support the 'layout (location = ?)' specifiers in
the shader source so we have to bind them ourselves.
2016-03-31 20:52:42 +11:00
Sebastian Dröge
2125124755 adaptivedemux: Handle find_stream_for_pad() without g_assert_not_reached() if no pad is found
Happens e.g. if a RECONFIGURE event is sent from downstream while we're
switching pads at this very moment. The old pad is gone and the stream has a
new pad.

https://bugzilla.gnome.org/show_bug.cgi?id=764404
2016-03-31 12:21:57 +03:00
Matthew Waters
d6f7ea88bb nvenc: add support for building against version 6 of the SDK
While mostly API compatible, the ABI has changed so binaries will not work
across header versions (and ultimately nvidia driver releases).

https://bugzilla.gnome.org/show_bug.cgi?id=763324
2016-03-31 17:26:47 +11:00
Vanessa Chipirras Navalon
d1266be431 opencv: pyramidsegment: delete element
cvPyrSegmentation() has been deprecated in OpenCV 3.0, and there isn't any
function to replace it. Deleting this element so we can support OpenCV 3.1
without build issues.

https://bugzilla.gnome.org/show_bug.cgi?id=760473
2016-03-30 22:52:03 +01:00
Vanessa Chipirras Navalon
d3b6b8c64f opencv: gstcvsmooth: Ported to OpenCV version 3.1
cvarrToMat() is added because it is compatible with all versions of Opencv
and the use the class constructor Mat is eliminated because is deprecated
in 3.X versions. This keeps compatibility with 2.4.

https://bugzilla.gnome.org/show_bug.cgi?id=760473
2016-03-30 22:13:27 +01:00
Vanessa Chipirras Navalon
0a08e771d4 opencv: grabcut: Ported to OpenCV version 3.1
cvarrToMat() is added because it is compatible with all versions of Opencv
and using the class Mat constructor is eliminated, because is deprecated
in 3.X versions. The use the using namespace cv because is called some
functions many times. This keeps compatibility with 2.4.

https://bugzilla.gnome.org/show_bug.cgi?id=760473
2016-03-30 22:13:14 +01:00
Vanessa Chipirras Navalon
120f32fed4 opencv: faceblur: Ported to OpenCV version 3.1
cvarrToMat() is added because it is compatible with all versions of Opencv
and the use of the class constructor Mat is eliminated because is deprecated
in 3.X versions. Included 'using namespace std' because it is needed for the
Vector class in 3.X versions. This keeps compatibility with 2.4.

https://bugzilla.gnome.org/show_bug.cgi?id=760473
2016-03-30 22:13:00 +01:00
Vanessa Chipirras Navalon
93b83edfe5 opencv: handdetect: Ported to OpenCV version 3.1
cvarrToMat() is added because it is compatible with all versions of Opencv
and the use of the class constructor Mat is eliminated because is deprecated
in 3.X versions. Included 'using namespace std' because it is needed for the
vector class in 3.X versions. This keeps compatibility with 2.4.

https://bugzilla.gnome.org/show_bug.cgi?id=760473
2016-03-30 22:12:47 +01:00
Vanessa Chipirras Navalon
f91b71edde opencv: retinex: Ported to OpenCV version 3.1
cvarrToMat() is added because it is compatible with all versions of Opencv
and using the class constructor Mat is eliminated because is deprecated
in 3.X versions. This keeps compatibility with 2.4.

https://bugzilla.gnome.org/show_bug.cgi?id=760473
2016-03-30 22:12:32 +01:00
Vanessa Chipirras Navalon
037f54d644 opencv: disparity: Ported to OpenCV version 3.1
'METHOD_VAR', 'METHOD_GC' is removed because there aren't equivalent functions
in new OpenCV versions. 'img_right_as_cvMat_rgb', 'img_left_as_cvMat_rgb' and
'depth_map_as_cvMat2' variables is removed because these aren't used.
cvarrToMat() is added because it is compatible with all versions of Opencv
and using the class Mat constructor is eliminated, because is deprecated
in 3.X versions. The use 'using namespace cv' because is called some
functions many times. This keeps compatibility with 2.4.

https://bugzilla.gnome.org/show_bug.cgi?id=760473
2016-03-30 22:12:16 +01:00
Vanessa Chipirras Navalon
4b60b47075 opencv: skindetect: Ported to OpenCV version 3.1
cvCVPixToPlane() has been deprecated in OpenCV 3.0, and there is
function to replace it cvSplit(). The include compat.hpp is deleted because
in 3.X versions doen't exist and it isn't necessary for 2.4.X versions
in this element. This keeps compatibility with 2.4.

https://bugzilla.gnome.org/show_bug.cgi?id=760473
2016-03-30 22:11:49 +01:00
Vanessa Chipirras Navalon
b37c759e52 opencv: Ported to OpenCV version 3.1 OpenCV
configure.ac was changed to work with new versions of OpenCV 3.X.
A new include is added gstopencvutils.cpp because it contains
the previous. This keeps compatibility with 2.4.

https://bugzilla.gnome.org/show_bug.cgi?id=760473
2016-03-30 22:10:58 +01:00
Sebastian Dröge
5d9df5d5d0 ahcsrc: There's no point in read-only CONSTRUCT properties
And creating one is causing assertions. Also get rid of the other CONSTRUCT
property as it's a) unneeded for default initialization and b) you're not
supposed to use constructor properties when creating element instances and the
GStreamer API doesn't provide direct ways for doing so.

https://bugzilla.gnome.org/show_bug.cgi?id=764339
2016-03-30 10:35:53 +03:00
Edward Hervey
11ace3c18a teletexdec: Simplify negotiation code
No need to use a while() loop if we're going only going to use
the first structure of the caps ...

CID #1341748
2016-03-29 10:57:32 +02:00
Sebastian Dröge
86e57adda2 aggregator: Fix leak in unit test
GST_PAD_PROBE_HANDLED means that we should've unreffed the probe data,
it was handled by us in one way or another.
2016-03-28 13:52:07 +03:00
Nirbheek Chauhan
ac17cd5d06 .gitignore: Ignore some more test temporary files 2016-03-28 13:46:00 +03:00
Nirbheek Chauhan
d023bca972 tests/compositor: Add test for aggregator pad numbering
Tests that the behaviour in 7a5cb5a473 is being conformed to.
2016-03-28 13:46:00 +03:00
Nirbheek Chauhan
302a4a7b5c aggregator: Fix strcmp test for sink template 2016-03-28 13:46:00 +03:00
Nirbheek Chauhan
cb53a6284f aggregator: Don't try to be too smart while allocating pad names
Previously, while allocating the pad number for a new pad, aggregator was
maintaining an interesting relationship between the pad count and the pad
number.

If you requested a sink pad called "sink_6", padcount (which is badly named and
actually means number-of-pads-minus-one) would be set to 6. Which means that if
you then requested a sink pad called "sink_0", it would be assigned the name
"sink_6" again, which fails the non-uniqueness test inside gstelement.c.

This can be fixed by instead setting padcount to be 7 in that case, but this
breaks manual management of pad names by the application since it then becomes
impossible to request a pad called "sink_2". Instead, we fix this by always
directly using the requested name as the sink pad name. Uniqueness of the pad
name is tested separately inside gstreamer core. If no name is requested, we use
the next available pad number.

Note that this is important since the sinkpad numbering in aggregator is not
meaningless. Videoaggregator uses it to decide the Z-order of video frames.
2016-03-28 13:46:00 +03:00
Thibault Saunier
c32e74fd8a lv2: Port filters to GStreamer 1.0 and use lilv instead of slv2
Properly separate files as we will not have only one single base class
for all elements as we used to with 0.10, but the same way it is done
with ladspa, we subclass GstAudioFilter, GstBaseSource etc...

https://bugzilla.gnome.org/show_bug.cgi?id=678207
2016-03-27 19:28:00 +02:00
Nirbheek Chauhan
21023800ca gtk: Fix logging in base widget and fix desc of GL sink
Set a default category for gtkgstbasewidget lest the logging go to the 'default'
category where it can't be found easily
2016-03-27 12:04:16 +03:00
Yann Jouanin
9554e1c666 rtmpsrc plugin : add timeout option
https://bugzilla.gnome.org/show_bug.cgi?id=764251
2016-03-27 11:54:36 +03:00
Sebastian Dröge
cc1feff99f mxfmux: Instead of releasing request pads on stop(), clear them only
Request pads are requested by applications and as such should only be released
by them again. Instead of releasing them when stopping the muxer, just clear
their state so that they can be used again when starting the muxer again.

https://bugzilla.gnome.org/show_bug.cgi?id=763862
2016-03-25 12:54:00 +02:00
Sebastian Dröge
10a9b78d40 player: Add is_live flag to the GstPlayerMediaInfo
https://bugzilla.gnome.org/show_bug.cgi?id=763126
2016-03-25 12:51:29 +02:00
Sebastian Dröge
b53f682d75 sdp: Add new sdpsrc element
This can read from an SDP file or get the SDP data via property. Works
around the problem that sdpdemux inside decodebin fails because the
GST_STATE_CHANGE_NO_PREROLL is not observed by the pipeline.

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

https://bugzilla.gnome.org/show_bug.cgi?id=762860
2016-03-25 12:50:15 +02:00
Matthew Waters
cfbe7d1399 gtk/gl: don't assert when gdk doesn't provide a GL context
Allows the application to check whether gtkglsink is supported by setting
the element to READY.

https://bugzilla.gnome.org/show_bug.cgi?id=764148
2016-03-25 17:49:14 +11:00