Commit graph

3259 commits

Author SHA1 Message Date
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
Nirbheek Chauhan
3da5144bbe meson: Explicitly pass -DWIN32 while building speex
The speex headers assume that WIN32 will always be defined when
building on Windows, but this is only true by default on MinGW.
Always set it explicitly.
2018-09-07 18:51:17 +05:30
Nirbheek Chauhan
6720da07cf meson: Don't skip plugins that don't build with MSVC
We now have options for all plugins, so we will just disable these in
the cerbero recipe instead. These require external deps, so they won't
affect gst-build either.
2018-09-05 20:15:57 +05:30
Nirbheek Chauhan
c0ff8a036a mpg123: Remove ssize_t fallback, not needed anymore
The mpg123 headers now contain a definition for ssize_t and building
with MSVC fails because of a redefinition for ssize_t
2018-09-04 12:39:19 +05:30
Tim-Philipp Müller
8305cb2995 meson: find libjpeg via pkg-config
This effectively (but optionally) requires libjpeg-turbo which
ships with a .pc file and is what pretty much everyone these days
uses anyway for libjpeg, so shouldn't be a problem hopefully.

https://bugzilla.gnome.org/show_bug.cgi?id=796947
2018-08-18 21:01:52 +01:00
Nirbheek Chauhan
cebe940c12 meson: Rename caca option to libcaca
All options must match the plugin directory name.
2018-08-17 20:05:25 +05:30
Matthew Waters
319171b162 qt: Ensure GL headers are included
Otherwise there may be no valid typedef of GLsync.

...
/usr/include/gstreamer-1.0/gst/gl/gstglfuncs.h:93:24: note: in definition of macro 'GST_GL_EXT_FUNCTION'
   ret (GSTGLAPI *name) args;
                        ^~~~
/usr/include/gstreamer-1.0/gst/gl/glprototypes/sync.h:33:23: error: 'GLsync' has not been declared
                      (GLsync sync))
                       ^~~~~~
...

https://bugzilla.gnome.org/show_bug.cgi?id=796879
2018-08-01 12:11:04 +10:00
Nirbheek Chauhan
8f807477eb meson: Add feature options for all plugins
Checks for GL, Qt5, and C++ are still automagic. FIXMEs have been
added for these so they can be fixed later.

https://bugzilla.gnome.org/show_bug.cgi?id=795107
2018-07-27 18:42:54 +05:30
Iñigo Huguet
b03df1abf8 qmlgl: Fix conflicting declaration of type GLsync for non-android
https://bugzilla.gnome.org/show_bug.cgi?id=796821
2018-07-18 13:57:23 +10:00
Tim-Philipp Müller
238a37295c Update for g_type_class_add_private() deprecation in recent GLib
https://gitlab.gnome.org/GNOME/glib/merge_requests/7
2018-06-23 23:44:19 +02:00
Edward Hervey
8842d51ff8 souphttpsrc: Protect input stream with lock
This was the last remaining place where modifying/unreffing the
input stream was not protected by the lock

https://bugzilla.gnome.org/show_bug.cgi?id=796639
2018-06-20 10:05:35 +02:00
Matthew Waters
ee046864d8 qt: also check for un-suffixed moc
e.g. Qt windows installer doesn't have suffixes
2018-06-07 14:28:37 +10:00
Andre McCurdy
f9b7e2ab85 id3v2mux: ensure valid sentinal for gst_structure_get()
gst_structure_get() is declared with G_GNUC_NULL_TERMINATED, ie
__attribute__((__sentinel__)), which means gcc will generate a
warning if the last parameter passed to the function is not NULL
(where a valid NULL in this context is defined as zero with any
pointer type).

The C code callers to gst_structure_get() within gst-plugins-good
use the C NULL definition (ie ((void*)0)), which is a valid sentinel.

However gstid3v2mux.cc uses the C++ NULL definition (ie 0L), which
is not a valid sentinel without an explicit cast to a pointer type.

Upstream-Status: Pending

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
2018-05-19 11:26:14 +02:00
Andre McCurdy
07abf5d60f raw1394: avoid including <sys/poll.h> directly
Note from Edward Hervey: Patch from git.yoctoproject.org

musl libc generates warnings if <sys/poll.h> is included directly.

