Commit graph

3241 commits

Author SHA1 Message Date
Dmitriy Purgin
40a82104ea gstqmlgl: Link to opengl32.lib on MinGW 2020-03-20 06:25:28 +00:00
Matthew Waters
7a25fb5b08 qt: add a qml overlay filter element [part 2]
It takes a qml scene description and renders it using a possible input
stream.

Currently supported on GLX and WGL.

Follow up to (as that MR had an old version of the commit):
- https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/475
- 4778d7166a: qt: add a qml overlay filter element
2020-03-19 17:26:54 +11:00
Matthew Waters
4778d7166a qt: add a qml overlay filter element
It takes a qml scene description and renders it using a possible input
stream.

Currently supported on GLX and WGL.
2020-03-18 11:22:39 +00:00
Matthew Waters
21acf312f0 qt: don't always activate/deactivate our GstGLContext
Techincally it is enough to activate at the beginning and then forget.
2020-03-18 11:22:39 +00:00
Matthew Waters
a1f53b4f46 qmlglsink: propagate the context up the the application
Allows the application to be notified of the OpenGL context creation.
2020-03-18 11:22:39 +00:00
Matthew Waters
5e9f80c79a qtitem: fix leak of caps 2020-03-18 11:22:39 +00:00
Niels De Graef
4f4997a935 wavpack: Use G_DECLARE_FINAL_TYPE 2020-03-16 12:35:42 +01:00
Niels De Graef
34a934d8d4 vpx: Use G_DECLARE_FINAL_TYPE 2020-03-16 12:35:42 +01:00
Niels De Graef
5406208f0d twolame: Use G_DECLARE_FINAL_TYPE 2020-03-16 12:35:42 +01:00
Niels De Graef
58d74f0ec5 taglib: Use G_DECLARE_FINAL_TYPE 2020-03-16 12:35:42 +01:00
Niels De Graef
e5c9538d2a speex: Use G_DECLARE_FINAL_TYPE 2020-03-16 12:35:42 +01:00
Niels De Graef
e6c3a524ce soup: Use G_DECLARE_FINAL_TYPE 2020-03-16 12:35:42 +01:00
Niels De Graef
5ccd5659c4 shout2: Use G_DECLARE_FINAL_TYPE 2020-03-16 12:35:42 +01:00
Niels De Graef
59ac993a91 raw1394: Use G_DECLARE_FINAL_TYPE 2020-03-16 09:20:07 +01:00
Niels De Graef
91c55bd920 qt: Use G_DECLARE_FINAL_TYPE 2020-03-16 09:20:07 +01:00
Niels De Graef
a9ff9fe94e pulse: Use G_DECLARE_FINAL_TYPE 2020-03-16 09:20:07 +01:00
Niels De Graef
0da5b42bcc mpg123: Use G_DECLARE_FINAL_TYPE 2020-03-16 09:20:07 +01:00
Niels De Graef
45d7dfedb8 libpng: Use G_DECLARE_FINAL_TYPE 2020-03-16 09:20:07 +01:00
Niels De Graef
2cf28f3021 libcaca: Use G_DECLARE_FINAL_TYPE 2020-03-16 09:20:07 +01:00
Niels De Graef
0811b8d719 lame: Use G_DECLARE_FINAL_TYPE 2020-03-16 09:20:07 +01:00
Niels De Graef
f4841754ec jack: Use G_DECLARE_FINAL_TYPE 2020-03-16 09:20:07 +01:00
Niels De Graef
9f494290d5 gtk: Use G_DECLARE_FINAL_TYPE 2020-03-16 09:20:07 +01:00
Niels De Graef
e45a13ca2b gdk_pixbuf: Use G_DECLARE_FINAL_TYPE 2020-03-16 09:20:07 +01:00
Niels De Graef
9fa9ea2162 flax: Use G_DECLARE_FINAL_TYPE 2020-03-16 09:20:07 +01:00
Niels De Graef
51448ea5f1 dv: Use G_DECLARE_FINAL_TYPE 2020-03-16 09:20:07 +01:00
Niels De Graef
5bd3fcf726 cairo: Use G_DECLARE_FINAL_TYPE 2020-03-12 19:24:57 +01:00
Niels De Graef
9ad65fa60b aalib: Use G_DECLARE_FINAL_TYPE 2020-03-12 19:22:21 +01:00
Sebastian Dröge
fc3bb4c549 jpegdec: Configure JPEG chroma-siting for YUV formats 2020-03-09 21:34:08 +02:00
Milian Wolff
3e0d557744 qmlgl: ensure Qt defines GLsync to fix compile on some platforms
By explictly including QtGui/qopengl.h we force the code path that
defines GLsync in the Qt-specific way. Without that, some platforms
failed to compile the qmlgl plugin, since neither Qt nor gstreamer
defined GLsync then, leading to e.g.:

