Commit graph

3186 commits

Author SHA1 Message Date
Mathieu Duponchelle d704790519 doc: fix element section documentations
Element sections were not rendered anymore after the hotdoc
port, fixing this revealed a few incorrect links.
2019-05-25 16:57:31 +02:00
Sebastian Dröge 041a988100 aasink: Generate pkg-config file for the plugin 2019-05-23 12:38:06 +03:00
Thibault Saunier 38c5ba90b3 doc: Fix some docstrings 2019-05-13 17:00:00 -04:00
Thibault Saunier af01988534 doc: Port documentation to hotdoc 2019-05-13 11:34:56 -04:00
Thibault Saunier 0a6a62aa76 docs: Port all docstring to gtk-doc markdown 2019-05-13 10:24:40 -04:00
okuoku 05089a7092 jack: Use jack_free(3) to release ports
Port objects acquired with jack_get_ports() need to be freed with
jack_free(3), not stdlib free().

On Windows, Jack may be linked against different libc than GStreamer
libraries so free()ing port objects directly might cause crash because
of libc mismatch.
2019-04-24 02:38:32 +09:00
Benjamin Sigonneau 0375e53225 qmlglsink: fix compilation with Qt >= 5.5 on Windows
As of Qt >= 5.5, qmake do not link to opengl32 by default anymore. This commit adds opengl32.lib to the .pro
file so that the plugin can be build using QtCreator on Windows.
2019-04-18 17:14:18 +02:00
Nirbheek Chauhan e40072630c meson: Build qt plugin in C++11 mode explicitly
This works implicitly most of the time, but we need to set it
explicitly for building with Android.
2019-04-17 15:48:26 +05:30
Nicolas Dufresne bac8c00b85 shout2: Fix leak on error in start 2019-04-05 14:53:09 +00:00
Nirbheek Chauhan f23724b8a6 meson: Only ensure that moc is available on Linux
On other OSes, it's not possible to have qmake or the qt5 pkg-config
files and not have moc, and `moc` will not be in `PATH`, so this only
causes problems.
2019-04-01 18:20:28 +05:30
Julian Bouzas 2ebdd70c21 flac: report latency in flacenc and flacdec
The FLAC specification states that the data is processed in blocks, regardless of the number of channels. Thus, The latency can be calculated using the blocksize and rate. For example a 1 second block sampled at 44.1KHz has a blocksize of 44100
2019-03-25 15:14:32 +01:00
Antonio Ospite 2dfe228740 docs: fix typos s/recieve/receive/ 2019-03-07 12:41:40 +01:00
Matthew Waters 7f95a809e9 gtkgl: Also try retrieving an EGL context from Gdk with X11
Some embedded platforms will use EGL instead of GLX within the X11
ecosystem.
2019-03-05 15:26:45 +11:00
Thibault Saunier 263dfae6d5 pulse: Post DEVICE_CHANGED on modification 2019-02-08 22:02:13 +00:00
Thibault Saunier 7bc5e28d85 pulse: Mark default devices as "default" 2019-02-08 22:02:13 +00:00
Jan Alexander Steffens (heftig) b6e6f1ae73 vpx: Fix build against libvpx 1.8
The deprecated debug visualizer was removed.
2019-02-07 11:17:39 +00:00
Arun Raghavan f0bdec32c1 pulsesink: Deal with not being able to convert a format to caps
It is possible that PulseAudio adds formats that are not yet supported
in pulsesink, and in those cases, we want to gracefully skip them rather
than cause an assert on a NULL caps.
2019-02-06 15:33:31 +05:30
Matthew Waters c92dcf513d qmlgl: Fix opengl header guard changes again
Reapply 3d708a5bfa in the correct place
after the iOS additions.
2019-02-05 15:27:49 +11:00
Nirbheek Chauhan d677e635fc meson: qmlgl plugin iOS definitions
Tested with cross-ios-arm64 and cross-ios-x86, since those two are the
only archs shipped with the official Qt binaries.
2019-02-01 14:28:18 +05:30
Nirbheek Chauhan 0de89c0dbe qt: Don't define GLsync inside gstglfuncs.h
This was originally added for fixing conflicting definitions between
Android and Qt, but times have changed and now this breaks the build
on iOS:

 [...]/OpenGLES.framework/Headers/ES3/gl.h:1006:48: error: unknown type name 'gst_qt_GLsync'
 GL_API void           GL_APIENTRY glGetSynciv (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values)   OPENGLES_DEPRECATED(ios(7.0, 12.0), tvos(9.0, 12.0));
                                               ^
 ../ext/qt/gstqtgl.h:49:16: note: expanded from macro 'GLsync'
 #define GLsync gst_qt_GLsync
                ^
 6 errors generated.