Upstream-Status: Pending

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
2018-05-19 11:22:39 +02:00
Xavier Claessens
edd9c8f6b8 Meson: Generate pc file for all plugins in good
https://bugzilla.gnome.org/show_bug.cgi?id=794568
2018-04-25 11:07:06 +01:00
Thibault Saunier
1914b9d4e2 jpegenc: Accept sof-marker=4
sof-marker is 4 when input is in the RGB colorspace.

https://bugzilla.gnome.org/show_bug.cgi?id=795463
2018-04-23 07:55:30 -03:00
Matthew Waters
ca67a460ee meson: add build files for the qml plugin
Tested on linux with X11/wayland and semi-tested on Windows.

Windows crashes on item destruction however this is better than nothing.

Fix up some win32 build issues on the way with mismatched {} and
G_STMT_{START,END}
2018-04-15 23:49:57 +10:00
Carlos Rafael Giani
56a1eb65e2 qt: Get EGL native display from QPA if platform header is available
https://bugzilla.gnome.org/show_bug.cgi?id=792378
2018-03-22 09:58:52 +02:00
Arnaud Bonatti
b348ddfded gtk: fix compiler warning with recent glib
https://bugzilla.gnome.org/show_bug.cgi?id=793688
2018-02-21 11:35:39 +00:00
Matthew Waters
ff7d14a384 qt: don't use libEGL functions when we don't link to libEGL
Use the provided wrapper available from libgstgl.

https://bugzilla.gnome.org/show_bug.cgi?id=793547
2018-02-21 11:35:33 +11:00
Tim-Philipp Müller
072c070e6c docs: remove pointless Since: 0.10.x markers 2018-02-15 00:58:38 +00:00
Tim-Philipp Müller
bbab8f79ad qt: hook up to build
https://bugzilla.gnome.org/show_bug.cgi?id=754094
2018-02-12 18:40:10 +00:00
Tim-Philipp Müller
6c75e6c5e0 Move qt plugin from -bad
https://bugzilla.gnome.org/show_bug.cgi?id=754094
2018-02-12 18:13:17 +00:00
Tim-Philipp Müller
eb29ffa36d gtk: hook up to meson build 2018-02-12 15:18:37 +00:00
Tim-Philipp Müller
9c21a17a9a gtk: hook up to autotools build 2018-02-10 13:33:42 +00:00
Tim-Philipp Müller
a12f8df0c6 Move gtk plugin from -bad
https://bugzilla.gnome.org/show_bug.cgi?id=754094
2018-02-10 12:49:36 +00:00
Matthew Waters
93cf3ef912 qt: don't #include platform specific gstglcontext_*.h headers
They aren't public headers
2018-02-07 20:15:35 +11:00
Matthieu Crapet
ba86a1d99c jpegenc: add snapshot property
Like pngenc, automatically send an EOS message.

Example of bin:
appsrc ! jpegenc snapshot=true ! filesink location=out.jpg

This is especially useful for limited/slow hardware.

Otherwise calling gst_video_convert_sample() is a better option
(internally uses videoconvert and videoscale).

https://bugzilla.gnome.org/show_bug.cgi?id=755453
2018-01-31 17:51:16 +00:00
Tim-Philipp Müller
3cf73a66fe meson: use -fno-strict-aliasing where supported
https://bugzilla.gnome.org/show_bug.cgi?id=769183
2018-01-30 20:34:36 +00:00
Oleksij Rempel
1bb4b83e9a vpx: add VP8_DEBUG_TXT_* flags for postprocessing
https://bugzilla.gnome.org/show_bug.cgi?id=641399
2018-01-25 19:42:07 +00:00
paul.kim
129eecf012 souphttpsrc: Reset retry_count to 0 when GST_FLOW_FLUSHING
If a lot of seek method is called very quickly, sometimes data reading
and do_request occurs while seek flush event is occurring and error
occurs because retry_count
reaches to the max. Thus, reset retry_count if flush occurs after
do_request and read_buffer.

https://bugzilla.gnome.org/show_bug.cgi?id=790199
2018-01-19 11:40:07 +02:00
Adrián Pardini
c019530091 shout2send: print actual username in debug log out
https://bugzilla.gnome.org/show_bug.cgi?id=782093
2018-01-18 18:27:26 +00:00
Mathieu Duponchelle
34abfbff18 flacdec: flush flac decoder on lost sync.
This to allow the decoder to start searching for a new
frame again.