```
make[4]: Entering directory '/.../gst-plugins-good-1.16.1/ext/qt'
  CXX      libgstqmlgl_la-qtitem.lo
In file included from gstqtgl.h:32,
                 from qtitem.h:27,
                 from qtitem.cc:28:
/.../usr/include/gstreamer-1.0/
gst/gl/gstglfuncs.h:93:17: error: expected identifier before ‘*’ token
   ret (GSTGLAPI *name) args;
                 ^
/.../usr/include/gstreamer-1.0/
gst/gl/glprototypes/sync.h:27:1: note: in expansion of macro
‘GST_GL_EXT_FUNCTION’
 GST_GL_EXT_FUNCTION (GLsync, FenceSync,
 ^~~~~~~~~~~~~~~~~~~
```
2020-03-05 03:21:48 +00:00
Jake Barnes
2ffb52499f souphttpsrc: Fix cookies property
Disable session sharing and cookie jar when cookies property is set.

The cookie jar actually replaces or removes any existing Cookie header
set on the message, so the cookies property was effectively being
ignored. There doesn't appear to be a way to inject the cookies into the
jar without having to specify matching domains etc., so it's not
possible to simulate the old behaviour of unconditionally sending the
cookies with all messages, besides simply disabling the cookie jar.
2020-02-21 08:56:10 +00:00
Julien Isorce
88ce7397fc vp8enc/vp8enc: set 1 for the default value of VP8E_SET_STATIC_THRESHOLD
In Google webrtc, the setting VP8E_SET_STATIC_THRESHOLD is set to 1
(except when the content is known to be static very often in which
case it is set to 100, i.e. when sharing screen with Google Hangouts).

The cpu usage drops a lot when using 1 for above setting because it
allows the encoder to skip static/low content blocks. The current
0 default value uses too much cpu and confuses the user regarding
the cpu usage expectations. User expects vp8enc to use low cpu by
default.

Documentation of VP8E_SET_STATIC_THRESHOLD:
  https://github.com/webmproject/libvpx/blob/master/vpx/vp8cx.h#L188

chromium/webrtc:
  b484ec0082/modules/video_coding/codecs/vp8/libvpx_vp8_encoder.cc (822)

Closes #58
2020-01-28 02:41:50 +00:00
Nicolas Dufresne
83e9d4f70d jpegdec: Check return value of gst_buffer_map()
Without this check, the element will crash instead of returning an
error.
2020-01-27 22:59:34 +00:00
Eric Marks
d6961235e8 aasink & cacasink: add filter aatv & cacatv
Add transform filter capabilities to aasink and cacasink in the form of new elements aatv and cacatv.
2019-12-28 23:01:19 +00:00
Stéphane Cerveau
b928517f1e good: use of g_value_dup_string
Use helper method to get string from GValue.
2019-12-20 09:30:26 +00:00
Philipp Zabel
c47a585052 qmlglsink: fix build on EGL platform without X11 headers
If Mesa is built without X11 headers, building against Mesa EGL headers
requires a dependency on egl.pc, to define MESA_EGL_NO_X11_HEADERS.
This fixes a build error when compiling ext/qt/gstqtglutility.cc:

  In file included from /usr/include/EGL/egl.h:39,
                   from /usr/include/gstreamer-1.0/gst/gl/egl/gstegl.h:44,
                   from ../gst-plugins-good-1.16.1/ext/qt/gstqtglutility.cc:43:
  /usr/include/EGL/eglplatform.h:124:10: fatal error: X11/Xlib.h: No such file or directory
2019-12-04 22:38:49 +00:00
Seungha Yang
4333774c2c vp9dec: Fix broken 4:4:4 8bits decoding
VPX_IMG_FMT_I444 pixel format with sRGB colorspace means
GBR data.

Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/651
2019-11-29 21:42:47 +00:00
Scott Kanowitz
7606c0eb7c jpegdec: Fix incorrect logic in EOI tag detection
This change fixes the reversed logic in the EOI tag detection
code.
2019-11-17 18:22:25 +00:00
Niels De Graef
7cf4ab6229 Don't pass default GLib marshallers for signals
By passing `NULL` to `g_signal_new` instead of a marshaller, GLib will
actually internally optimize the signal (if the marshaller is available
in GLib itself) by also setting the valist marshaller. This makes the
signal emission a bit more performant than the regular marshalling,
which still needs to box into `GValue` and call libffi in case of a
generic marshaller.