Instead, we simply avoid defining GLsync ourselves if we're using Qt.
2019-02-01 14:28:18 +05:30
Nirbheek Chauhan 1bdec4d055 meson: Fix indentation in qt plugin and add a FIXME comment 2019-02-01 14:28:18 +05:30
Mathieu Duponchelle 869e45d19c gdkpixbufdec: always output a TIME segment
It makes no sense for a decoder to output a BYTES segment, and
many elements one would plug downstream of a video decoder assume
the segments they receive are in TIME format, for example this fixes:

gst-validate-1.0 filesrc location=opacity01.svg ! gdkpixbufdec ! \
videobalance ! videoconvert ! fakesink

In that case, videobalance was emitting an assertion when trying to
call gst_object_sync_values()
2019-01-29 18:46:25 +00:00
Nirbheek Chauhan e9b5e78c9e meson: Add macOS definitions for qmlgl plugin
Tested with Cerbero.
2019-01-29 12:19:37 +05:30
Nirbheek Chauhan 8f9ca07756 meson: Fix building of qmlgl plugin on Android
Needs gnustl for C++ STL support, which is the GNU STL on Android API
19 and older, and is a wrapper for the llvm-libc++ STL on newer APIs.

QtGui C++ templates use GL functions, so GLESv2 is needed at link time
2019-01-29 12:19:37 +05:30
Xavier Claessens aaa7c60b52 Meson: fallback to libsoup subproject 2019-01-23 21:05:10 +00:00
George Kiagiadakis 0a1d048ee3 qmlgl: add README.md with information on building for non-linux platforms with qmake 2019-01-21 11:55:50 +02:00
George Kiagiadakis f09807fc3d qmlgl: meson: fix theoretical support for building for android
The android code path is slightly different than the EGLFS one,
so I added previously a HAVE_QT_ANDROID define for use with qmake.
Here I also add it in meson, although I expect nobody will ever use
meson to build this, as it's complicated.
2019-01-21 11:55:50 +02:00
George Kiagiadakis eab642b1c3 qmlgl: qmake: add support for MacOS target 2019-01-21 11:55:50 +02:00
George Kiagiadakis 66d0c41161 qmlgl: qmake: remove cerbero's include dir from the include path
pkg-config should do it's job here, this is unnecessary and implies using cerbero
2019-01-21 11:55:50 +02:00
George Kiagiadakis e279903857 qmlgl: qualify Qt includes with their module and remove module include dir from the .pro file
it is perfectly legal to use the <module/class> style of includes with Qt
and it avoids the need for having the module's include dir in the include path
2019-01-21 11:55:50 +02:00
George Kiagiadakis 584c5afbe5 qmlgl: qmake: don't link against QtWidgets, it's not used 2019-01-21 11:55:50 +02:00
George Kiagiadakis d75284cd83 qmlgl: qmake: fix building for android 2019-01-21 11:55:50 +02:00
Nirbheek Chauhan 00f14f34b5 meson: Generate pkg-config file for qmlgl plugin 2019-01-18 21:11:25 +00:00
Arun Raghavan f5bb377a78 pulse: Fix format info to caps conversion for PCM 2019-01-18 11:06:38 +00:00
Arun Raghavan 4e9a8e5883 Revert "pulsesrc: Move to extended stream API"
This reverts commit 4d67d1bd16.