https://bugzilla.gnome.org/show_bug.cgi?id=791473
2018-01-11 15:13:31 +01:00
Ezequiel Garcia
10ff3c8e14 jpeg: Fixup frames without an EOI marker
Some cameras fail to send an end-of-image marker (EOI)
and can't be properly decoded by either JPEG or libjpeg.

This commit parses the frame, making sure it has an EOI.
If there isn't one, the EOI gets added to the buffer.

A similar fixup is done in the rtpjpegdepay element,
and it makes sense to do it in jpegdec as well.

Signed-off-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>

https://bugzilla.gnome.org/show_bug.cgi?id=791988
2017-12-27 19:39:39 +01:00
Tim-Philipp Müller
33e2fadc3a gtk: don't include uninstalled header 2017-12-19 13:03:28 +00:00
Tim-Philipp Müller
fab34b7d0e gl: update plugins to use GstGL from -base 2017-12-19 12:02:31 +00:00
Tim-Philipp Müller
2106bf0151 gl: update plugins to use GstGL from -base 2017-12-19 12:02:31 +00:00
Matthew Waters
92c89e2a31 gl/caopengllayer: use public GstGLContext instead of Cocoa-specific one
Allows keeping the GstGLCAOpenGLLayer public but not the winsys-specific
context/display/window.
2017-11-27 15:20:28 +11:00
Edward Hervey
63398b8525 gtk: Fix possibility of NULL variable
It's quite unlikely since it's initialized in instance initialization.

CID #1417721
2017-11-24 08:00:21 +01:00
Jan Schmidt
e82c24e893 jpegenc: Update output caps on input caps change
If the input changes width/height that should be reflected
in the output caps, so make sure they get updated
2017-11-24 16:54:09 +11:00
Jan Schmidt
4359684dd2 Revert "gl: Use GstGLDisplayEGL directly instead of creating a GstGLDisplayVIVFb subclass"
This reverts commit 47fd4d391e.

This patch is incorrect. It doesn't actually compile, and causes a crash
because the viv-fb window implementation needs a native EGL handle
to pass to fbCreateWindow, but the GstGLDisplayEGL handleis actually
an EGLDisplay now (and gets cast to the wrong type)
2017-11-24 01:48:27 +11:00
paul.kim
b4edfb5998 souphttpsrc: Remove range header when seek to 0
This fixes the previous range header is remained if seek to 0 is
attempted.

https://bugzilla.gnome.org/show_bug.cgi?id=779957
2017-11-10 10:22:36 +01:00
Edward Hervey
770bb07f30 souphttpsrc: Fix seeking back to 0
This is a regression introduced by "03db374 - souphttpsrc: retry
request on early termination from the server"

The problem was that when seeking back to 0, we would not end up calling
add_range_header() which in addition to adding range headers *ALSO* sets
the read_position to the requested one.

This would result in a wide variety of later failures, like reading
again and again instead of stopping properly.
2017-11-08 16:34:01 +01:00
Andreas Frisch
5615ec59c4 pngdec: fix build with libpng versions between 1.2 and 1.5.1
https://bugzilla.gnome.org/show_bug.cgi?id=765927
2017-10-20 09:31:31 +02:00
Andreas Frisch
9fd988170a pngdec: Extract icc profiles and send them downstreams for colormanagement elements
https://bugzilla.gnome.org/show_bug.cgi?id=765927
2017-10-19 16:49:10 +02:00
Tim-Philipp Müller
e16ad13ed6 qt: update qmake .pro file
Update for renaming of plugin file, and add some
missing source files.
2017-10-13 12:25:22 +01:00
Mathieu Duponchelle
c7a172517d gstgdkpixbufdec: stop pretending to decode gifs.
If you can't decode an animated gif, you can't decode a gif,
so stop squatting GST_RANK_SECONDARY for that format, libav
does a better job.

https://bugzilla.gnome.org/show_bug.cgi?id=784683
2017-10-12 22:02:04 +02:00
Reynaldo H. Verdejo Pinochet
0ddb65dec7 Use proper GtkDoc notation for NULL/FALSE/TRUE 2017-10-03 16:30:10 -07:00
Cassandra Rommel
43827a05f9 gl: Use GstGLDisplayEGL directly instead of creating a GstGLDisplayVIVFb subclass
This simplifies the code a lot without any functional changes apart from
not closing the display connection. Closing the display connection is
not safe to do as it is shared between all other code in the same
process and no reference counting or anything happens at the platform
layer.
2017-10-03 10:14:51 +02:00
Ponnam Srinivas
c53bee067d pngenc: fix memory leak in error code path
Don't leak row_pointers if frame can't be mapped.

