Commit graph

3144 commits

Author SHA1 Message Date
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