Note that for custom marshallers, one would use
`g_signal_set_va_marshaller()` with the valist marshaller instead.
2019-11-17 15:32:30 +00:00
Michael Olbrich
0b25487cd1 jpegdec: don't overwrite the last valid line
If the the height is not a multiple of the macro block size then the memory
of the last line is reused for all extra lines. This is no problem if the
last line is duplicated properly. However, if the extra lines are not
initialized properly during encoding, then the last visible line is
overwritten with undefined data.
Use a extra buffer to avoid this problem.
2019-11-10 11:24:40 +01:00
Nirbheek Chauhan
212d0ca3cb vpx: Error out if enabled and no features found
Seee: https://gitlab.freedesktop.org/gstreamer/cerbero/issues/200
2019-11-05 21:42:12 +05:30
Matthew Waters
ae80fa4731 qmlglsrc: read from the back buffer when use-default-fbo = TRUE
glReadBuffer(GL_COLOR_ATTACHMENT0) on the default framebuffer (0) is
invalid GL API usage and would result in a GL error being thrown.
2019-10-25 22:09:20 +11:00
Matthew Waters
7f1e1d0d9d qmlglsrc: fix vertical flip matrix
Some time ago libgstgl defined the majorness of matrices it uses.
The majorness used by qmlglsrc was incompatible with the libgstgl.
2019-10-25 22:09:20 +11:00
Tim-Philipp Müller
c9a47c0c8d Remove autotools build system 2019-10-14 11:04:18 +01:00
Aaron Boxer
46989dca96 documentation: fix a number of typos 2019-10-05 22:38:11 +00:00
Matthew Waters
0017115494 vpx: fix macos werror build
../ext/vpx/gstvpxenc.c:1723:49: error: format specifies type 'long' but the argument has type 'vpx_codec_pts_t' (aka 'long long') [-Werror,-Wformat]
          ", gst frame pts: %" G_GINT64_FORMAT, pkt->data.frame.pts, pts);
          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/Library/Frameworks/GStreamer.framework/Versions/1.0/include/gstreamer-1.0/gst/gstinfo.h:1065:96: note: expanded from macro 'GST_TRACE_OBJECT'
#define GST_TRACE_OBJECT(obj,...)       GST_CAT_LEVEL_LOG (GST_CAT_DEFAULT, GST_LEVEL_TRACE,   obj,  __VA_ARGS__)
                                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
/Library/Frameworks/GStreamer.framework/Versions/1.0/include/gstreamer-1.0/gst/gstinfo.h:646:31: note: expanded from macro 'GST_CAT_LEVEL_LOG'
        (GObject *) (object), __VA_ARGS__);                             \
                              ^~~~~~~~~~~
../ext/vpx/gstvpxenc.c:1723:70: error: format specifies type 'long' but the argument has type 'vpx_codec_pts_t' (aka 'long long') [-Werror,-Wformat]
          ", gst frame pts: %" G_GINT64_FORMAT, pkt->data.frame.pts, pts);
          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
/Library/Frameworks/GStreamer.framework/Versions/1.0/include/gstreamer-1.0/gst/gstinfo.h:1065:96: note: expanded from macro 'GST_TRACE_OBJECT'
#define GST_TRACE_OBJECT(obj,...)       GST_CAT_LEVEL_LOG (GST_CAT_DEFAULT, GST_LEVEL_TRACE,   obj,  __VA_ARGS__)
                                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
/Library/Frameworks/GStreamer.framework/Versions/1.0/include/gstreamer-1.0/gst/gstinfo.h:646:31: note: expanded from macro 'GST_CAT_LEVEL_LOG'
        (GObject *) (object), __VA_ARGS__);                             \
                              ^~~~~~~~~~~
2019-08-30 14:12:29 +10:00
Mathieu Duponchelle
3429ddde38 docstrings: port ulinks to markdown links 2019-08-23 18:56:01 +02:00
Seungha Yang
53dc1da870 souphttpsrc: Fix incompatible type build warning
gstsouphttpsrc.c(2191): warning C4133:
  '=': incompatible types - from 'guint (__cdecl *)(GType)' to 'GstURIType (__cdecl *)(GType)'
2019-08-21 15:20:56 +00:00
Tim-Philipp Müller
61bd613de3 vpx: bump libvpx requirement to 1.5.0
Was released in Nov 2015.
2019-08-19 11:09:47 +01:00
Tim-Philipp Müller
e40ba71824 vpx: avoid confusing meson configure output when checking for vpx versions
Used to print:
|Run-time dependency vpx found: YES 1.7.0
|Message: libvpx provides VP8 encoder interface (vpx_codec_vp8_cx_algo)
|Message: libvpx provides VP8 decoder interface (vpx_codec_vp8_dx_algo)
|Message: libvpx provides VP9 encoder interface (vpx_codec_vp9_cx_algo)
|Message: libvpx provides VP9 decoder interface (vpx_codec_vp9_dx_algo)
|Dependency vpx found: YES (cached)
|Dependency vpx found: NO found '1.7.0' but need: '>=1.8.0'
|Run-time dependency vpx found: NO (tried pkgconfig and cmake)

We can check the version of the found dep in a way that
doesn't produce this confusing output.
2019-08-19 11:09:19 +01:00
Robert Tiemann
3c4add469e souphttpsrc: Log any error returned by soup_session_send() 2019-08-07 07:32:09 +00:00