https://bugzilla.gnome.org/show_bug.cgi?id=787885
2017-09-20 09:00:10 +01:00
Jochen Henneberg
a0d526a2a8 qmlglsink: Expose itemInitialized as property
Instead of just signalling when ready exposing the state
as a property allows us to bind at any time if player is
loaded async.
2017-09-14 15:12:12 +10:00
Tim-Philipp Müller
be7ebefd27 qt: fix build with qmake
Move the package defines for GST_PLUGIN_DEFINE from the
command line into the source file to avoid quoting issues
(-DPACKAGE_NAME="foo" means the quotes won't actually make
it to the compiler and then it no longer gets a string constant).
2017-09-07 09:39:13 +01:00
Nicolas Dufresne
6669ccdae5 Request minimum buffer even if need_pool is FALSE
When tee is used, it will not request a pool, but still it wants to
know how many buffers are required.

https://bugzilla.gnome.org/show_bug.cgi?id=730758
2017-09-06 14:19:37 -04:00
Nicolas Dufresne
346474c25d Request minimum buffer even if need_pool is FALSE
When tee is used, it will not request a pool, but still it wants to
know how many buffers are required.

https://bugzilla.gnome.org/show_bug.cgi?id=730758
2017-09-06 14:19:37 -04:00
Sebastian Dröge
aae7fcc0b5 jpegdec: Fix decoding of streams that don't signal exactly twice the height
... and also progressive streams.
2017-09-05 15:42:17 +03:00
Sebastian Dröge
09ee89f4c4 jpegdec: Handle interlaced MJPEG streams
These come with two JPEG images per buffer of half height than signalled
in the container.

Changes based on Tim-Philipp Müller's 0.10 branch:
https://cgit.freedesktop.org/~tpm/gst-plugins-good/log/?h=jpegdec-interlaced

https://bugzilla.gnome.org/show_bug.cgi?id=568555
2017-09-05 14:45:16 +03:00
Matthew Waters
38b5a9bf33 gtkglsink: expose the created display and context correctly
1. Propagate the GstGLDisplay we create
2. Add the created GstGLContext to the propagated GstGLDisplay

Otherwise with multi-branch GL pipelines involving gtkglsink, things
will fall apart and errors will be genarated somewhere.
2017-09-05 21:16:33 +10:00
Edward Hervey
115fb15a40 qt: Only include qtgui-config.h on qt >= 5.9.0
The file does not exist in previous versions
2017-09-01 15:57:25 +02:00
Matthew Waters
20d51d876f qt: the defines for QT_OPENGL_ES_2 have moved
Update the includes to account for that
2017-08-31 14:40:44 +10:00
Jochen Henneberg
0e47176b40 qt: ensure GL_DRAW_FRAMEBUFFER 2017-08-31 12:41:52 +10:00
Tim-Philipp Müller
02af0e857b twolame: hook up to build system
https://bugzilla.gnome.org/show_bug.cgi?id=774252
2017-08-26 09:43:34 +01:00
Tim-Philipp Müller
f3f9e13c12 Moving twolame mp2 encoder plugin from -ugly
https://bugzilla.gnome.org/show_bug.cgi?id=774252
2017-08-26 09:21:44 +01:00
Tim-Philipp Müller
1473b662de lame: hook up to build system
https://bugzilla.gnome.org/show_bug.cgi?id=774252
2017-08-26 09:14:55 +01:00
Tim-Philipp Müller
53ec444963 Moving lame mp3 encoder plugin from -ugly
https://bugzilla.gnome.org/show_bug.cgi?id=774252
2017-08-25 21:13:58 +01:00
Julien Isorce
96a2092b45 qt: fix broken build due to commit 2fd84a6c for gstgl
https://bugzilla.gnome.org/show_bug.cgi?id=784779
2017-08-22 13:44:20 +01:00
Julien Isorce
a4d74fda9a gl: do not include GL headers in public gstgl headers
Except for gst/gl/gstglfuncs.h

It is up to the client app to include these headers.
It is coherent with the fact that gstreamer-gl.pc does not
require any egl.pc/gles.pc. I.e. it is the responsability
of the app to search these headers within its build setup.

For example gstreamer-vaapi includes explicitly EGL/egl.h
and search for it in its configure.ac.

