=== release 1.17.90 === 2020-08-20 16:10:18 +0100 Tim-Philipp Müller * ChangeLog: * NEWS: * RELEASE: * gst-plugins-base.doap: * meson.build: Release 1.17.90 2020-08-18 10:26:48 +0300 Sebastian Dröge * gst/videoscale/gstvideoscale.c: videoscale: Don't call NULL GstMeta transform function It's optional and if it does not exist then no transformation is possible. Part-of: 2020-08-11 22:54:50 +0200 Mathieu Duponchelle * gst-libs/gst/tag/lang-tables.dat: * gst-libs/gst/tag/lang.c: * gst-libs/gst/tag/mklangtables.c: tags: update to latest iso-code and support more languages Some languages have an ISO 639-2 representation but no 639-1 representation, for example where "eng" has a two-letter equivalent in "en", "enm" doesn't have one. Discarding those languages from our static table caused functions such as gst_tag_get_language_code_iso_639_2T() or gst_tag_get_language_code_iso_639_2B() to return NULL for valid language codes such as "enm", potentially causing users of these API such as mpegtsmux to discard language code tags as invalid. Part-of: 2020-08-11 17:15:50 -0400 Nicolas Dufresne * gst-libs/gst/pbutils/codec-utils.c: pbutils: Add latest H.264 level values The spec now list 6, 6.1 and 6.2. Part-of: 2020-08-11 03:45:32 +1000 Jan Schmidt * gst-libs/gst/app/gstappsrc.c: appsrc: Post a bus error if a segment can't be applied When applying segments from the input samples, post a bus error and fail loudly if the segment fails to configure, instead of just posting debug output. Part-of: 2020-08-11 16:53:51 +1000 Matthew Waters * gst-libs/gst/gl/egl/egl.h: * gst-libs/gst/gl/meson.build: * gst-libs/gst/gl/wayland/wayland.h: * gst-libs/gst/gl/x11/x11.h: build/gl: add top-level include files for sub-libraries Makes gir happy Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/809 Part-of: 2020-08-10 16:18:31 +0000 Josh Matthews * tests/examples/gl/cocoa/meson.build: Add required dependencies of cocoa GL example for linking. Part-of: 2020-08-10 09:59:09 +0300 Sebastian Dröge * pkgconfig/gstreamer-gl-egl-uninstalled.pc.in: * pkgconfig/gstreamer-gl-wayland-uninstalled.pc.in: * pkgconfig/gstreamer-gl-x11-uninstalled.pc.in: pkg-config: Fix dependency typo in uninstalled gstreamer-gl-* pc files Part-of: 2020-08-07 10:18:34 +0300 Sebastian Dröge * gst-libs/gst/audio/gstaudioaggregator.c: audioaggregator: Add support for new sample selection API Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/805 Part-of: 2020-08-07 09:34:37 +0300 Sebastian Dröge * gst-libs/gst/video/gstvideoaggregator.c: * tests/check/elements/compositor.c: * tests/examples/compositor/signals.c: videoaggregator: Update for additional info parameter to the "samples-selected" signal See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/590 Part-of: 2020-08-06 14:22:27 +0000 Josh Matthews * pkgconfig/gstreamer-gl-egl.pc.in: Fix incorrect pkgconfig description. Part-of: 2020-07-23 19:48:55 +1000 Guillaume Desmottes * docs/libs/gl-egl/index.md: * docs/libs/gl-egl/sitemap.txt: * docs/libs/gl-wayland/index.md: * docs/libs/gl-wayland/sitemap.txt: * docs/libs/gl-x11/index.md: * docs/libs/gl-x11/sitemap.txt: * docs/meson.build: * ext/gl/meson.build: * gst-libs/gst/gl/egl/gstglmemoryegl.h: * gst-libs/gst/gl/gstgl_fwd.h: * gst-libs/gst/gl/meson.build: * pkgconfig/gstreamer-gl-egl-uninstalled.pc.in: * pkgconfig/gstreamer-gl-egl.pc.in: * pkgconfig/gstreamer-gl-prototypes-uninstalled.pc.in: * pkgconfig/gstreamer-gl-prototypes.pc.in: * pkgconfig/gstreamer-gl-uninstalled.pc.in: * pkgconfig/gstreamer-gl-wayland-uninstalled.pc.in: * pkgconfig/gstreamer-gl-wayland.pc.in: * pkgconfig/gstreamer-gl-x11-uninstalled.pc.in: * pkgconfig/gstreamer-gl-x11.pc.in: * pkgconfig/gstreamer-gl.pc.in: * pkgconfig/meson.build: * tests/check/meson.build: * tests/examples/gl/generic/cube/meson.build: * tests/examples/gl/generic/cubeyuv/meson.build: * tests/examples/gl/generic/doublecube/meson.build: * tests/examples/gl/generic/recordgraphic/meson.build: * tests/examples/gl/qt/meson.build: * tests/examples/gl/qt/mousevideooverlay/meson.build: * tests/examples/gl/qt/qglwidgetvideooverlay/meson.build: * tests/examples/gl/qt/qglwtextureshare/meson.build: gl: move each gl platform specific API to its own gir With contributions from: Thibault Saunier Matthew Waters Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/651 Part-of: 2020-05-13 10:08:25 +0200 Guillaume Desmottes * gst-libs/gst/gl/egl/gsteglimage.c: gl: egl: add missing gir annotations Part-of: 2020-08-05 16:54:19 +0200 Mathieu Duponchelle * gst-libs/gst/video/gstvideoaggregator.c: * tests/check/elements/compositor.c: * tests/examples/compositor/signals.c: videoaggregator: update to new samples selection API Part-of: 2020-08-03 19:53:58 +0300 Jordan Petridis * tests/check/elements/audioresample.c: tests/check/elements/audioresample.c: avoid implict int ot float conversion Also use doubles instead so the calculation won't overflow Part-of: 2020-08-04 15:17:35 +0300 Jordan Petridis * ext/alsa/gstalsamidisrc.c: alsamidisrc: fix compiler warning with clang 10 ``` ../subprojects/gst-plugins-base/ext/alsa/gstalsamidisrc.c:201:54: error: converting the result of '<<' to a boolean always evaluates to false [-Werror,-Wtautological-constant-compare] snd_seq_ev_schedule_real (&ev, alsamidisrc->queue, SND_SEQ_TIME_MODE_ABS, ^ /usr/include/alsa/seq_event.h:215:34: note: expanded from macro 'SND_SEQ_TIME_MODE_ABS' ``` The ALSA API expects 0 or 1 here and will then add the flags accordingly, and that's also what other code using this API does. Part-of: 2020-08-04 07:11:54 -0400 Xavier Claessens * tests/validate/meson.build: Meson: find_program() will return gst-tester from subproject gstreamer now use override_find_program() so it won't return the system version. Part-of: 2020-08-04 05:32:08 +0530 Nirbheek Chauhan * meson.build: meson: Only look for Objective-C compiler on macOS/iOS On Windows, MinGW-GCC Objective-C compilers can be in PATH and mess up the build since they may not match the CPU family of the C/C++ compilers we are using. Also require them on macOS/iOS, because they should always be present. Fixes https://gitlab.freedesktop.org/gstreamer/gst-build/-/issues/88 Part-of: 2020-08-01 00:22:28 +0100 Tim-Philipp Müller * tests/examples/compositor/signals.c: examples: compositor: fix build with older GLib versions Don't use g_hash_table_steal_extended() which was only added in 2.58. Fixes #801 Part-of: 2020-07-16 21:56:47 -0400 Thibault Saunier * gst/compositor/compositor.c: compositor: Frames where we introduce alpha can't obscure anything When a pad has alpha != 1.0 it means that the resulting frames will contain alpha and thus can't fully obscure with a lower zorder. Also simplifies the other checks as blending with an OVER or on a transparent is not a no-op as previously assumed. Part-of: 2020-07-01 03:47:00 +0200 Mathieu Duponchelle * gst-libs/gst/video/gstvideoaggregator.c: * tests/check/elements/compositor.c: * tests/examples/compositor/meson.build: * tests/examples/compositor/signals.c: videoaggregator: implement samples selection API Call gst_aggregator_selected_samples() after filling the queues (but before preparing frames). Implement GstAggregator.peek_next_sample. Add an example that demonstrates usage of the new API in combination with the existing buffer-consumed signal. Part-of: 2020-07-24 08:33:23 -0400 Thibault Saunier * gst-libs/gst/pbutils/encoding-profile.c: encoding: Support more topologies in profile_from_discoverer() Previous implementation was only working when the stream was inside a container, this refactoring allows using virtually any stream as input. Part-of: 2020-07-30 19:16:06 +0900 Seungha Yang * gst-libs/gst/gl/winrt/gstglwindow_winrt_egl.cpp: glwindow/winrt: Increase timeout value to 15 seconds 5 seconds might not be enough value for timeout in case an application is running on a device with very limited computing power. Note that ANGLE uses 10 seconds timeout value. So even if a timeout happens here, it's also ANGLE's timeout condition as well (meaning that bad things will happen either way) Part-of: 2020-07-27 18:55:35 +0300 Sebastian Dröge * gst-libs/gst/audio/gstaudioaggregator.c: audioaggregator: Only check downstream caps when handling CAPS events if we didn't negotiate with downstream yet If we already negotiated with downstream there is not point in checking if the caps are supported. We already know that this is the case. Part-of: 2020-07-27 18:49:48 +0300 Sebastian Dröge * gst-libs/gst/audio/gstaudioaggregator.c: audioaggregator: Check all downstream allowed caps structures if they support the upstream rate Otherwise it might happen that downstream prefers a different rate (i.e. puts it into the first structure) and also supports other rates, but audioaggregator would then fail negotiation. Also this now correctly handles downstream returning a range of supported rates. Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/795 Part-of: 2020-07-23 16:52:11 +0200 Stéphane Cerveau * meson.build: meson: add a plugin summary This summary displays a list of plugins which have been enabled. Part-of: 2020-07-04 12:33:20 -0400 Thibault Saunier * gst-libs/gst/pbutils/encoding-profile.c: * gst/encoding/gstencodebin.c: * gst/encoding/gstsmartencoder.c: * gst/encoding/gstsmartencoder.h: encodebin: Fix and refactor smart encoding It was not working properly and the implementation of the smartencoder element was weird. This introduce a number of changes (which are all in one single commit because they basically all work together and lead to basically reimplementing the element): * Make smartencoder a bin so that the reencoding chain of elements are inside of it instead of not having any parent. Those elements were not be visible when dumping the pipeline which was very confusing. * Make encodebin create the right encoder with a capsfilter (and parser) to properly enforce the format specified by the user, and so that the encoder properties specified in the encoding profile are respected. * Use `decodebin` to do the decoding instead of selecting a decoder ourself and not plug any parser etc... * Ensure that negotiated format in the sinkpad of smart encoder is fixed through time when the user requested a non dynamic output * Add a parser at the beginning of the smart encoder * Handle errors when reencoding Part-of: 2020-07-04 12:32:26 -0400 Thibault Saunier * gst/encoding/gststreamsplitter.c: streamsplitter: Forward STREAM_START to all branchs Otherwise the branch that get selected later won't receive it ever. Part-of: 2020-07-04 12:29:06 -0400 Thibault Saunier * gst/encoding/gststreamcombiner.c: * gst/encoding/gststreamcombiner.h: * gst/encoding/gststreamsplitter.c: streamsplitter/combiner: Drain encoder before switching branch Otherwise we miht have frames queued in the encoder from the old branch that do not get encoded/muxed when they should. The implementation is a bit 'weird' but the rational and solution is documented in the code. Part-of: 2020-07-04 12:20:44 -0400 Thibault Saunier * gst/encoding/gstencodebin.c: encodebin: Rebuilt internal state when swicthing to avoid-reencoding Part-of: 2020-07-15 17:51:18 +1000 Matthew Waters * gst-libs/gst/rtp/gstrtpbasepayload.c: * tests/check/libs/rtpbasepayload.c: rtpbasepayload: place twcc-ext-id behind environment variable Adding properties for each and every rtp header extension is not scalable and a new interface will be implemented for the general case (https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/777). Set the environment variable "GST_RTP_ENABLE_EXPERIMENTAL_TWCC_PROPERTY" to any value to reenable the short-lived twcc-ext-id property. Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/761 Part-of: 2020-07-16 16:25:15 -0400 Olivier Crête * gst/videorate/gstvideorate.c: * tests/check/elements/videorate.c: videorate: Error out on streams with no way to guess framerate This is better than going into an infinite loop. Part-of: 2020-07-16 16:04:23 -0400 Olivier Crête * gst/videorate/gstvideorate.c: videorate: Assert on invalid result from internal code Letting this through instead results in an infinite loop where the exact same buffer gets pushed out ad infinitum. Part-of: 2020-07-15 22:54:55 -0400 Olivier Crête * tests/check/elements/videorate.c: videorate: Add test that reproduces infinite loop Part-of: 2020-07-06 14:46:33 -0400 Olivier Crête * ext/alsa/gstalsadeviceprovider.c: alsadeviceprovider: Remove redundant start function The ALSA provider doesn't provider live monitoring, so don't pretend otherwise. Part-of: 2020-07-16 16:31:28 +1000 Matthew Waters * gst-libs/gst/gl/egl/gstgldisplay_egl.c: * gst-libs/gst/gl/gstgldisplay.c: * gst-libs/gst/gl/gstgldisplay.h: * gst-libs/gst/gl/wayland/gstgldisplay_wayland.c: * gst-libs/gst/gl/x11/gstgldisplay_x11.c: Revert "gstgldisplay: Add public foreign_display property" This introduced a possible regression where the EGL display connection could be leaked when a foreign native display (x11, wayland, etc) could create a non-foreign EGL display that would never be destroyed. The underlying problem needed to be solved in a different way. See https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/640 for more details. This reverts commit 2e686b0dad9700b10d91da5e91f34849fa7d32ae. Part-of: 2020-07-16 14:34:51 +0200 Silvio Lazzeretti * gst-libs/gst/audio/gstaudiosink.c: * gst-libs/gst/audio/gstaudiosrc.c: * gst-libs/gst/audio/gstaudioutilsprivate.c: * gst-libs/gst/audio/gstaudioutilsprivate.h: audioutilsprivate: restore thread priority before ending The priority of the thread that executes audioringbuffer_thread_func is incremented on Windows by the usage of the AvSetMmThreadCharacteristics API. This change has to be restored, as described on the documentation of the API (https://docs.microsoft.com/en-us/windows/win32/api/avrt/nf-avrt-avsetmmthreadcharacteristicsw#remarks), with a call to the AvRevertMmThreadCharacteristics. If this is not done, a handle will be leaked. Part-of: 2020-07-17 18:48:15 +0900 Seungha Yang * gst-libs/gst/audio/gstaudioutilsprivate.c: audioutilsprivate: Don't try to load avrt for UWP application All APIs in avrt.h are desktop only. Part-of: 2020-07-16 18:07:34 +1000 Matthew Waters * gst-libs/gst/gl/meson.build: build/gl: remove unused cocoa/win32 header variables We don't install any cocoa/win32 specific headers. Part-of: 2020-04-07 11:00:39 +0200 Havard Graff * tests/check/libs/rtp.c: test/rtp: use the proper _INIT for initializing rtp/rtcp buffer structs. Fixes -Wmissing-field-initializers in Clang. Part-of: 2020-02-12 14:48:36 +0100 Havard Graff * tests/check/libs/rtpbasedepayload.c: rtpbasedepayload: test warning fixes Part-of: 2020-07-14 22:03:39 -0400 Nicolas Dufresne * docs/plugins/gst_plugins_cache.json: doc: Update cache with new raw pixel format Part-of: 2020-07-14 21:43:56 -0400 Nicolas Dufresne * gst-libs/gst/video/video-converter.c: * gst-libs/gst/video/video-format.c: * gst-libs/gst/video/video-format.h: * gst-libs/gst/video/video-info.c: * tests/check/elements/videoscale.c: * tests/check/libs/video.c: video: Add support for linear 32x32 NV12 tiles This adds linear 32x32 NV12 based tiles. This format is notably used by Allwinner VCU and exposed in V4L2 as being "SUNXI Tiled" format. In this patch we generalize the plane info calculation so we can share this part with the 4L4 variant. Part-of: 2020-07-14 11:29:57 -0400 Nicolas Dufresne * docs/plugins/gst_plugins_cache.json: doc: Update cache after adding a new pixel format Part-of: 2020-07-14 10:42:01 -0400 Nicolas Dufresne * gst/rawparse/gstrawvideoparse.c: rawvideoparse: Fix tiling support When using tile format, the stride has a different meaning. It used the MSB and LSB 16bits to encode respectively the width and height in number of tiles. This issue was introduce with commit e5b70d384c which was fixing missing size recalculation when strides and offset is updated. Part-of: 2020-07-13 16:18:29 -0400 Nicolas Dufresne * gst-libs/gst/video/video-converter.c: * gst-libs/gst/video/video-format.c: * gst-libs/gst/video/video-format.h: * gst-libs/gst/video/video-info.c: * gst-libs/gst/video/video-tile.c: * gst-libs/gst/video/video-tile.h: * tests/check/elements/videoscale.c: * tests/check/libs/video.c: video: Add NV12_4L4 tile format This format is produced by Verisillicon VC8000D VPU decoder, it is a simple 4x4 tiling layout in a linear way. Part-of: 2020-06-16 11:44:08 -0400 Aaron Boxer * gst-libs/gst/video/video-frame.c: video: allow frame copy destination to have dimensions smaller than source Part-of: 2020-07-14 14:06:58 +1000 Matthew Waters * tests/examples/gl/qt/gl-compat-defines.h: * tests/examples/gl/qt/meson.build: * tests/examples/gl/qt/mousevideooverlay/meson.build: * tests/examples/gl/qt/mousevideooverlay/pipeline.cpp: * tests/examples/gl/qt/mousevideooverlay/qrenderer.h: * tests/examples/gl/qt/qglwidgetvideooverlay/meson.build: * tests/examples/gl/qt/qglwidgetvideooverlay/pipeline.cpp: * tests/examples/gl/qt/qglwidgetvideooverlay/qglrenderer.h: * tests/examples/gl/qt/qglwtextureshare/meson.build: * tests/examples/gl/qt/qglwtextureshare/pipeline.cpp: * tests/examples/gl/qt/qglwtextureshare/qglrenderer.h: examples/gl/qt: silence compiler warnings -Waggregate-return: used by some Qt clases extensively and not super useful for this example. Supress it. warning: "GL_GLEXT_VERSION" redefined: Perform the same workaround as qmlglsink by defining the old gl/GL.h header guard if the new GL/gl.h guard exists. Part-of: 2019-11-27 16:51:55 +0100 Santiago Carot-Nemesio * gst-libs/gst/rtp/gstrtcpbuffer.c: * tests/check/libs/rtp.c: rtcpbuffer: Notify error in case packet can not be added to an RTCP compound packet Part-of: 2020-07-10 14:57:53 +0300 Sebastian Dröge * gst-libs/gst/video/video-converter.c: video-converter: Add scaling fast-path for GBRA format Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/684 Part-of: 2020-07-10 19:49:56 +0900 Seungha Yang * gst-libs/gst/gl/winrt/gstglwindow_winrt_egl.cpp: glwindow/winrt: Add warning message if window is being closed from a UI thread All UI elements will follow Single-Threaded Apartments (STA) model. As a result, we should access them from dedicated UI thread. Due to the nature of the threading model, ANGLE will wait the UI thread while closing internal window/swapchain objects. A problem here is that when destroying GstGLWindow from the UI thread, it will wait GstGLContext's internal thread. Meanwhile, the GstGLContext's internal thread will be blocked because ANGLE wants to access the UI thread. That will cause a deadlock or exceptions. In short, application should not try to call gst_element_set_state(pipeline, GST_STATE_NULL) from a UI thread. That's a limitation of current implementation. Part-of: 2020-07-09 22:23:33 +0900 Seungha Yang * gst-libs/gst/gl/meson.build: * gst-libs/gst/gl/winrt/gstglwindow_winrt_egl.cpp: * gst-libs/gst/gl/winrt/gstglwindow_winrt_egl.h: glwindow/winrt: Add window resize event handler GstGLWindow implmentaion should be able to report native window size and also it need to handle resize event for glimagesink. Note that GstD3D11Window implementation was referenced for this change. Part-of: 2020-07-09 19:51:57 +0900 Seungha Yang * gst-libs/gst/gl/meson.build: * gst-libs/gst/gl/winrt/gstglwindow_winrt_egl.cpp: glwindow/winrt: Move to c++ For native window size query, c++ API is much convenient than c API Part-of: 2020-07-10 02:46:56 +0900 Seungha Yang * gst-libs/gst/app/gstappsrc.c: appsrc: Fix annotations Don't put double ':' there Part-of: 2020-05-17 02:44:42 +0900 Seungha Yang * tests/check/elements/appsrc.c: tests: appsrc: Add unit test for custom segment Part-of: 2020-05-17 02:29:39 +0900 Seungha Yang * docs/plugins/gst_plugins_cache.json: * gst-libs/gst/app/gstappsrc.c: appsrc: Add support for custom GstSegment Add property "handle-segment-change" for user to allow pushing custom segment event. For now, this property can work only for time format GstSegment. This property can be useful in case application controls timeline of stream such as there is timestamp discontinuity but playback is expected to be continuous. Multi-period scenario of MPEG-DASH is an example of this use case. Part-of: 2020-07-09 11:05:35 -0400 Thibault Saunier * gst-libs/gst/pbutils/encoding-profile.c: pbutils: Do not restrict number of similar profiles in a container We have the notion of presence, and when the user want to be in control it is totally legitimate for him to have several occurrences of a similar profile Part-of: 2020-07-09 13:13:14 -0400 Nicolas Dufresne * gst-libs/gst/video/video-converter.c: videoconverter: Relax frame size checks Since we are using VideoMeta, the converter (similarly to the video_frame_copy utility) should have no issue dealing with frames that are slightly larger. This situation occure as some element will use padded width/height for allocation, which results in a VideoMeta width/height being larger then the display width/height found in the negotiated caps. Fixes #790 Part-of: 2020-07-09 12:45:27 +0300 Sebastian Dröge * gst-libs/gst/audio/gstaudioaggregator.c: audioaggregator: Fix negotiation with downstream if there is no peer yet get_allowed_caps() will return NULL, which is not a problem in itself. Just take the template caps for negotiation in that case instead of erroring out. Part-of: 2020-07-08 16:48:30 +0100 Tim-Philipp Müller * gst-plugins-base.doap: * meson.build: * scripts/extract-release-date-from-doap-file.py: meson: set release date from .doap file for releases And fix up DOAP file XML. Parser would complain about unknown entity ! here. Part-of: 2020-07-08 15:15:34 +0100 Tim-Philipp Müller * pkgconfig/gstreamer-plugins-base-uninstalled.pc.in: * pkgconfig/gstreamer-plugins-base.pc.in: * pkgconfig/meson.build: pkgconfig: fix gstreamer-plugins-base-1.0 .pc files for no OpenGL case Don't put gl into the libraries list if the gst-gl library isn't being built, and also don't include it in the list of linker flags then. Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/613 Part-of: 2020-07-02 22:33:44 +0900 Seungha Yang * gst-libs/gst/gl/win32/gstglwindow_win32.c: glwindow/win32: Fix possible deadlock around key/mouse event handling Calling gst_gl_window_send_{key,mouse}_event() from GstGLContext thread might cause a deadlock. Instead, use the dedicated event handling thread in GstGLDisplay. Part-of: 2020-06-23 16:41:31 +0900 Seungha Yang * tests/examples/overlay/win32-videooverlay.c: examples: win32-videooverlay: Add test for fullscreen mode switch Add test option "--fullscreen" for testing fullscreen mode switch. When enabled, user can switch fullscreen mode via SPACE key or right mouse button click. Part-of: 2020-07-08 09:53:42 +0100 Tim-Philipp Müller * pkgconfig/gstreamer-gl-uninstalled.pc.in: * pkgconfig/gstreamer-gl.pc.in: pkgconfig: fix meson warnings about GL_CFLAGS in gstreamer-gl .pc files We added GL_CFLAGS in autotools because we unconditionally included OpenGL headers. We do not do that anymore for a standard #include . OpenGL headers are only included for the platform specific files e.g. #include which must always be hidden behind a #if GST_GL_HAVE_WINDOW_X11, or #include to gain access to the contents of the GstGLFuncs object. Users of our headers must include the necessary include paths for the platforms they are intending to support. We might introduce extra .pc files for what GstGL was built against though. Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/735 Part-of: 2020-07-08 04:08:33 +0900 Seungha Yang * tests/examples/gl/qt/qglwtextureshare/qglrenderer.cpp: examples/gl/qt: Don't include GL/glx.h unconditionally The header file might not be available on non-*nix platform. Part-of: 2020-07-07 20:01:33 +0100 Tim-Philipp Müller * tests/validate/meson.build: tests: validate: fix meson warning meson.build:4: WARNING: Trying to compare values of different types (ExecutableHolder, bool) using ==. Part-of: 2020-07-07 14:55:06 +0200 Edward Hervey * docs/plugins/gst_plugins_cache.json: docs: Update cache for removed properties Part-of: 2020-07-07 10:57:38 +0200 Edward Hervey * docs/plugins/gst_plugins_cache.json: * gst/playback/gstplay-enum.c: playback: Clarify flag usage for playbin3 Forcing software-decoder has no effect on playbin3 now. Part-of: 2020-07-07 10:52:40 +0200 Edward Hervey * gst/playback/gstdecodebin3.c: * gst/playback/gstplaybin3.c: * gst/playback/gsturidecodebin3.c: Revert "playbin3: handle GST_PLAY_FLAG_FORCE_SW_DECODERS" This reverts commit f4bcf8290b3568690dacf0dac95af7f7036f7110. Part-of: 2020-07-02 14:25:27 +0200 Edward Hervey * gst/playback/gstdecodebin3.c: * gst/playback/gstplaybin3.c: * gst/playback/gsturidecodebin3.c: decodebin3: Only override the selection if needed Whenever a new collection is calculated, the internal `select_streams_seqnum` variable is reset. This ensures that we reliably know whether a select-streams event has been received for that new collection. Use that to decide whether we should add previously un-selected streams or new streams in the current selection Fixes #784 Part-of: 2020-06-29 18:21:23 -0400 Olivier Crête * ext/alsa/gstalsaplugin.c: alsadeviceprovider: Rank down to secondary so PulseAudio can hide it Part-of: 2020-07-04 12:13:14 +0100 Tim-Philipp Müller * gst/compositor/compositororc-dist.c: Update disted generated orc backup files Part-of: 2020-07-04 00:31:49 +0100 Tim-Philipp Müller * gst-libs/gst/audio/meson.build: * gst-libs/gst/video/meson.build: * gst/adder/meson.build: * gst/audiomixer/meson.build: * gst/compositor/meson.build: * gst/videotestsrc/meson.build: * gst/volume/meson.build: * meson.build: * scripts/update-orc-dist-files.py: meson: add update-orc-dist target Add target to update backup orc -dist.[ch] files. Part-of: 2020-07-04 00:39:18 +0200 Mathieu Duponchelle * gst-libs/gst/video/video-color.h: video-color.h: fix comment syntax 2020-06-26 12:22:08 +0300 Vivia Nikolaidou * gst-libs/gst/video/video-color.c: * gst-libs/gst/video/video-color.h: * gst-libs/gst/video/video-converter.c: * gst/videoconvert/gstvideoconvert.c: video-converter: Make fast path work for equivalent transfer functions For example, BT709, BT601, and BT2020_10 all have theoretically different transfer functions, but the same function in practice. In these cases, we should use the fast path for negotiating. Also, BT2020_12 is essentially the same as the other three, just with one more decimal point, so it gives the same result for fewer bits. This is now also aliased to the former three. Also make videoconvert do passthrough if the caps have equivalent transfer functions but are otherwise matching. As of the previous commit, we write the correct transfer function for BT601, instead of the (functionally identical but different ISO code) transfer function for BT709. Files created using GStreamer prior to that commit write the wrong transfer function for BT601 and are, strictly speaking, 2:4:5:4 instead. However, this commit takes care of negotiation, so that conversions from/to the same transfer function are done using the fast path. Fixes #783 Part-of: 2020-06-25 20:56:48 +0300 Vivia Nikolaidou * gst-libs/gst/video/video-color.c: * gst-libs/gst/video/video-color.h: * gst-libs/gst/video/video-info.c: * tests/check/libs/video.c: video-color: Add bt601 transfer function Functionally the same as 709 but technically has a different value, and external software (e.g. ffmpeg) finds "wrong" values produced by GStreamer. Part-of: 2020-07-03 02:03:24 +0100 Tim-Philipp Müller * meson.build: Back to development