summaryrefslogtreecommitdiff
path: root/ext
Commit message (Collapse)AuthorAgeFilesLines
* gst: don't use volatile to mean atomicMatthew Waters2021-04-1311-22/+22
| | | | | | | | | | | | volatile is not sufficient to provide atomic guarantees and real atomics should be used instead. GCC 11 has started warning about using volatile with atomic operations. https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719 Discovered in https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/868 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/941>
* wavpackdec: Add floating point format supportVladimir Menshakov2021-03-092-2/+16
| | | | | | | | | | This commit negotiate F32 audio format if MODE_FLOAT used in wavpack file. Wavpack float mode is always in 32-bit IEEE format. The following pipeline plays distorted audio if source file is encoded in float mode: gst-launch-1.0 filesrc ... ! wavpackparse ! wavpackdec ! pulsesink Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/896>
* vpx: Fix the check to unfixed/unknown framerate to set bitrateThibault Saunier2020-10-221-1/+1
| | | | | | 0/1 means unknown framerate not X/0 (which is illegal). Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/783>
* qmlglsink: fix crash when created/destroyed in quick successionBastien Reboulet2020-10-221-2/+7
| | | | | | | | | | | | The crash is caused by a race condition where the render thread calls a method on the QtGLVideoItem instance that was previously destroyed by the main thread. Also, less frequently, QtGLVideoItem::onSceneGraphInitialized is called when QQuickItem::window is null, also causing a crash. Fixes #798 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/781>
* jpegdec: check buffer size before dereferencing. Fixes #541Jérôme Laheurte2020-10-021-0/+2
| | | | | | | | Some cameras (Panacast) have buggy drivers/firmware which send invalid JPEG frames, containing no data, which makes jpegdec crash because it assumes the frame is at least 2 bytes long. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/760>
* gstqmlgl: build on Windows with qmake without pkgconfig; update instructions ↵Dmitriy Purgin2020-08-242-6/+110
| | | | | | on building for Windows Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/591>
* qmlgloverlay: fix multiple elements with Qt 5.15Matthew Waters2020-08-101-0/+12
| | | | | | | | | | | With Qt 5.15 multiple qmlgloverlay elements would produce: ASSERT: "!m_gl->property(QSG_RENDERCONTEXT_PROPERTY).isValid()" in file /path/to/qt5/qtdeclarative/src/quick/scenegraph/qsgdefaultrendercontext.cpp, line 121 Workaround by setting the (seeminigly unused) property before initialization. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/695>
* build: update for gl pkg-config file splitMatthew Waters2020-08-072-8/+7
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/680>
* QtGLVideoItem: Use QSharedPointer::data() for better compatibilityRaul Tambre2020-07-151-2/+2
| | | | | | | | | | | | | | | | | | | | | | Older Qt versions didn't have QSharedPointer::get(), which is just a modern alias for QSharedPointer::data(). FAILED: ext/qt/libgstqmlgl.so.p/qtitem.cc.o c++ -Iext/qt/libgstqmlgl.so.p -Iext/qt -I../ext/qt -I. -I.. -I../gst-libs -I/usr/include/glib-2.0 -I/usr/lib/aarch64-linux-gnu/glib-2.0/include -I/usr/include/gstreamer-1.0 -I/usr/include/orc-0.4 -I/usr/lib/aarch64-linux-gnu/gstreamer-1.0/include -I/usr/include/aarch64-linux-gnu/qt5/QtCore -I/usr/include/aarch64-linux-gnu/qt5 -I/usr/include/aarch64-linux-gnu/qt5/QtGui -I/usr/include/aarch64-linux-gnu/qt5/QtQml -I/usr/include/aarch64-linux-gnu/qt5/QtNetwork -I/usr/include/aarch64-linux-gnu/qt5/QtQuick -I/usr/include/aarch64-linux-gnu/qt5/QtX11Extras -I/usr/include/libdrm -flto -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=c++11 -Wmissing-declarations -Wredundant-decls -Wwrite-strings -Winit-self -Wmissing-include-dirs -Wno-multichar -Wvla -Wpointer-arith -g -fdebug-prefix-map=/opt/good/src=. -Wformat -Werror=format-security -O3 -march=native -Wno-error -Wdate-time -fPIC -pthread -DHAVE_CONFIG_H -DHAVE_QT_X11 -DHAVE_QT_EGLFS -MD -MQ ext/qt/libgstqmlgl.so.p/qtitem.cc.o -MF ext/qt/libgstqmlgl.so.p/qtitem.cc.o.d -o ext/qt/libgstqmlgl.so.p/qtitem.cc.o -c ../ext/qt/qtitem.cc In file included from /usr/include/gstreamer-1.0/gst/gst.h:55:0, from /usr/include/gstreamer-1.0/gst/video/video.h:23, from ../ext/qt/qtitem.cc:27: ../ext/qt/qtitem.cc: In destructor ‘virtual QtGLVideoItem::~QtGLVideoItem()’: ../ext/qt/qtitem.cc:138:86: error: ‘class QSharedPointer<QtGLVideoItemInterface>’ has no member named ‘get’ GST_INFO ("%p Destroying QtGLVideoItem and invalidating the proxy %p", this, proxy.get()); ^ /usr/include/gstreamer-1.0/gst/gstinfo.h:682:31: note: in definition of macro ‘GST_CAT_LEVEL_LOG’ (GObject *) (object), __VA_ARGS__); \ ^~~~~~~~~~~ ../ext/qt/qtitem.cc:138:3: note: in expansion of macro ‘GST_INFO’ GST_INFO ("%p Destroying QtGLVideoItem and invalidating the proxy %p", this, proxy.get()); ^ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/673>
* souphttpsrc: don't fail when seeking past the end of the contentMichael Olbrich2020-07-101-1/+2
| | | | | | | | | | | | | | | Range errors are already turned into EOS when the size is not known. Do the same thing if the request as outside the known content size. This can be triggered by seeking in a queue2: - Ensure that the range containing the end of the file is available. - Seek into this range from a different range. - queue2 creates a seek event with start=<file-size> - this results in a "Requested Range Not Satisfiable" error Fixes #452 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/385>
* souphttpsrc: don't update the size on errorMichael Olbrich2020-07-101-2/+3
| | | | | | | Any data corresponding length in the message is not part of the requested file. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/385>
* qt/gloverlay: fix using OpenGL after destroying QmlMatthew Waters2020-07-101-0/+5
| | | | | | | Qml somewhat unhelpfully seems to uncurrent our OpenGL context on its destruction. Work around that by uncurrenting and recurrenting again. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/632>
* flacenc: Pass audio info from set_format() to query_total_samples() explicitlySebastian Dröge2020-07-031-4/+3
| | | | | | | | | | | | | | This fixes writing of the seek table header. gst_audio_encoder_get_audio_info() will still return old/unset audio info until set_format() has actually returned, which then results in query_total_samples() to always return 0. Thanks to Jacob Kauffmann for debugging this and finding the main cause. Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/756 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/661>
* qt: Rework how we find the Qt QPA headerNirbheek Chauhan2020-06-282-35/+9
| | | | | | | | | | | | Instead of querying the Qt include path from the dependency or from qmake, rely on the qt5qml_dep to set the include path to QtGui correctly, and look for the header inside the private includedir. Then we can use that path to include the header directly. Reported in https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/780#note_548092 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/640>
* qt: Only check for moc-qt5/moc in PATH if not cross-compilingNirbheek Chauhan2020-06-281-1/+1
| | | | | | | This is an extra check that's only needed for working around Linux distribution packaging. `moc` is not required in the cross file. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/640>
* vpxenc: mark all properties as GST_DOC_SHOW_DEFAULTMathieu Duponchelle2020-06-241-48/+95
| | | | | | | | | When generating the cache we inspect the base class through an instance of one of its subclasses. We don't want potential assignments in subclasses initialization to leak into the base class documentation Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/641>
* vpx: Fix links to baseclass propertiesThibault Saunier2020-06-232-6/+6
|
* docs: mark more types as plugin APIMathieu Duponchelle2020-06-233-0/+4
|
* shout2: advertise documentation caps properlyTim-Philipp Müller2020-06-191-3/+18
| | | | | | | | shout2send caps depend on what the libshout2 version in question supports, but the documentation caps should always be the same. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/635>
* pulse: fix discovery of newly added devicesGuillaume Desmottes2020-06-181-2/+0
| | | | | | | | | | | Fix regression introduced in 7bc5e28d85992b03e5852879b8d4d96043496caf preventing the device provider to send the device-added message for new devices. By early returning the patch was discarding add/remove events. Fix #735 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/626>
* qt/gloverlay: reset OpenGL state after Qt drawingMatthew Waters2020-06-121-0/+7
| | | | | | | Reset to the original OpenGL state as required by the GStreamer OpenGL API contract. Fixes output with a glimagesink element downstream. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/623>
* qt/gloverlay: reset current OpenGL context after QtMatthew Waters2020-06-121-0/+6
| | | | | | | Qt may replace the drawable with its own which breaks output if Qt is not displaying the resulting video as used with e.g. glimagesink. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/623>
* plugins: uddate gst_type_mark_as_plugin_api() callsMathieu Duponchelle2020-06-0616-31/+31
|
* vpxenc: Add new bit-per-pixel property to select a better "default" bitrateMikhail Fludkov2020-06-043-15/+80
| | | | | | | | | | | | | | | | | | | | | | | | | | As part of this also change the default bitrate value to 0. The default value was 256000 previously. In reality, if the property was not set the bitrate value would be scaled according to the resolution which is not very intuitive behavior. It is better to use 0 for this purpose. Now together with newly introduced property "bits-per-pixel" 0 means to assign the bitrate according to resolution/framerate. The default bitrates are now - 1.2Mbps for VP8 720p@30fps - 0.8Mbps for VP9 720p@30fps and scaled accordingly for different resolutions/framerates. Previously the default bitrate was also not scaled according to the framerate but only took the resolution into account. This also fixes the side effect of setting bitrate to 0. Previously encoder would not produce any data at all. Addition from Sebastian Dröge <sebastian@centricular.com> to assume 30fps if no framerate is given in the caps instead of not calculating any bitrate at all. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/611>
* plugins: Use gst_type_mark_as_plugin_api() for all non-element plugin typesMathieu Duponchelle2020-06-0316-0/+47
|
* vpxdec: Check that output width and height != 0Stian Selnes2020-06-021-0/+8
| | | | | | | | | | | For VP8 it's possible to signal width or height to be 0, but it does not make sense to do so. For VP9 it's impossible. Hence, we most likely have a corrupt stream. Trying to negotiate caps downstream with either width or height as 0 will fail with something like gst_video_decoder_negotiate_default: assertion 'GST_VIDEO_INFO_WIDTH (&state->info) != 0' failed Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/610>
* speex: Fix crash on Windows caused by cross-CRT issueSeungha Yang2020-05-292-2/+3
| | | | | | | | Use speex_header_free() to free memory which was allocated by library. Cross-CRT issue should not happen on 1.17 Cerbero build but might happen custom build or so. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/606>
* qtoverlay: add the root item as a propertyMatthew Waters2020-05-202-9/+65
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/595>
* qtglrenderer.cc: Fix compilingRaul Tambre2020-05-151-2/+3
| | | | | | | 46bfb7d247aef880c15300dad63eb2bbf6dc4928 fixed a format warning without checking if it actually compiled. toUtf8() returns QByteArray so we need to assign it to a temporary variable to be able to get the raw string data from it. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/593>
* qtglrenderer.cc: Fix -Wformat-security warningRaul Tambre2020-05-151-1/+1
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/592>
* meson: Pass native: false to add_languages()Nirbheek Chauhan2020-05-132-2/+2
| | | | | | | | This is needed for cross-compiling without a build machine compiler available. The option was added in 0.54, but we only need this in Cerbero and it doesn't break older versions so it should be ok. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/589>
* meson: Make C++ compiler detection not be automagicNirbheek Chauhan2020-05-122-5/+2
| | | | | | | It is now controlled by the qt5 and/or taglib options. We won't silently fail to build taglib now. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/587>
* meson: Fix gstgl checks for qt and gtkNirbheek Chauhan2020-05-122-2/+3
| | | | | | Also rename from build_ to have_, which is more accurate. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/587>
* meson: Revamp qt5qml plugin and example build codeNirbheek Chauhan2020-05-121-134/+157
| | | | | | | | Stricter and simpler. For example, now we properly error out when gstreamer-gl-1.0 was not found when the qt5 plugin is enabled or when a C++ compiler is not enabled. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/587>
* jpegenc: remove meta copy in jpegencnian.yan2020-05-061-2/+0
| | | | | | | | | GstVideoEncoder takes care of the Meta copy, so there is no need in jpegenc Fixes http://gstreamer-devel.966125.n4.nabble.com/jpegenc-copy-GstMeta-twice-tt4693981.html Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/576>
* qt/x11: also pass the window for gstgl -> qt contextMatthew Waters2020-04-271-1/+4
| | | | | | | | | Removes this warning from Qt: QGLXContext: Multiple configs for FBConfig ID -1 QSGContext::initialize: depth buffer support missing, expect rendering errors Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/575>
* qt: perform surface creation in the main threadMatthew Waters2020-04-272-40/+181
| | | | | | | As is required when creating a QWindow instance set out in the Qt documentation. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/575>
* gdkpixbufoverlay: Use GST_VIDEO_OVERLAY_COMPOSITION_BLEND_FORMATS for the ↵Sebastian Dröge2020-03-271-9/+4
| | | | | | | | | | supported formats We don't do any blending by ourselves since a while now. Note that this is a regression in "supported" formats: previously ARGB64 was supported, for example, but in practice it caused blending to not take place at all.
* qmlgloverlay: fix usage without an qmlglsink in the pipelineMatthew Waters2020-03-241-0/+61
| | | | | | Without a qmlglsink, we need to retrieve the window system display ourselves rather than relying solely on qmlglsink to have priority on the choice of display.
* qmlgloverlay: don't leak resources freed on a different GL threadMatthew Waters2020-03-231-5/+23
| | | | | | | deleting a QOpenGLFrameBufferObject needs to occur on the same thread it was created on in order to actually free the relevant resources immediately. Otherwise, they will be queued for deletion and not freed until the associated QOpenGLContext is destroyed.
* qt: reorganize include definesMatthew Waters2020-03-201-11/+8
|
* gstqmlgl: Link to opengl32.lib on MinGWDmitriy Purgin2020-03-201-1/+4
|
* qt: add a qml overlay filter element [part 2]Matthew Waters2020-03-195-97/+261
| | | | | | | | | | | 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 - 4778d7166a02caf793df4f845dc35b6933d87c81: qt: add a qml overlay filter element
* qt: add a qml overlay filter elementMatthew Waters2020-03-188-1/+1041
| | | | | | | It takes a qml scene description and renders it using a possible input stream. Currently supported on GLX and WGL.
* qt: don't always activate/deactivate our GstGLContextMatthew Waters2020-03-182-6/+3
| | | | Techincally it is enough to activate at the beginning and then forget.
* qmlglsink: propagate the context up the the applicationMatthew Waters2020-03-181-0/+7
| | | | Allows the application to be notified of the OpenGL context creation.
* qtitem: fix leak of capsMatthew Waters2020-03-181-0/+2
|
* wavpack: Use G_DECLARE_FINAL_TYPENiels De Graef2020-03-162-39/+8
|
* vpx: Use G_DECLARE_FINAL_TYPENiels De Graef2020-03-166-80/+12
|
* twolame: Use G_DECLARE_FINAL_TYPENiels De Graef2020-03-161-19/+2
|