For example with this patch, if an app includes the headers
  gst/gl/egl/gstglcontext_egl.h
  gst/gl/egl/gstgldisplay_egl.h
  gst/gl/egl/gstglmemoryegl.h
it will *no longer* automatically include EGL/egl.h and GLES2/gl2.h.
Which is good because the app might want to use the gstgl api only
without the need to bother about gl headers.

Also added a test: cd tests/check && make libs/gstglheaders.check

https://bugzilla.gnome.org/show_bug.cgi?id=784779
2017-08-22 10:00:19 +01:00
Tim-Philipp Müller
5547901a37 mpg123: hook up to build system
https://bugzilla.gnome.org/show_bug.cgi?id=774252
2017-08-20 15:50:22 +01:00
Tim-Philipp Müller
4b1f43ebe3 Moving mpg123 plugin from -ugly 2017-08-20 13:48:48 +01:00
Carlos Rafael Giani
d9a294ac9f qmlglsink: Add itemInitialized signal to QML item
This is useful for autoplay for example. With autoplay, it is necessary to
wait until the scene graph is fully set up. This signal is emitted once the
QML item node is ready. So, inside a connected slot, the pipeline's state
can be set to PLAYING to automatically start playback as soon as the QML
script is loaded.

https://bugzilla.gnome.org/show_bug.cgi?id=786246
2017-08-14 14:51:43 +03:00
George Kiagiadakis
36fc2a747a vpxenc: discard frames that have been dropped by libvpx
This fixes a memory leak. When dropframe-threshold has been set,
libvpx may output less frames than the input ones, which causes
some GstVideoCodecFrames to queue up in GstVideoEncoder's internal
frame queue with no chance of ever being all released. And because
the frames keep references to the input buffers, the input buffer
pool keeps allocating new buffers and memory usage grows very fast.
For example the following pipeline's memory usage grows at a rate
of about 1GB per minute!

videotestsrc ! capsfilter caps=video/x-raw,width=1920,height=1080,framerate=30/1,format=I420 ! \
  vp8enc target-bitrate=1000000 end-usage=cbr dropframe-threshold=95 ! fakesink

https://bugzilla.gnome.org/show_bug.cgi?id=783086
2017-08-11 14:32:37 +03:00
Tim-Philipp Müller
bc1c321b27 taglib: use -fvisibility=hidden with this C++ plugin in meson too
Also pass args as cpp_args.
2017-08-10 14:54:51 +01:00
Nicola Murino
ab3b289bf2 jpegenc: declare quality property changeable in PLAYING state
https://bugzilla.gnome.org/show_bug.cgi?id=785012
2017-07-24 10:03:42 +01:00
Tim-Philipp Müller
e0714f67b3 mpg123audiodec: fix caps leak
The pad template takes its own ref, so we should unref the caps.

https://bugzilla.gnome.org/show_bug.cgi?id=784982
2017-07-15 14:57:49 +01:00
Sebastian Dröge
d0dfbb04c0 souphttpsrc: Post an element message with the HTTP headers on the bus too
Instead of just sending a sticky event with them downstream. This allows
getting the HTTP headers easily in the application, and especially also
on errors.
2017-07-13 14:50:44 +03:00
Jan Schmidt
ac068bd2b9 qt: Use a proxy object for access to the QML widget
QML can destroy the video widget at any time, leaving
us with a dangling pointer. Use a lock and a proxy
object to cope with that, and block in the widget
destructor if there are ongoing calls into the widget.
2017-07-12 15:51:11 +10:00
Philippe Renon
c8204780b2 shout2: use gint and guint in place of int and uint
this fixes a compilation error with gcc 7.1.0 on mys2 where uint is not defined

https://bugzilla.gnome.org/show_bug.cgi?id=784758
2017-07-11 09:26:35 +03:00
Thibault Saunier
0444342c05 caca: Do not include, unused, sys/time.h
Which moreover makes building on windows (mingw/msvc) fail:
 https://ci.appveyor.com/project/thiblahute/gst-build-ge9m5
2017-07-04 11:51:47 -04:00
Seungha Yang
b0f09d4ad0 souphttpsrc: Unset limit on the number of connection if soup session sharing is used
Soup allows only up to two connections per host in a session,
if we use default value. When session sharing is used, however,
more connections might be required in a session.
(e.g., multi-audio adaptive streaming case)