Using the extended API for the capture path depends on a fix in
PulseAudio
(https://gitlab.freedesktop.org/pulseaudio/pulseaudio/merge_requests/49).

Until then, let's go back to the standard API.

Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/552
2019-01-18 11:06:38 +00:00
Nirbheek Chauhan 9ece93dbd8 meson: Search for qmake-qt5 before qmake
The canonical name for the binary is qmake-qt5, and qmake is the
generic name that can also be a qt4 qmake.
2019-01-18 14:41:14 +05:30
Sebastian Dröge db0eca886f gtk/gl: Only unbind buffers/vertex attrib arrays if we can't directly bind the vertex array to 0
Binding the vertex array to 0 will unbind everything else already.

In the previous order older versions of the Intel GL driver caused
errors to be printed for every single call when disabling the vertex
attrib arrays after binding the vertex array to 0.
2019-01-16 14:11:44 +02:00
Arun Raghavan 4d67d1bd16 pulsesrc: Move to extended stream API
This is needed as a precursor to allowing capture of IEC61937
formats. We now also need to include the channel map while converting
format info to caps so that a correct channel mask is generated for
pulsesrc's caps.
2019-01-10 09:16:02 +00:00
Marc-André Lureau 8b155d7188 pulsesrc: fix checking for invalid stream index
PA_INVALID_INDEX, the default value, is unfortunately !0.

Setting the volume before the stream is created will put the ring
buffer in error state. Unfortunately, that's what spice-gtk does.
2019-01-07 11:54:24 +04:00
Nicola Murino 1081a2ee50 souphttpsrc: check difference in time from the last socket read before changing blocksize
If the pipeline consumes the data slower than the available network speed,
for example because sync=true, is useless to increase the blocksize and
reading in too big blocksizes can cause the connection to time out

Closes #463
2018-12-17 19:27:48 +01:00
Edward Hervey 3d708a5bfa qtgl: Handle OPENGL header guard changes
In 2018 khronos changed the gl header guards. If we don't detect
this properly we would end up with plenty of symbol redifinition
(since we would be importing twice the "same" header).

Instead detect if the "newer" header was already included and if
so define the "old" define to avoid this situation

Fixes #523
2018-12-17 10:51:50 +01:00
Jochen Henneberg 88a6832b2a flacdec: Use new channel count for audio info 2018-12-14 09:22:33 +00:00
Jochen Henneberg d74f964407 flacdec: Caps may have changed on FLAC metadata change
If the decoder signals metadata change we need to update the output
format and negotiate with downstream elements.
2018-12-14 09:22:33 +00:00
Jochen Henneberg a5d71c597d flacdec: Reset decoder on set_format()
Any call to set_format() could mean that the stream type changed so we
reset the decoder and mark got_headers FALSE.
2018-12-14 09:22:33 +00:00
Sebastian Dröge 172d14acef cairooverlay: Optimize premultiplication/unpremultiplication loops
Pull in video frame fields into local variables. Without this the
compiler must assume that they could've changed on every use and read
them from memory again.

This reduces the inner loop from 6 memory reads per pixels to 4, and the
number of writes stays at 3.
2018-12-07 17:22:39 +00:00
Arun Raghavan a24ef929a4 pulse: Expose the correct max rate that we support
PulseAudio defines PA_RATE_MAX as the maximum sampling rate that it
supports. We were previously exposing a maximum rate of INT_MAX, which
is incorrect, but worked because nothing was really using a rate greater
than 384000 kHz.

While playing DSD data, we hit a case where there might be very high
sample rates (>1MHz), and pulsesink fails during stream creation with
such streams because it erroneously advertises that it supports such
rates.

Since PA_RATE_MAX is #define'd to (8*48000U), we can't just use it in
the caps string. Instead, we fix up the rate to what we actually support
whenever we use our macro caps.
2018-11-19 21:28:25 +05:30
Sebastian Dröge a766dce53d cairooverlay: Don't map input buffers if we just attach the overlay as meta
https://bugzilla.gnome.org/show_bug.cgi?id=797091
2018-10-03 23:20:10 +03:00
Sebastian Dröge 10446bd371 cairooverlay: Add overlay as meta to the buffers if we can
This requires that downstream supports it and
draw-on-transparent-surface is enabled.

https://bugzilla.gnome.org/show_bug.cgi?id=797091
2018-10-03 23:20:10 +03:00
Sebastian Dröge f1c5a22a7a cairooverlay: Pre-multiply and un-premultiply alpha in case of ARGB32
Cairo expects pre-multiplied alpha, we work on un-premultiplied alpha.

https://bugzilla.gnome.org/show_bug.cgi?id=797091
2018-10-03 23:20:10 +03:00
Sebastian Dröge 9844bdbf7a cairooverlay: Add property for drawing on a transparent surface and then blending
This allows us to use the GstVideoOverlayComposition API and correctly
handle pre-multiplied alpha, while also only doing the alpha conversion
once instead of twice for the whole frame.

At a later point we can attach the meta to the buffer instead of
blending ourselves if downstream supports that.

https://bugzilla.gnome.org/show_bug.cgi?id=797091
2018-10-03 23:20:10 +03:00