https://bugzilla.gnome.org/show_bug.cgi?id=784495
2017-07-04 09:13:12 +03:00
Nicolas Dufresne
52eb761acc souphttpsrc: Allow any type of proxy
Currently we only allowed HTTP proxy. Don't filter for the scheme, just check
if it looks like an URI. Soup will warn if the URI is invalid or if
proxy protocol is not supported. This enables using SOCKS 4/5 which is
directly implemented into GIO.

https://bugzilla.gnome.org/show_bug.cgi?id=783012
2017-06-29 15:24:30 -04:00
Tim-Philipp Müller
6a6f7fc48f meson: build raw1394 plugin
https://bugzilla.gnome.org/show_bug.cgi?id=784134
2017-06-24 00:21:00 +01:00
Tim-Philipp Müller
dd13973c6b meson: build aalib plugin
https://bugzilla.gnome.org/show_bug.cgi?id=784134
2017-06-23 23:50:00 +01:00
Tim-Philipp Müller
173d99e7e2 meson: build caca plugin
https://bugzilla.gnome.org/show_bug.cgi?id=784134
2017-06-23 23:38:27 +01:00
Jan Schmidt
c4eabb1a87 qt: Remove misleading reference to GTK in qtitem.cc 2017-06-22 01:01:40 +10:00
Thibault Saunier
5ff3106445 flactag: Fix warning with the newly added GstStateChange values
https://bugzilla.gnome.org/show_bug.cgi?id=783798
2017-06-19 15:10:31 -04:00
Edward Hervey
efebda5a34 dvdemux: Remove un-needed variable check
if pad wasn't present by now everything would have broken before

CID #1409854
2017-05-26 17:48:01 +02:00
Haihua Hu
cbcd0a12b6 glframebuffer: check frame buffer status need use specific fbo target
https://bugzilla.gnome.org/show_bug.cgi?id=783065
2017-05-25 12:34:04 +03:00
Carlos Rafael Giani
fdb2784491 qmlglsink: Add dummy texture that is shown as placeholder for NULL buffers
https://bugzilla.gnome.org/show_bug.cgi?id=782917
2017-05-21 16:52:23 +02:00
George Kiagiadakis
b26d44501c shout2send: use non-blocking I/O and a configurable network operations timeout
This allows timing out on network errors much earlier
(currently it takes ~15min to timeout) and we can still
unlock and change state in the meantime.

https://bugzilla.gnome.org/show_bug.cgi?id=571722
2017-05-21 16:30:04 +03:00
Tim-Philipp Müller
34d08a0169 meson: make C++ compiler optional
It's only needed for the taglib plugin which is optional.
2017-05-21 10:37:19 +01:00
Ravi Kiran K N
de3e54690b dvdemux: Push tag event to both pads
Tags are pushed to "videosrcpad"/"audiosrcpad" in
gst_dvdemux_add_pad() method, however they will be NULL
in this method, hence tags are not pushed.
Instead, send tag event to "pad" created gst_dvdemux_add_pad().

Signal no-more-pads when both pads are created

https://bugzilla.gnome.org/show_bug.cgi?id=743657
2017-05-20 16:01:34 +01:00
Simon Himmelbauer
b33563294f qt: Use GST_GL_HAVE_PLATFORM_CGL instead of GST_GL_HAVE_PLATFORM_COCOA
The latter is not used/available anymore since years. Also fix a typo
in the include path for the Cocoa GL display header.
2017-05-18 15:24:13 +03:00
Sebastian Dröge
1f2e48852e souphttpsrc: Make session sharing thread-safe on our side
https://bugzilla.gnome.org/show_bug.cgi?id=780140
2017-05-18 15:11:01 +03:00
Tim-Philipp Müller
6cb49cf2c3 Fix up package name and origin in some plugins 2017-05-18 10:44:07 +01:00
Sebastian Dröge
defbe06d0e 1394: Sink the clock reference in the constructor
This is now needed as GstClock does not do that internally anymore,
because that broke bindings.

https://bugzilla.gnome.org/show_bug.cgi?id=743062
2017-05-17 10:41:01 +03:00
Haihua Hu
5178fcdfda qml: Add EGL platform support for x11 backend
Add support for EGL platform when x11 is available. This can work
e.g. on imx6 platform.

https://bugzilla.gnome.org/show_bug.cgi?id=782718
2017-05-17 10:33:48 +03:00
Nicolas Dufresne
bd2ce0fb67 pulse: Accept MPEG 1 layer 3 version 2.5
https://bugzilla.gnome.org/show_bug.cgi?id=781929
2017-05-16 15:38:00 -04:00
Nicolas Dufresne
b68d936ae0 Remove plugin specific static build option
Static and dynamic plugins now have the same interface. The standard
--enable-static/--enable-shared toggle are sufficient.
2017-05-16 14:41:19 -04:00
Nicolas Dufresne
0751b10ab9 Remove plugin specific static build option
Static and dynamic plugins now have the same interface. The standard
--enable-static/--enable-shared toggle are sufficient.
2017-05-16 14:07:56 -04:00
Nicolas Dufresne
3169f86edd Remove plugin specific static build option
Static and dynamic plugins now have the same interface. The standard
--enable-static/--enable-shared toggle are sufficient.
2017-05-16 14:07:56 -04:00
Nicolas Dufresne
d68fc85d60 Remove plugin specific static build option
Static and dynamic plugins now have the same interface. The standard
--enable-static/--enable-shared toggle are sufficient.
2017-05-16 14:07:56 -04:00
Nicolas Dufresne
5c8d4271d6 Remove plugin specific static build option
Static and dynamic plugins now have the same interface. The standard
--enable-static/--enable-shared toggle are sufficient.
2017-05-16 14:05:52 -04:00
Nicolas Dufresne
e44d936487 Remove plugin specific static build option
Static and dynamic plugins now have the same interface. The standard
--enable-static/--enable-shared toggle are sufficient.
2017-05-16 14:05:52 -04:00
Nicolas Dufresne
6ebafb7daf qmlgl: Make the plugin name match the pugin file name 2017-05-09 09:47:10 -04:00
Sebastian Dröge
eee911bd1e souphttpsrc: Use a in-memory cookie jar by default in sessions we created
This ensures that cookies are stored and used as set by the server, and
shared with other souphttpsrc that use the same SoupSession.

https://bugzilla.gnome.org/show_bug.cgi?id=780140
2017-05-09 14:27:00 +02:00
Sebastian Dröge
7cb70e7aea souphttpsrc: Implement soup session sharing
souphttpsrc now shares its SoupSession with other elements in the
pipeline via GstContext if possible (session-wide settings are all the
defaults), or if the context was forced by the application.

This allows multiple souphttpsrcs to reuse connections, cookies, etc.

https://bugzilla.gnome.org/show_bug.cgi?id=780140
2017-05-09 14:27:00 +02:00
Sebastian Dröge
e4cbefcb6c vpxdec: Set fb->priv to NULL after freeing just in case
https://bugzilla.gnome.org/show_bug.cgi?id=782359
2017-05-09 11:41:25 +02:00
Tim-Philipp Müller
55c7e77d2c vpx: fix build against older libvpx versions
Such as 1.3.0 as on raspbian.
2017-05-08 16:07:32 +01:00
Edward Hervey
8586150aec souphttpsrc: Make more usage of error macro
And make sure we actually use the provided soup_msg argument in the macro
2017-04-13 08:00:30 +02:00
Thibault Saunier
1ee15d67b0 docs: Port all docstring to gtk-doc markdown 2017-04-12 12:57:57 -03:00
Nirbheek Chauhan
b7434f8d9c meson: Print message when disabling taglib on MSVC 2017-04-12 18:48:27 +05:30
Jan Schmidt
cd309f31a0 vp9dec: Add warnings for unsupported frame formats
At least output an element warning on the bus when we
encounter a frame format GStreamer doesn't currently support.
2017-04-05 16:09:53 +10:00
Tim-Philipp Müller
f26edcdf34 docs: update two references to the removed 'mad' plugin
https://bugzilla.gnome.org/show_bug.cgi?id=776140
2017-03-20 17:03:54 +00:00
Sebastian Dröge
b1ba5f10ce souphttpsrc: Include GStreamer souphttpsrc version in default User-Agent string 2017-03-16 13:53:16 +02:00
Matthew Waters
f451d9be8d gl: GL_ARRAY_BUFFER is not a part of VAO state
As a result we need to bind it on every draw in order to have the
correct state in the GL state machine.
2017-03-14 14:15:00 +11:00
Matthew Waters
f647a79aa8 gl/format: use our own GL format enum's instead of gstvideo's
They can describe in more detail (such as component sizes) the requested format.
2017-03-13 21:10:58 +11:00
Nicolas Dufresne
b7d332022c Rename plugin filesnames to match plugin names
- libgstgtksink.so -> libgstgtk.so
- libgstteletextdec.so -> libgstteletex.so
- libgstcamerabin2.so -> libgstcamerabin.so
- libgstonvif.so -> libgstrtponvif.so (meson only)
- sdp -> sdpelem (avoid clash with libgstsdp)
- gstsiren -> siren
- libgstkmssink.so -> libgstkms.so

https://bugzilla.gnome.org/show_bug.cgi?id=779344
2017-03-08 20:04:23 -05:00
Nicolas Dufresne
ca0ed8a134 Fix plugin filenames to match plugin names
- libgstpulse.so becomes libgstpulseaudio.so
- libgstsouphttpsrc.so becomes libgstsoup.so
- libgstoss4audio.so becomes libgstoss4.so

https://bugzilla.gnome.org/show_bug.cgi?id=779344
2017-03-08 20:04:20 -05:00
Sebastian Dröge
219f485c2c qml: Add support for Vivante EGL FS windowing system
https://bugzilla.gnome.org/show_bug.cgi?id=778825
2017-02-27 10:42:05 +02:00
Seungha Yang
804f238b3e souphttpsrc: Extract redirection uri on libsoup's restarted callback
Let libsoup handle redirection automatically.
And then, to figure out redirection uri, extract it on "restarted"
callback which will be fired before soup_session_send() is returned.

https://bugzilla.gnome.org/show_bug.cgi?id=778428
2017-02-22 16:15:22 +02:00
Arnaud Vrac
03db374144 souphttpsrc: retry request on early termination from the server
Fix a regression introduced by commit 183695c61a (refactor to use
Soup's sync API). The code previously attempted to reconnect when the
server closed the connection early, for example when the stream was put
in pause for some time.

Reintroduce this feature by checking if EOS is received before the
expected content size is downloaded. In this case, do the request
starting at the previous read position.

https://bugzilla.gnome.org/show_bug.cgi?id=776720
2017-01-26 15:59:46 +02:00
Sebastian Dröge
d3f6497f50 qt: The code requires at least C++11
... and clang requires this to be specified on the commandline while gcc
nowadays defaults to C++11 or even newer.
2017-01-25 19:21:03 +02:00
Arnaud Vrac
c08a0493ff souphttpsrc: report a useful error message when soup_session_send fails
This helps to understand cases where libsoup doesn't set the message
status code after running soup_session_send.

https://bugzilla.gnome.org/show_bug.cgi?id=777222
2017-01-23 12:54:17 +02:00
Arnaud Vrac
c4cf67cfe5 souphttpsrc: properly check that seek range was respected
This check must be done only when we are sure the request was
successfully sent. soup_session_send() might fail without setting the
status code. In this case status code is 0 so we would only catch the
error after the seek range check. In this case we would report an error
saying that the seek range was not respected, instead of reporting the
underlying error that triggered the soup_session_send() failure.

https://bugzilla.gnome.org/attachment.cgi?bugid=777222
2017-01-23 12:54:17 +02:00
Mark Nauwelaerts
24b2422bf3 gdkpixbufoverlay: add a positioning coefficient pair
... so as to allow one clearly defined (absolute) positioning mode
that can cater for a variety of absolute but also relative positioning
with respect to edge or center.
2017-01-22 10:18:27 +01:00
Mark Nauwelaerts
387da78da3 gdkpixbufoverlay: update composition in _before_transform
... since we need to determine passthrough mode for buffer preparation before
calling into _transform_ip.
2017-01-22 10:18:27 +01:00
Mark Nauwelaerts
2715daebf3 gdkpixbufoverlay: handle setting NULL gdkpixbuf
... which is a clearer way to clear any current overlay, other than
fiddling with alpha or positioning properties to make it virtually go away.
2017-01-22 10:18:27 +01:00
Edward Hervey
41fa3fc499 souphttpsrc: Initialize return variable
In the normal use-case we would end up with ret being unitialized
causing havoc.

https://bugzilla.gnome.org/show_bug.cgi?id=777222
2017-01-19 08:38:45 +01:00
Arnaud Vrac
02317496c6 souphttpsrc: make flow return values handling clearer
The flow return values was stored in the element before because the
result had to be set from callbacks. This is not the case anymore, we
can return the flow result directly from functions, making the code
easier to understand.

https://bugzilla.gnome.org/show_bug.cgi?id=777222
2017-01-17 22:16:15 -03:00