From: Tim-Philipp Müller Date: Fri, 28 Jan 2022 14:28:28 +0000 (+0000) Subject: Update ChangeLogs for 1.19.90 X-Git-Tag: 1.20.0~28 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=12fe353a3123dd675a4ba350332720028ebfb2a6;p=platform%2Fupstream%2Fgstreamer.git Update ChangeLogs for 1.19.90 --- diff --git a/subprojects/gst-devtools/ChangeLog b/subprojects/gst-devtools/ChangeLog index b1d540a..b5e81aa 100644 --- a/subprojects/gst-devtools/ChangeLog +++ b/subprojects/gst-devtools/ChangeLog @@ -1,7 +1,45 @@ +2022-01-27 11:25:00 +0530 Nirbheek Chauhan + + * meson_options.txt: + * validate/gst-libs/gst/video/meson.build: + gst-devtools: Add a cairo option for the cairo dep + So that it can be explicitly disabled to avoid pulling in pixman which + doesn't build on Windows ARM64 yet. + Part-of: + +2022-01-07 22:26:16 +0100 Mathieu Duponchelle + + * validate/launcher/loggable.py: + validate: loggable: fix Callable import + Since 3.3 importing Callable from collections is deprecated, + it should be imported from collections.abc . + Since 3.10 the alias has been removed altogether. + Part-of: + +2022-01-05 02:07:59 +0530 Nirbheek Chauhan + + * debug-viewer/meson.build: + * meson.build: + meson: Add explicit check: kwarg to all run_command() calls + This is required since Meson 0.61.0, and causes a warning to be + emitted otherwise: + https://github.com/mesonbuild/meson/commit/2c079d855ed87488bdcc6c5c06f59abdb9b85b6c + https://github.com/mesonbuild/meson/issues/9300 + This exposed a bunch of places where we had broken run_command() + calls, unnecessary run_command() calls, and places where check: true + should be used. + Part-of: + +2021-11-03 18:44:03 +0000 Tim-Philipp Müller + + * meson.build: + Back to development + === release 1.19.3 === 2021-11-03 15:43:36 +0000 Tim-Philipp Müller + * ChangeLog: * NEWS: * RELEASE: * gst-devtools.doap: diff --git a/subprojects/gst-editing-services/ChangeLog b/subprojects/gst-editing-services/ChangeLog index c528dff..cc6448a 100644 --- a/subprojects/gst-editing-services/ChangeLog +++ b/subprojects/gst-editing-services/ChangeLog @@ -1,7 +1,57 @@ +2022-01-24 19:44:32 +0200 Sebastian Dröge + + * ges/meson.build: + ges: Include ges-image-source.h in the installed headers + It's referenced by `ges.h` and was previously available, so removing it + is an API change. + Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/963 + Part-of: + +2022-01-05 02:07:59 +0530 Nirbheek Chauhan + + * docs/meson.build: + * meson.build: + meson: Add explicit check: kwarg to all run_command() calls + This is required since Meson 0.61.0, and causes a warning to be + emitted otherwise: + https://github.com/mesonbuild/meson/commit/2c079d855ed87488bdcc6c5c06f59abdb9b85b6c + https://github.com/mesonbuild/meson/issues/9300 + This exposed a bunch of places where we had broken run_command() + calls, unnecessary run_command() calls, and places where check: true + should be used. + Part-of: + +2021-11-11 19:11:25 +0000 Tim-Philipp Müller + + * ges/ges-multi-file-source.c: + docs: fix unnecessary ampersand, < and > escaping in code blocks + Part-of: + +2021-11-08 11:08:45 -0300 Thibault Saunier + + * ges/meson.build: + meson:ges: Fix typo adding ges gir to libs list + Part-of: + +2021-11-05 11:36:11 -0300 Thibault Saunier + + * tests/check/ges/mixers.c: + tests:ges: Take TIMEOUT_FACTOR into account + This env var is set in the CI so we grow the timeout as required + (when running in valgrind for example). + See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/jobs/15449209 + Part-of: + +2021-11-03 18:44:03 +0000 Tim-Philipp Müller + + * meson.build: + Back to development + === release 1.19.3 === 2021-11-03 15:43:36 +0000 Tim-Philipp Müller + * ChangeLog: * NEWS: * RELEASE: * gst-editing-services.doap: diff --git a/subprojects/gst-libav/ChangeLog b/subprojects/gst-libav/ChangeLog index 305bb34..258c3a7 100644 --- a/subprojects/gst-libav/ChangeLog +++ b/subprojects/gst-libav/ChangeLog @@ -1,7 +1,43 @@ +2022-01-17 01:33:47 +0800 Xi Ruoyao + + * ext/libav/gstavauddec.c: + * ext/libav/gstavaudenc.c: + * ext/libav/gstavcodecmap.c: + * ext/libav/gstavutils.c: + * ext/libav/gstavviddec.c: + * ext/libav/gstavvidenc.c: + gst-libav: fix build with ffmpeg-5.0.0 + Latest ffmpeg has removed avcodec_get_context_defaults(), and its + documentation says a new AVCodecContext should be allocated for this + purpose. The pointer returned by avcodec_find_decoder() is now + const-qualified so we also need to adjust for it. And, AVCOL_RANGE_MPEG + is now rejected with strict_std_compliance > FF_COMPLIANCE_UNOFFICIAL. + Part-of: + +2022-01-05 02:07:59 +0530 Nirbheek Chauhan + + * docs/meson.build: + * meson.build: + meson: Add explicit check: kwarg to all run_command() calls + This is required since Meson 0.61.0, and causes a warning to be + emitted otherwise: + https://github.com/mesonbuild/meson/commit/2c079d855ed87488bdcc6c5c06f59abdb9b85b6c + https://github.com/mesonbuild/meson/issues/9300 + This exposed a bunch of places where we had broken run_command() + calls, unnecessary run_command() calls, and places where check: true + should be used. + Part-of: + +2021-11-03 18:44:03 +0000 Tim-Philipp Müller + + * meson.build: + Back to development + === release 1.19.3 === 2021-11-03 15:43:36 +0000 Tim-Philipp Müller + * ChangeLog: * NEWS: * RELEASE: * gst-libav.doap: diff --git a/subprojects/gst-omx/ChangeLog b/subprojects/gst-omx/ChangeLog index 3ed64ae..59ce16a 100644 --- a/subprojects/gst-omx/ChangeLog +++ b/subprojects/gst-omx/ChangeLog @@ -1,7 +1,26 @@ +2022-01-05 02:07:59 +0530 Nirbheek Chauhan + + * meson.build: + meson: Add explicit check: kwarg to all run_command() calls + This is required since Meson 0.61.0, and causes a warning to be + emitted otherwise: + https://github.com/mesonbuild/meson/commit/2c079d855ed87488bdcc6c5c06f59abdb9b85b6c + https://github.com/mesonbuild/meson/issues/9300 + This exposed a bunch of places where we had broken run_command() + calls, unnecessary run_command() calls, and places where check: true + should be used. + Part-of: + +2021-11-03 18:44:03 +0000 Tim-Philipp Müller + + * meson.build: + Back to development + === release 1.19.3 === 2021-11-03 15:43:36 +0000 Tim-Philipp Müller + * ChangeLog: * NEWS: * RELEASE: * gst-omx.doap: diff --git a/subprojects/gst-plugins-bad/ChangeLog b/subprojects/gst-plugins-bad/ChangeLog index cde8200..a2257d9 100644 --- a/subprojects/gst-plugins-bad/ChangeLog +++ b/subprojects/gst-plugins-bad/ChangeLog @@ -1,7 +1,1419 @@ +2022-01-27 11:22:54 +0100 Víctor Manuel Jáquez Leal + + * sys/va/gstvavpp.c: + vapostproc: Make cb max values symmetrical to their min values. + Intel drivers expose some colorbalance's maximum values much more + bigger than their minimum values, given their middle values (default + value). This means, in practice, that the real middle point between + the maximum and minimum values implies a major change in the color + balance, which is not expected by the GStreamer color balance logic. + This patch makes the given maximum value symmetrical to the minimum + value, given the middle one (default value). + Part-of: + +2022-01-27 11:49:53 -0500 Nicolas Dufresne + + * sys/v4l2codecs/gstv4l2codech264dec.c: + * sys/v4l2codecs/gstv4l2codecmpeg2dec.c: + * sys/v4l2codecs/gstv4l2codecvp8dec.c: + * sys/v4l2codecs/gstv4l2codecvp9dec.c: + v4l2codecs: Fix debug assertion in register functions + As now, we warn if the decoder have no support src pixel format, but that + warning is called before the type (hence the debug category) is initialized. + Fix this by moving the debug category init out of the type initialization, + into the register funcitons. + This will fix an assertion that occures in the register function and allow + relevant log to be seen by the users. + Part-of: + +2022-01-27 17:56:29 +0100 Jakub Adam + + * ext/webrtc/gstwebrtcbin.c: + webrtcbin: Chain up to parent constructed method + Failing to do so makes GstWebRTCBin invisible to the leaks tracer. + Part-of: + +2022-01-27 01:40:17 +0000 Tim-Philipp Müller + + * po/LINGUAS: + * po/ro.po: + gst-plugins-bad: update translations + Part-of: + +2022-01-27 03:10:39 +0900 Seungha Yang + + * sys/d3d11/gstd3d11av1dec.cpp: + d3d11av1dec: Fix typo in debug message + Fixing copy and paste mistake, It's AV1 decoder not VP8 + Part-of: + +2022-01-25 12:32:50 +0100 Víctor Manuel Jáquez Leal + + * sys/va/gstvabasetransform.c: + va: basetransform: Pass component index not plane index. + This is an issue detected and fixed in commit 3897b24f for other + libraries and elements. + Part-of: + +2022-01-24 11:14:14 +0100 Víctor Manuel Jáquez Leal + + * sys/va/gstvafilter.c: + * sys/va/gstvafilter.h: + * sys/va/gstvavpp.c: + va: filter & postproc: Match color with caps features. + When fixating color, there might be "other caps" with color spaces not + supported by the caps features exposed in the vapostproc's source pad + caps template (perhaps it's a bug somewhere else in GStreamer). + This solution checks if the proposed format exists in the filter + within the caps feature associated with the proposed format. + The check is done with the new filter's function + gst_va_filter_has_video_format(). + Part-of: + +2022-01-10 13:34:21 +0100 Jan Alexander Steffens (heftig) + + * gst/mpegtsmux/gstbasetsmux.c: + * gst/mpegtsmux/tsmux/tsmux.c: + * gst/mpegtsmux/tsmux/tsmuxstream.c: + * gst/mpegtsmux/tsmux/tsmuxstream.h: + tsmux: Allow specifying PMT order via the prog-map + Look for an entry `PMT_` in the `prog-map`, which specifies the + relative index of the stream in the PMT. + Part-of: + +2022-01-10 14:16:28 +0100 Jan Alexander Steffens (heftig) + + * gst/mpegtsmux/tsmux/tsmux.c: + tsmux: Deterministically order program streams by PID + Part-of: + +2022-01-10 12:59:58 +0100 Jan Alexander Steffens (heftig) + + * gst/mpegtsmux/tsmux/tsmux.c: + tsmux: Deterministically order PAT programs by number + Part-of: + +2022-01-10 13:03:11 +0100 Jan Alexander Steffens (heftig) + + * gst/mpegtsmux/tsmux/tsmux.c: + * gst/mpegtsmux/tsmux/tsmuxstream.c: + * gst/mpegtsmux/tsmux/tsmuxstream.h: + tsmux: Remove program_array_index + It's only used for removal. Let's just scan the array. + Part-of: + +2022-01-10 12:31:42 +0100 Jan Alexander Steffens (heftig) + + * gst/mpegtsmux/tsmux/tsmux.c: + * gst/mpegtsmux/tsmux/tsmux.h: + tsmux: Replace streams GArray with GPtrArray + This is more appropriate. + Part-of: + +2022-01-19 23:17:23 +0900 Sangchul Lee + + * ext/webrtc/gstwebrtcbin.c: + * ext/webrtc/webrtcdatachannel.c: + * ext/webrtc/webrtcsdp.c: + webrtc: Fix memory leaks + Redundant condition and unreachable codes are also removed. + Part-of: + +2020-07-14 11:11:11 -0400 Nicolas Dufresne + + * sys/v4l2codecs/gstv4l2codech264dec.c: + * sys/v4l2codecs/gstv4l2codecmpeg2dec.c: + * sys/v4l2codecs/gstv4l2codecvp8dec.c: + * sys/v4l2codecs/gstv4l2codecvp9dec.c: + * sys/v4l2codecs/gstv4l2format.h: + v4l2codecs: Unify the src template caps format + Notably NV12_4L4 ended up being applied to only VP9 decoder. This fixes the + situation by using a central define for all static src pad templated formats. + Part-of: + +2022-01-21 14:13:39 -0500 Nicolas Dufresne + + * sys/v4l2codecs/linux/v4l2-controls.h: + * sys/v4l2codecs/linux/videodev2.h: + v4l2codecs: Sync kernel headers against 5.16.0 + Part-of: + +2022-01-21 11:13:55 +0100 Víctor Manuel Jáquez Leal + + * sys/msdk/msdk.c: + msdk: Avoid noisy registry when no MSDK device. + Part-of: + +2022-01-21 10:53:21 +0100 Víctor Manuel Jáquez Leal + + * gst-libs/gst/va/gstvadisplay.c: + va: libs: Avoid noisy registry when no VA device. + Part-of: + +2022-01-20 05:59:36 +0900 Seungha Yang + + * sys/wasapi2/gstwasapi2client.cpp: + * sys/wasapi2/gstwasapi2util.c: + * sys/wasapi2/gstwasapi2util.h: + * sys/wasapi2/meson.build: + wasapi2: Fix for device open failure on old OS + To open automatic stream routing aware device, + at least Windows10 Anniversary Update is required. + Part-of: + +2022-01-18 03:03:30 +0900 Seungha Yang + + * sys/wasapi2/gstwasapi2ringbuffer.cpp: + wasapi2ringbuffer: Fix for desynced buffer-size and segsize + GstAudioRingBufferSpec::segsize has been configured by using + device period but GstWasapi2RingBuffer was referencing the + buffer size returned by IAudioClient::GetBufferSize() + which is most likely larger than device period. + Fixing to sync them. + Part-of: + +2021-12-30 16:52:17 +0100 Robert Mader + + * ext/wayland/wlwindow.c: + * ext/wayland/wlwindow.h: + waylandsink: Ensure correct mapping of area_surface + If the `area_surface` got unmapped when changing to the `READY` or + `NULL` state, we currently don't remap it when playback resumes and + `wp_viewporter` is supported. Without `wp_viewporter` we do remap + it, but rather unintentionally and also when not wanted. + On Weston this has not been a big problem as it so far wrongly maps + subsurfaces of unmapped surfaces anyway - i.e. only the black + background was missing on resume. On other compositors and future + Weston this prevents the `video_surface` to get remapped. + Shuffle things around to ensure `area_surface` is mapped in the + right situations and do some minor cleanup. + See also https://gitlab.freedesktop.org/wayland/weston/-/issues/426 + Part-of: + +2022-01-16 02:21:43 +0900 Seungha Yang + + * sys/d3d11/gstd3d11deinterlace.cpp: + d3d11deinterlace: Do not restrict minimum resolution to 64x64 + The value 64 was completely arbitrary one, and this element + will be able to support smaller resolutions + Part-of: + +2022-01-06 22:00:11 +0900 Seungha Yang + + * sys/d3d11/gstd3d11compositor.cpp: + d3d11compositor: Don't try to read empty buffer + The queued buffer may not be readable buffer in case that + upstream sends GAP event or so. + Part-of: + +2022-01-13 14:17:09 +0100 Robert Mader + + * tests/examples/waylandsink/main.c: + waylandsink: Fix alpha value for the test pattern in example + The background-color property is in big-endian ARGB, resulting in + a alpha value of `0`. This accidentally used to work on all common + compositors, but on Weston this now correctly results in a black + background. + See also https://gitlab.freedesktop.org/wayland/weston/-/issues/577 + Part-of: + +2021-12-13 13:16:06 +0100 Robert Mader + + * ext/wayland/wldisplay.c: + * ext/wayland/wlwindow.c: + waylandsink: Use wl_surface_damage_buffer() instead of wl_surface_damage() + The later, doing damage in surface coordinates instead of buffer + coordinates, has been deprecated. The reason for that is that it + is more prone to bugs, both on the client and the compositor side, + especially when paired with buffer scale, `wp_viewporter` or + buffer transforms. + Unfortunately, on Weston this risks running into + https://gitlab.freedesktop.org/wayland/weston/-/issues/446 + (which causes trouble for several other projects as well). However, + that bug only affects cases where we run in sync mode, i.e. only + during resizes. In practise I haven't been able to observe the + issue. + Part-of: + +2021-12-13 12:21:06 +0100 Robert Mader + + * ext/wayland/wlwindow.c: + waylandsink: Use G_MAXINT32 for surface damage + Each time we call `wl_surface_damage()` we want to do full surface + damage. Like Mesa, just use `G_MAXINT32` to ensure we always do + full damage, reducing the need to track the right dimensions. + `window->video_rectangle` is now unused, but we keep it around for + now as we may need it again in the future. + Part-of: + +2021-12-30 18:14:24 +0100 Robert Mader + + * ext/wayland/wlwindow.c: + waylandsink: Only call wl_surface_damage() when buffer content changed + From the spec: + > This request is used to describe the regions where the pending + > buffer is different from the current surface contents + We currently also call `wl_surface_damage()` on surfaces without + new or still compositor-hold buffers, e.g. when resizing the window. + In that case we call it on `area_surface_wrapper`, even though it + gets resized via `wp_viewport_set_destination()`, in which case + the compositor is in charge of repainting the area on screen. + Doing so is currently not forbidden by the spec, however it might + be in the future, see + https://gitlab.freedesktop.org/wayland/wayland/-/issues/267 + Thus lets stay close to the spec and only call `wl_surface_damage()` + when we just attached a buffer. + Right now this prevents runtime assertions in Mutter. + Part-of: + +2021-12-13 14:31:06 +0100 Robert Mader + + * ext/wayland/wlwindow.c: + waylandsink: Simplify input region handling + We only need to unset the input region for the area surface when + we don't have our own toplevel surface. By default, the input region + covers the whole surface, thus no need to change it on resize. + Part-of: + +2021-12-13 12:00:10 +0100 Robert Mader + + * ext/wayland/wlwindow.c: + waylandsink: Use G_MAXINT32 for opaque regions + `gst_wl_window_set_opaque` does not get called on window resizes, + potentially leaving opaque regions too small. + According to the spec opaque regions can be bigger than the surface + size - parts that fall outside of the surface will get ignored. + Thus we can can simply use `G_MAXINT32` and be sure that the whole + surfaces will always be covered. + Part-of: + +2022-01-11 13:21:55 -0500 Dave Piché + + * ext/webrtc/gstwebrtcbin.c: + webrtc: fix log error message in function gst_webrtc_bin_set_local_description + Part-of: + +2022-01-13 11:31:55 +0000 Tim-Philipp Müller + + * gst/mxf/mxfvanc.c: + mxfdemux: don't error out if VANC track only contains packets we don't handle + If the VANC track does contain packets, but we skip over all packets, just + treat it the same as if there hadn't been any packets at all and send a + GAP event instead of erroring out with "Failed to handle essence element". + We would error out because when we reach the end of the loop without having + found a closed caption packet the flow return variable is still FLOW_ERROR + which is what it has been initialised to. + Part-of: + +2022-01-13 10:36:24 +0800 He Junyan + + * gst-libs/gst/codecparsers/gsth265parser.c: + codecparsers: h265parser: return invalid profile if len is 0. + Though the profiles[0] is inited as GST_H265_PROFILE_INVALID in the + gst_h265_profile_tier_level_get_profile(), the profile detecting may + change its content later. So the return of profiles[0] may not be an + invalid profile even the len is 0. + Part-of: + +2022-01-13 10:11:52 +0800 He Junyan + + * gst-libs/gst/codecparsers/gsth265parser.c: + codecparsers: h265parser: Fix the index incrementation error in append_profile(). + The current "*idx++" operation just refers the pointer and increment the pointer + itself, not the content of the pointer. This causes that the count of the profiles + is always 0. + Part-of: + +2022-01-04 04:56:55 +0300 Dmitry Osipenko + + * sys/kms/gstkmssink.c: + kmssink: Support auto-detection of NVIDIA Tegra driver + NVIDIA Tegra SoCs have a separate (from GPU) display controller. It's + the primary display device on all Tegra SoCs. Add Tegra to the list + of primary DRM drivers. + Part-of: + +2022-01-08 00:16:29 +0100 Mathieu Duponchelle + + * ext/closedcaption/gstcccombiner.c: + cccombiner: fix s334-1a scheduling + The previous code was mistakenly trying to compute a cc_type out + of the first byte in the byte triplet, whereas it is to be interpreted + as: + > Bit b7 of the LINE value is the field number (0 for field 2; 1 for field 1). + > Bits b6 and b5 are 0. Bits b4-b0 form a 5-bit unsigned integer which + > represents the offset + The same mistake was made when creating padding packets. + Part-of: + +2022-01-05 22:48:31 +0100 Mathieu Duponchelle + + * ext/closedcaption/gstcccombiner.c: + cccombiner: merge buffers for both fields with caption type s334-1a + Other elements such as line21encoder expect both fields to be present + in the same meta, not one meta per field. + Part-of: + +2022-01-10 15:24:13 +0800 Mengkejiergeli Ba + + * gst-libs/gst/codecparsers/gstav1parser.h: + av1parser: Fix data type of film grain param + Fix cb_offset and cr_offset data type from guint8 to guint16. According + to spec, cb_offset and cr_offset are 9 bit long, while guint8 can cause + interger overflow, and thus change to guint16. + Part-of: + +2022-01-05 02:07:59 +0530 Nirbheek Chauhan + + * docs/meson.build: + * ext/opencv/meson.build: + * gst-libs/gst/vulkan/meson.build: + * meson.build: + * sys/msdk/meson.build: + meson: Add explicit check: kwarg to all run_command() calls + This is required since Meson 0.61.0, and causes a warning to be + emitted otherwise: + https://github.com/mesonbuild/meson/commit/2c079d855ed87488bdcc6c5c06f59abdb9b85b6c + https://github.com/mesonbuild/meson/issues/9300 + This exposed a bunch of places where we had broken run_command() + calls, unnecessary run_command() calls, and places where check: true + should be used. + Part-of: + +2022-01-05 10:53:55 +0100 Stéphane Cerveau + + * gst/codecalpha/gstalphacombine.c: + alphacombine: update example launch line + Fix typos and missing videoconvert element to demonstrate + the alphacombine element. + Part-of: + +2021-12-24 23:09:59 +0800 He Junyan + + * gst/videoparsers/gstav1parse.c: + av1parse: Set the "tu" as the default alignment. + The tu(temporal unit) is more widely used than the current alignment. + We now change the default alignment to tu. + Part-of: + +2021-12-24 21:50:01 +0800 He Junyan + + * gst/videoparsers/gstav1parse.c: + av1parse: Fix the wrong DELTA_UNIT flag setting for key frames. + Part-of: + +2021-12-22 12:36:15 +0800 He Junyan + + * gst/videoparsers/gstav1parse.c: + av1parse: Copy the PTS and DURATION when we create data. + We need to create header buffers for annex b format. This kind of + buffers should inherit the PTS and DURATION from the original buffers. + Part-of: + +2022-01-03 21:02:47 +0530 Nirbheek Chauhan + + * sys/applemedia/vtenc.c: + vtenc: Signal ignored alpha component with ProRes + When the image is opaque but the output ProRes format has an alpha + component (4 component, 32 bits per pixel), Apple requires that we + signal that it should be ignored by setting the depth to 24 bits per + pixel. Not doing so causes the encoded files to fail validation. + So we set that in the caps and qtmux sets the depth value in the + container, which will be read by demuxers so that decoders can skip + those bytes entirely. qtdemux does this, but vtdec does not use this + information at present. + The sister change was made in qtmux and qtdemux in: + https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1061 + Part-of: + +2022-01-03 22:15:12 +0800 He Junyan + + * gst-libs/gst/codecparsers/gsth265parser.c: + codecparsers: h265parser: Correct the read of slice_sao_chroma_flag. + According to the SPEC, for parsing the slice header, we should read the + slice_sao_chroma_flag only when ChromaArrayType is not equal to 0. + Part-of: + +2021-12-29 21:29:02 +0100 Rafał Dzięgiel + + * ext/assrender/gstassrender.c: + assrender: Support RFC8081 mime types + Old "application/*" are now as per RFC8081 deprecated in favor of + new "font/*" mime types. Some new encoders are already using the + updated mime types. We need to also add them to the support list + in order for assrender to correctly identify them as fonts. + Part-of: + +2021-12-29 21:28:56 +0100 Rafał Dzięgiel + + * ext/assrender/gstassrender.c: + assrender: Handle ".ttc" attachment extension + TTC stands for "TrueType Collection" file. We can pass it + into libass as any other attachment. Add it to the supported + extensions list, so the fonts it contains will be used. + Part-of: + +2022-01-02 09:38:43 +0000 Philippe Normand + + * ext/webrtc/webrtcdatachannel.c: + webrtcdatachannel: Notify buffered-amount property updates + Part-of: + +2021-12-27 03:15:10 +0900 Seungha Yang + + * sys/d3d11/gstd3d11decoder.cpp: + d3d11decoder: Negotiate again on the first output buffer + ... unconditionally. There may be updated field in sinkpad caps + after the new_sequence() call (HDR related ones for example), + then we should signal the information to downstream. + Part-of: + +2021-12-29 15:02:03 +0000 Philippe Normand + + * ext/webrtc/gstwebrtcstats.c: + webrtcstats: Fix null pointer dereference + If there is no jitterbuffer stats we should not attempt to store them in the + global stats structure. + Also add a g_return_if_fail in _gst_structure_take_structure() about this + because it is a programmer error to pass an invalid pointer address there. + Part-of: + +2021-08-12 19:14:16 +0800 He Junyan + + * gst/videoparsers/gstav1parse.c: + codecparsers: av1parse: Add the DECODE_ONLY flag to output buffer. + When the alignment is ALIGN_FRAME and the output buf contains a frame + which is not to be shown, the GST_BUFFER_FLAG_DECODE_ONLY flag should + be set. + Part-of: + +2021-12-14 12:38:25 -0500 Olivier Crête + + * ext/webrtc/gstwebrtcstats.c: + webrtcstats: Fall back to last packet ssrc if caps dont provide it + Part-of: + +2021-12-14 11:28:42 -0500 Olivier Crête + + * ext/webrtc/gstwebrtcstats.c: + webrtcstats: Use our own caps instead of the sticky event + The sticky event seems to get cleared sometimes. + Part-of: + +2021-12-14 11:28:13 -0500 Olivier Crête + + * ext/webrtc/gstwebrtcbin.c: + * ext/webrtc/gstwebrtcbin.h: + webrtcbin: Store the ssrc of the last received packet + Part-of: + +2021-12-13 16:57:06 -0500 Olivier Crête + + * ext/webrtc/gstwebrtcstats.c: + webrtc stats: Remove duplicate structure get + Part-of: + +2021-12-13 16:56:37 -0500 Olivier Crête + + * ext/webrtc/gstwebrtcstats.c: + webrtc stats: Add more details about codecs into the stats + This makes the output a little closer to what the upstream stats are. + Part-of: + +2021-12-23 10:06:58 +1100 Brad Hards + + * ChangeLog: + * data/targets/file-extension/ts.gep: + doc: typo fix for streaming + Part-of: + +2021-12-21 12:55:59 +0800 He Junyan + + * sys/va/gstvaprofile.c: + va: av1dec: Use named profiles to replace the numeric ones. + Use named AV1 profiles (i.e., main, high, and professional) to replace + the old 0, 1, 2 profiles. + Part-of: + +2021-12-21 01:08:40 +0900 Seungha Yang + + * ext/aom/gstav1enc.c: + av1enc: Update for newly designed AV1 profile signalling + Accept named AV1 profiles (i.e., main, high, and professional) + as well + Part-of: + +2021-12-19 21:48:51 +0900 Seungha Yang + + * sys/d3d11/gstd3d11av1dec.cpp: + d3d11av1dec: Update sinkpad template for profile + Part-of: + +2021-12-19 21:44:19 +0900 Seungha Yang + + * gst/videoparsers/gstav1parse.c: + * tests/check/elements/av1parse.c: + av1parse: Use descriptive profile name instead of numeric + As per AV1 specification Annex A, AV1 profiles have explicit and + descriptive names for each seq_profile. + Part-of: + +2021-12-19 21:47:18 +0900 Seungha Yang + + * gst/videoparsers/gstav1parse.c: + av1parse: Remove trailing white space + Part-of: + +2021-12-17 22:24:57 +0900 Seungha Yang + + * sys/d3d11/gstd3d11av1dec.cpp: + d3d11av1dec: Fix for Cdef param + av1parser will increase the sec_strength values by 1 if parsed + values were equal to 3 as defined in spec. But DXVA wants unmodified + ones. + Part-of: + +2021-12-17 19:49:42 +0900 Seungha Yang + + * sys/d3d11/gstd3d11av1dec.cpp: + d3d11av1dec: Sync DXVA AV1 data structure with released header + Update AV1 data structure based on Windows 11 SDK header + Part-of: + +2021-12-15 12:27:24 +0100 Víctor Manuel Jáquez Leal + + * tests/check/libs/h265parser.c: + tests: h265parser: Add test for multiple compatibility profiles. + Part-of: + +2021-12-14 19:56:48 +0100 Víctor Manuel Jáquez Leal + + * gst/videoparsers/gsth265parse.c: + h265parser: Compare upstream profile with in SPS. + Compare if upstream profile in caps is the same as the one parsed in + the SPS. If they are different use the bigger for simplicity and + more chances to decode it. + Part-of: + +2021-12-15 11:58:07 +0100 Víctor Manuel Jáquez Leal + + * gst-libs/gst/codecparsers/gsth265parser.c: + codecparsers: h265parser: Use a table map to get profile. + Instead of a sequence of if statements, declare a table to map profile + idc with profiles and traverse it. + Also, first add the profile from the parsed profile idc and later add, + into the profile array, the profile from the compatibility flags. + Part-of: + +2021-12-14 19:36:56 +0100 Víctor Manuel Jáquez Leal + + * gst-libs/gst/codecparsers/gsth265parser.c: + codecparsers: h265parser: Verify all possible profiles. + It's possible a HEVC stream to have multiple profiles given the + compatibility bits. Instead of returning a single profile, internal + gst_h265_profile_tier_level_get_profiles() returns an array with all + it possible profiles. + Profiles are appended into the array only if the generated profile + is not invalid. + gst_h265_profile_tier_level_get_profile() is rewritten in terms of + gst_h265_profile_tier_level_get_profiles(), returning the first + profile found the array. + And gst_h265_get_profile_from_sps() is also rewritten in terms of + gst_h265_profile_tier_level_get_profiles(), but traversing the array + verifying if the proposed profile is actually valid by Annex A.3.x of + the specification. + Part-of: + +2021-12-09 03:00:56 +0100 Mathieu Duponchelle + + * ext/webrtc/gstwebrtcbin.c: + webrtcbin: bind transceiver's fec-percentage to encoder percentage + Allows for dynamic control of the applied FEC overhead + Part-of: + +2021-12-07 23:55:22 +0100 Mathieu Duponchelle + + * ext/webrtc/gstwebrtcbin.c: + * ext/webrtc/transportstream.c: + * ext/webrtc/transportstream.h: + webrtcbin: fix ulpfec / red for the BUNDLE case + * Add fec / red encoders as direct children of webrtcbin, instead + of providing them to rtpbin through the request-fec-encoder signal. + That is because they need to be placed before the rtpfunnel, which + is placed upstream of rtpbin. + * Update configuration of red decoders to set a list of RED payloads + on them, instead of setting the pt property. + That is because there may be one RED pt per media in the same session. + * Connect to request-fec-decoder-full instead of request-fec-decoder, + in order to instantiate FEC decoders according to the payload type + of the stream. + Part-of: + +2021-12-10 21:58:33 +0900 Seungha Yang + + * sys/d3d11/gstd3d11pluginutils.cpp: + d3d11videosink: Use only tested color space for swapchain + We are querying supported swapchain colorspace via + CheckColorSpaceSupport() but it doesn't seem to be reliable. + Use only tested full-range RGB formats which are: + - sRGB + - BT709 primaries with linear RGB + - BT2020 primaries with PQ gamma + Part-of: + +2021-12-11 11:33:39 -0300 Thibault Saunier + + * docs/plugins/gst_plugins_cache.json: + * ext/soundtouch/gstpitch.cc: + pitch: Specify layout as required for negotiation + There are cases where it might negotiate 'non-interleaved' while it + is wrong. + ``` + gst-launch-1.0 audiotestsrc ! "audio/x-raw, format=(string)F32LE, layout=(string)non-interleaved" ! audioconvert ! audioresample ! pitch tempo=1.2 ! audioconvert ! "audio/x-raw,format=S16LE" ! fakesink + Setting pipeline to PAUSED ... + Pipeline is PREROLLING ... + (gst-launch-1.0:3029628): GStreamer-Audio-CRITICAL **: 11:42:22.477: gst_audio_buffer_map: assertion '(!meta && info->layout == GST_AUDIO_LAYOUT_INTERLEAVED) || (meta && info->layout == meta->info.layout)' failed + ERROR: from element /GstPipeline:pipeline0/GstAudioConvert:audioconvert1: The stream is in the wrong format. + Additional debug info: + ../subprojects/gst-plugins-base/gst/audioconvert/gstaudioconvert.c(876): gst_audio_convert_transform (): /GstPipeline:pipeline0/GstAudioConvert:audioconvert1: + failed to map input buffer + ERROR: pipeline doesn't want to preroll. + ERROR: from element /GstPipeline:pipeline0/GstAudioTestSrc:audiotestsrc0: Internal data stream error. + Setting pipeline to NULL ... + Additional debug info: + ../subprojects/gstreamer/libs/gst/base/gstbasesrc.c(3127): gst_base_src_loop (): /GstPipeline:pipeline0/GstAudioTestSrc:audiotestsrc0: + streaming stopped, reason error (-5) + ERROR: pipeline doesn't want to preroll. + Freeing pipeline ... + ``` + Part-of: + +2021-12-10 15:46:41 -0500 Nicolas Dufresne + + * docs/plugins/gst_plugins_cache.json: + doc: Update vp9alphadecodebin doc cache + A new field was added to the template cpas. + Part-of: + +2021-12-10 15:18:56 -0500 Nicolas Dufresne + + * gst/codecalpha/gstalphacombine.c: + alphacombine: Fix for early allocation queries + When using playbin3, it seems that the alpha decode is always first to + push caps and run an allocation query. As the format change from sink + and alpha were not synchronized, the allocation query could endup + being run before the caps are pushed. That may lead to failing query, + which makes the decoder thinks there is no GstVideoMeta downstream and + most likely CPU copy the frame. + This patch implements a format cookie to track and synchronize the + format changes on both pads fixing the racy performance issue. + Part-of: + +2021-12-10 14:09:44 -0500 Nicolas Dufresne + + * sys/v4l2codecs/gstv4l2codecvp9dec.c: + * sys/v4l2codecs/gstv4l2codecvp9dec.h: + * sys/v4l2codecs/plugin.c: + v4l2codecs: vp9: Add alpha decodebin wrapper + This will allow HW accelerated decoding of WebM alpha videos. + Part-of: + +2021-12-10 14:09:06 -0500 Nicolas Dufresne + + * sys/v4l2codecs/plugin.c: + v4l2codecs: plugin: Minor style fix + Part-of: + +2021-12-10 14:08:32 -0500 Nicolas Dufresne + + * sys/v4l2codecs/gstv4l2decoder.c: + v4l2codecs: decoder: Improve logging of timed out request + Part-of: + +2021-12-10 14:07:18 -0500 Nicolas Dufresne + + * sys/v4l2codecs/gstv4l2codecmpeg2dec.c: + * sys/v4l2codecs/gstv4l2codecmpeg2dec.h: + * sys/v4l2codecs/plugin.c: + v4l2codecs: mpeg2: Check that the decoder output formats + This is to avoid exposing a decoder for which we don't support any + output format. This happens on platform using vendor formats or + not yet supported tiles formats. + Part-of: + +2021-12-10 14:04:40 -0500 Nicolas Dufresne + + * gst/codecalpha/gstvp9alphadecodebin.c: + vp9alphadecodebin: Fix auto-pluging v4l2slvp9dec + This adds the alignment field to the template caps. Without this field + set, the auto-plugger will see fixed caps and will use + gst_caps_is_subset() against the caps produced by the parser. This is a + challenge for all cases where a parser can do conversion. This is fixed + by adding alignment field, which makes the auto-pluggers do an + intersection of the caps as it gets unfixed caps after intersection now. + Part-of: + +2021-12-09 19:55:04 +0900 Seungha Yang + + * sys/d3d11/gstd3d11pluginutils.cpp: + * sys/d3d11/gstd3d11pluginutils.h: + * sys/d3d11/gstd3d11window.cpp: + d3d11window: Remove hack related to color space selection + Use input GstVideoColorPrimaries without any special case handling + otherwise rendered image color would be very wrong. + The hack was added to work around an issue that some Intel driver + couldn't handle wide color gamut image without HDR10 metadata, specifically PQ image. + But device capability can be checked via a method added in + https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1723 + so there's no issue now. + Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1175 + Part-of: + +2021-12-09 19:51:04 +0900 Seungha Yang + + * sys/d3d11/gstd3d11window.cpp: + d3d11window: Fix typo in debug message + Part-of: + +2021-12-08 11:08:30 +0100 Benjamin Gaignard + + * gst-libs/gst/codecs/gsth264decoder.c: + codecs: h264decoder: Fix return value type + Return value should be GstFlowReturn not gboolean + Part-of: + +2021-12-07 17:09:11 +0100 Benjamin Gaignard + + * gst-libs/gst/codecs/gsth265decoder.c: + codecs: h265decoder: Fix return value if klass->new_picture isn't set + If klass->new_picture isn't set we need to initialize + ret with GST_FLOW_OK to avoid unwanted error case + Fixes: 5b405d15858b ("codecs: h265decoder: Use GstFlowReturn everywhere") + Part-of: + +2021-12-06 16:47:14 +0000 Philippe Normand + + * ext/wpe/gstwpevideosrc.cpp: + wpevideosrc: Use basesrc event vfunc + Allows for basic default handling from the base class. + Part-of: + +2021-12-03 13:24:25 +0000 Tim-Philipp Müller + + * ext/teletextdec/gstteletextdec.c: + teletextdec: fix minor string leak + Part-of: + +2021-12-02 15:52:06 +0100 Marc Leeman + + * gst/rist/gstristsink.c: + ristsink: set properties on children early + The properties on the udpsink/udpsrc elements need to be set before + there is any state change. If not, in a network without default gateway, + udpsink tries to bind an a NULL interface and fails. + Part-of: + +2021-12-03 07:53:54 -0500 Nicolas Dufresne + + * sys/v4l2codecs/gstv4l2codecmpeg2dec.c: + v4l2codecs: mpeg2: Fix selected sizeimage + Due to a copy paste bug, the bitdepth was never set and that was leading + to requesting sizeimage of 0. Previously that worked since the driver + would in that case pick a size for us. But now the we bumped the minimum + to 4KB, the driver happily allocate 4KB of bitstream which lead to + decoding error. + As MPEG2 have a fixed bitdeph of 8, use a define instead of the run-time + variable. + Part-of: + +2021-12-01 12:16:40 -0500 Nicolas Dufresne + + * sys/v4l2codecs/gstv4l2codecvp9dec.c: + v4l2codecs: vp9: Drop frames on non-keyframe format change + V4L2 does not yet support this feature, this will skip over the + transition portion up to the next keyframe. + Part-of: + +2021-12-01 09:51:57 -0500 Nicolas Dufresne + + * sys/v4l2codecs/gstv4l2codech264dec.c: + * sys/v4l2codecs/gstv4l2codecmpeg2dec.c: + * sys/v4l2codecs/gstv4l2codecvp8dec.c: + * sys/v4l2codecs/gstv4l2codecvp9dec.c: + v4l2codecs: Fix renegotiation + If we hold the last reference to the allocator, leaving the device + streaming will cause an EBUSY error when trying to free the allocate + buffers. + Part-of: + +2021-12-02 16:26:08 +0900 Seungha Yang + + * sys/d3d11/gstd3d11vp9dec.cpp: + d3d11vp9dec: Drop frames on non-keyframe format change + ... in case of NVIDIA GPU + Part-of: + +2021-12-02 16:04:21 +0900 Seungha Yang + + * sys/nvcodec/gstnvvp9dec.c: + nvvp9sldec: Drop frames on non-keyframe format change + NVDEC doesn't seem to be able to handle the case + Part-of: + +2021-12-02 16:03:14 +0900 Seungha Yang + + * gst-libs/gst/codecs/gstvp9decoder.c: + * gst-libs/gst/codecs/gstvp9decoder.h: + codecs: vp9: Drop frames on non-keyframe format change + ... if subclass does not support the case + Part-of: + +2021-12-01 12:10:42 -0500 Nicolas Dufresne + + * gst-libs/gst/codecs/gstvp9decoder.c: + codecs: vp9: Also consider render_width/height + Also emits new_sequence if on keyframe and the render_width/height have + change. The subclass can always optimize this if the frame resolution + didn't change, the output caps needs to reflect this though. + Part-of: + +2021-11-30 10:24:37 +0100 Marc Leeman + + * gst/rtp/gstrtpsink.c: + rtpsink: set properties on children early + The properties on the udpsink/udpsrc elements need to be set before + there is any state change. If not, in a network without default gateway, + udpsink tries to bind an a NULL interface and fails. + Part-of: + +2021-11-30 14:48:03 -0500 Nicolas Dufresne + + * sys/v4l2codecs/gstv4l2codecvp9dec.c: + v4l2codecs: vp9: Remove uneeded picture data + The GstV4l2Request now holds a reference on the picture buffer and is + recounted already. This effectively removes usage of GRefCount which is only + available in GLib 2.58, while we support 2.56. + Fixes #910 + Part-of: + +2021-11-30 17:05:22 -0500 Nicolas Dufresne + + * sys/v4l2codecs/gstv4l2decoder.c: + * sys/v4l2codecs/gstv4l2decoder.h: + v4l2codecs: decoder: Add method to get the pic_buf + This helper will be needed for VP9 frame duplication. + Part-of: + +2021-11-30 16:08:18 -0500 Nicolas Dufresne + + * sys/v4l2codecs/gstv4l2codecvp9dec.c: + v4l2codecs: vp9: Add missing error checks in decide_allocation + This could otherwise lead to crash. + Part-of: + +2021-11-24 11:17:22 -0500 Nicolas Dufresne + + * sys/v4l2codecs/gstv4l2codech264dec.c: + v4l2codecs: h264: Fix typo in comment + Part-of: + +2021-11-24 11:17:40 -0500 Nicolas Dufresne + + * sys/v4l2codecs/gstv4l2codech264dec.c: + v4l2codecs: h264: Properly set pic_num/frame_num + The V4L2 uAPI uses pic_num for both PicNum and ShortTermPicNum. It also + doe the same for both FrameNum and LongTermFrameIdx. This change does + not change the fluster score, but fixed a visual corruption noticed + with some third party streams. + Part-of: + +2021-11-23 16:35:16 +0800 He Junyan + + * sys/va/gstvasurfacecopy.c: + va: Use a lock to protect the surface copy by using vpp. + If we use vpp to do the surface copy, its operation is not atomic. + We need to maintain the filter's context unchanged during the whole + copy progress. + Part-of: + +2021-11-23 21:10:55 +0800 He Junyan + + * sys/va/gstvaallocator.c: + va: Use the GstVaSurfaceCopy of the allocator atomically. + The mem_copy() of the allocator can be called simultaneously from + different threads. We should use atomic pointer operations to create + and use the GstVaSurfaceCopy of the allocator. + Part-of: + +2021-11-22 16:07:27 +0800 He Junyan + + * sys/va/gstvaallocator.c: + va: DMA allocator: Set the copied memory properly when popped from pool. + The current code does not set the copied memory correctly when it is popped + from the surface cache pool. + 1. We forget to ref the allocator, which causes the allocator to be freed + unexpected, and we get a crash later because of the memory violation. + 2. We forget to add ref_mems_count, which causes the surface leak because + the surface can not be pushed back to the cache pool again. + Part-of: + +2021-04-22 16:29:20 -0300 Daniel Almeida + + * sys/v4l2codecs/gstv4l2decoder.c: + v4l2codecs: gstv4l2decoder: set minimum sizeimage + Set minimum sizeimage such that there is enough space for any overhead + introduced by the codec. + Notably fix a vp9 issue in which a small image would not have a + bitstream buffer large enough to accomodate it. + Part-of: + +2021-04-07 16:15:32 -0300 Daniel Almeida + + * sys/v4l2codecs/gstv4l2codecvp9dec.c: + v4l2codecs: gstv4l2codecsvp9dec: implement a render delay + The v4l2 backend support delayed output for performance reasons. + It is then possible to use render delays to queue multiple requests + simultaneously, thus increasing performance. + Part-of: + +2021-03-30 13:30:46 -0300 Daniel Almeida + + * sys/v4l2codecs/gstv4l2codecvp9dec.c: + * sys/v4l2codecs/gstv4l2codecvp9dec.h: + * sys/v4l2codecs/gstv4l2format.c: + * sys/v4l2codecs/linux/videodev2.h: + * sys/v4l2codecs/meson.build: + * sys/v4l2codecs/plugin.c: + v4l2codecs: vp9dec: Implement VP9 v4l2 decoder + Implement a v4l2 based vp9 decoder element based on the preexisting vp8 + v4l2 decoder. + Part-of: + +2021-07-14 16:21:59 -0300 Daniel Almeida + + * sys/v4l2codecs/linux/v4l2-controls.h: + * sys/v4l2codecs/linux/videodev2.h: + v4l2codecs: update to the new uAPI + The new VP9 stateless API is in its way to be destaged. Update our + headers to match. + Part-of: + +2021-04-08 10:40:03 -0300 Daniel Almeida + + * gst-libs/gst/codecs/gstvp9decoder.c: + codecs: gstvp9decoder: copy frame->system_frame_number into picture + A comment in gstvp9picture.h states that picture->system_frame_number + should get its value from frame->system_frame_number, but in fact + it was never copied at all. + Fix it. + Part-of: + +2021-04-08 10:38:55 -0300 Daniel Almeida + + * gst-libs/gst/codecs/gstvp9decoder.c: + * gst-libs/gst/codecs/gstvp9decoder.h: + * gst-libs/gst/codecs/gstvp9statefulparser.c: + * gst-libs/gst/codecs/gstvp9statefulparser.h: + codecs: gstvp9{decoder|statefulparser}: optionally parse compressed headers + Rework gstvp9{decoder|statefulparser} to optionally parse compressed headers. + The information in these headers might be needed for accelerators + downstream, so optionally parse them if downstream requests it. + Part-of: + +2021-11-23 20:12:06 +0100 Mathieu Duponchelle + + * ext/webrtc/gstwebrtcbin.c: + * tests/check/elements/webrtcbin.c: + webrtcbin: deduplicate extmaps + When an extmap is defined twice for the same ID, firefox complains and + errors out (chrome is smart enough to accept strict duplicates). + To work around this, we deduplicate extmap attributes, and also error + out when a different extmap is defined for the same ID. + Part-of: + +2021-11-23 13:30:17 +0800 He Junyan + + * gst-libs/gst/codecs/gstmpeg2decoder.c: + codecs: mpeg2decoder: drain() only when significant sequence changes. + There are a lot of info in the mpeg2's sequence(also including ext + display_ext and scalable_ext). We need to notify the subclass about + its change, but not all the changes should trigger a drain(), which + may change the output picture order. For example, the matrix changes + in sequence header does not change the decoder context and so no need + to trigger a drain(). + Fixes: #899 + Part-of: + +2021-11-23 23:52:18 +0900 Seungha Yang + + * ext/openjpeg/gstopenjpegenc.h: + openjpegenc: Fix build warning + Compiling C object subprojects/gst-plugins-bad/ext/openjpeg/gstopenjpeg.dll.p/gstopenjpegenc.c.obj + ../subprojects/gst-plugins-bad/ext/openjpeg/gstopenjpegenc.c(416): + warning C4133: '=': incompatible types - from 'GstFlowReturn (__cdecl *)(GstVideoEncoder *,GstVideoCodecFrame *)' to + 'gboolean (__cdecl *)(GstVideoEncoder *,GstVideoCodecFrame *)' + ../subprojects/gst-plugins-bad/ext/openjpeg/gstopenjpegenc.c(418): + warning C4133: '=': incompatible types - from 'GstFlowReturn (__cdecl *)(GstVideoEncoder *,GstVideoCodecFrame *)' to + 'gboolean (__cdecl *)(GstVideoEncoder *,GstVideoCodecFrame *)' + Part-of: + +2021-11-23 09:28:57 +0100 Guillaume Desmottes + + * ext/gs/gstgssink.cpp: + gssink: add metadata property + This property can be used to set metadata on the storage object. + Similar API has been added to the S3 sink already, see + https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/613 + Part-of: + +2021-11-23 00:25:07 +0900 Seungha Yang + + * gst-libs/gst/d3d11/gstd3d11bufferpool.cpp: + * gst-libs/gst/d3d11/gstd3d11utils.cpp: + d3d11: Update comments + Remove copy & paste mistake (this is not GstGL) and add more + description. + Part-of: + +2021-11-19 15:13:28 +0100 Víctor Manuel Jáquez Leal + + * sys/va/gstvabasetransform.c: + * sys/va/gstvabasetransform.h: + * sys/va/gstvadeinterlace.c: + * sys/va/gstvavpp.c: + vapostproc, vadeinterlace: don't transform caps if no intersection. + If caps to transform don't intersect with those supported by the VA + filter (VAEntrypointVideoProc) then return them as is, because only + pass-through mode is the only possibility. + Part-of: + +2021-11-16 10:40:03 +0100 Víctor Manuel Jáquez Leal + + * sys/va/gstvavpp.c: + vapostproc: Append featured caps rather than merge. + So it would be possible to honor upstream preference. + Part-of: + +2021-10-25 19:22:05 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvavpp.c: + vapostproc: Remove dead code. + Part-of: + +2021-10-25 19:22:19 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvafilter.c: + va: filter: Validate input parameter in internal function. + Part-of: + +2021-11-15 10:15:38 +0100 Víctor Manuel Jáquez Leal + + * sys/va/gstvaallocator.c: + va: allocator: log drm modifier + Part-of: + +2021-11-22 17:34:22 +0800 He Junyan + + * sys/va/gstvavpp.c: + va: vpp: Fix the memory leak in fixate_caps(). + For the BaseTransform class, the function of fixate_caps(), takes + the ownership of "othercaps". So we should clear it in our subclass. + Part-of: + +2021-11-13 12:22:36 +0000 Philippe Normand + + * gst-libs/gst/player/gstplayer.c: + player: Ensure the GstPlay is created before the wrapped renderer + The GstPlayerWrappedVideoRenderer implicitely depends on GstPlay. + Fixes #878 + Part-of: + +2021-11-13 12:17:23 +0000 Philippe Normand + + * gst-libs/gst/play/gstplay.c: + play: Allow runtime configuration of video-renderer + This is a requirement for GstPlayer when using the default overlay interface + provided by the pipeline. The GstPlayerWrappedVideoRenderer requires a valid + pipeline, but that's available only after the GstPlay thread has successfully + started. + Part-of: + +2021-11-19 19:02:20 +0800 He Junyan + + * sys/va/gstvadecoder.c: + va: decoder: Also ref the display when duplicating pictures. + The _destroy_buffers() will check the display handle using the + g_return_val_if_fail. we should not generate the invalid pointer + warning. + Part-of: + +2021-11-17 22:51:00 +0900 Seungha Yang + + * docs/plugins/gst_plugins_cache.json: + docs: Update doc cache for Windows specific plugins + Updating doc cache for d3d11, mediafoundation and wasapi2 plugins + Part-of: + +2021-11-18 00:16:41 +0900 Seungha Yang + + * sys/wasapi2/gstwasapi2sink.c: + wasapi2: Fix typo in doc + Part-of: + +2021-11-17 22:46:17 +0900 Seungha Yang + + * sys/mediafoundation/gstmfh264enc.cpp: + * sys/mediafoundation/gstmfh265enc.cpp: + * sys/mediafoundation/gstmfvideoenc.cpp: + * sys/mediafoundation/gstmfvp9enc.cpp: + * sys/mediafoundation/plugin.c: + mediafoundation: Skip doc for non-default encoder elements + Part-of: + +2021-10-21 19:41:15 +0900 Seungha Yang + + * sys/d3d11/gstd3d11av1dec.cpp: + * sys/d3d11/gstd3d11deinterlace.cpp: + * sys/d3d11/gstd3d11h264dec.cpp: + * sys/d3d11/gstd3d11h265dec.cpp: + * sys/d3d11/gstd3d11mpeg2dec.cpp: + * sys/d3d11/gstd3d11vp8dec.cpp: + * sys/d3d11/gstd3d11vp9dec.cpp: + * sys/d3d11/plugin.cpp: + d3d11: Stop doc for non-default decoder and deinterlacer elements + Just skip doc for non-default decoder/deinterlacer elements + since there are multiple element in case that system has + multiple GPUs. + Part-of: + +2021-11-19 13:27:54 +0900 Wonchul Lee + + * sys/d3d11/gstd3d11window_win32.cpp: + d3d11: Fix deadlock while doing unprepare + ShowWindow() could be blocked while doing gst_d3d11_window_win32_unprepare + when external window handle provided to d3d11videosink in multi-threaded + environment. + The condition that issue happened is, UI thread is waiting for a + background thread that changes d3d11videosink state to NULL, and the + background thread would try to send a window message to the queue. + The queue is already occupied by the UI thread, so the background + thread will be blocked. + Part-of: + +2021-11-16 12:56:38 +0000 Philippe Normand + + * ext/wpe/gstwpevideosrc.cpp: + wpevideosrc: Fix frame stuttering in GL rendering path + Make sure the EGLImage we're rendering to the GL memory stays alive long enough, + until the the GL memory has been destroyed. + This change fixes tearing and black flashes artefacts that were happening + because the EGLImage was sometimes destroyed before the sink actually rendered + the associated texture. + Fixes #889 + Part-of: + +2021-11-16 12:53:35 +0000 Philippe Normand + + * ext/wpe/gstwpevideosrc.cpp: + wpevideosrc: Run through gst-indent + Part-of: + +2021-11-11 19:11:25 +0000 Tim-Philipp Müller + + * ext/rsvg/gstrsvgoverlay.c: + * gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.c: + docs: fix unnecessary ampersand, < and > escaping in code blocks + Part-of: + +2020-11-05 10:23:13 +0100 Timo Wischer + + * ext/avtp/gstavtpcrfbase.c: + avtp: crf: Process also local CRF streams + Without this patch locally generated CRF streams will be ignored. + Therefore the same network interface could not be CRF talker and + CRF listener. + Part-of: + +2021-11-09 15:10:21 +0100 Jean Felder + + * gst/id3tag/id3tag.c: + id3tag: Map GST_TAG_MUSICBRAINZ_RELEASETRACKID + Part-of: + +2021-11-09 15:04:59 +0100 Jean Felder + + * gst/id3tag/id3tag.c: + id3tag: Map GST_TAG_MUSICBRAINZ_RELEASEGROUPID + Part-of: + +2021-11-09 15:04:00 +0100 Jean Felder + + * gst/id3tag/id3tag.c: + id3tag: Remove trailing whitespace + Part-of: + +2021-10-06 15:54:09 +0200 Timo Wischer + + * ext/avtp/gstavtpsrc.c: + avtpsrc: Use correct size for provided buffers + Without this patch the following pipeline would send packets containing + garbage in the data section. + $ gst-launch-1.0 avtpsrc ! avtpsink + Part-of: + +2020-10-15 14:49:58 +0200 Timo Wischer + + * ext/avtp/gstavtpcrfsync.c: + avtp: crfsync: Warn when CRF package not yet received + Part-of: + +2021-03-03 10:08:57 +0100 Timo Wischer + + * tests/check/elements/avtpcrfbase.c: + test: avtp: crf: Check for rounding errors + on average period calculation. + Part-of: + +2020-11-11 16:50:28 +0100 Timo Wischer + + * ext/avtp/gstavtpcrfbase.c: + * ext/avtp/gstavtpcrfbase.h: + * tests/check/elements/avtpcrfbase.c: + avtp: crf: Use double for average period calculation + to also support CRF intervals like every 1,333,333ns 64 events + Part-of: + +2021-01-12 10:03:32 +0100 Timo Wischer + + * tests/check/elements/avtpcrfbase.c: + tests: avtp: crf: Test for timestamp_interval > 1 + in case of CRF AVTPDUs with single CRF timestamp. + Part-of: + +2020-09-16 17:12:32 +0200 Timo Wischer + + * ext/avtp/gstavtpcrfbase.c: + * ext/avtp/gstavtpcrfbase.h: + avtp: crf: Properly handling one timestamp per PDU + The average_period should always represent the time between two + events. The specification defines the event time as the time + between audio samples, video frame sync, video line sync, etc. + In case of one timestamp per PDU the timestamp_interval identifies + the amount of events between the timestamp of one PDU and the + timestamp of the next PDU. + As described in IEEE 1722-2016 chapter + "10.4.12 timestamp_interval field" timestamp_interval shall be + nonzero. + Part-of: + +2021-11-08 20:18:51 +0100 Thomas Klausner + + * sys/shm/meson.build: + shm: NetBSD build fix + shm_unlink() and friends live in librt on NetBSD. Adapt build system. + Part-of: + +2021-05-21 16:56:33 -0300 Martin Reboredo + + * ext/aom/gstav1enc.c: + aom: Set fixed_qp_offsets to a deactivated value + aom only uses fixed_qp_offsets with the + Constant Quality (Q) Rate Control mode, + previously this was locking any usage + with another Rate Control mode. + Part-of: + +2021-11-05 13:12:14 +0100 Antonio Ospite + + * sys/magicleap/meson.build: + magicleap: update lumin_rt libraries names to the latest official version + Part-of: + +2021-10-05 01:07:57 +0800 He Junyan + + * gst-libs/gst/codecs/gsth264decoder.c: + codecs: h264dec: Calculate the latency by its bump mode. + The current latency calculation just uses the num_reorder_frames, + which is not very precise. We should consider the bump mode of the + DPB, the faster it bumps, the lower latency we will have. + Part-of: + +2021-11-04 19:06:22 +0000 Thibault Saunier + + * docs/plugins/gst_plugins_cache.json: + * sys/nvcodec/gstcudabasefilter.c: + * sys/nvcodec/gstcudabasetransform.c: + * sys/nvcodec/gstcudaconvert.c: + * sys/nvcodec/gstcudadownload.c: + * sys/nvcodec/gstcudascale.c: + * sys/nvcodec/gstcudaupload.c: + * sys/nvcodec/gstnvdec.c: + doc: Update nvdec documentation + Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/870 + Part-of: + +2021-11-03 17:09:52 +0900 Seungha Yang + + * gst/videoparsers/gsth264parse.c: + * gst/videoparsers/gsth264parse.h: + h264parse: Don't insert extra AUD if exists in bitstream already + AUD nalu in packetized format is completely valid and therefore we should not + assume that we should insert AUD for packetized -> bytestream + conversion. + Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/862 + Part-of: + +2021-11-03 20:36:09 +0900 Seungha Yang + + * tests/check/elements/h264parse.c: + tests: h264parse: Add test for AUD insertion + Part-of: + +2021-11-04 16:36:05 +0900 Seungha Yang + + * sys/wasapi2/gstwasapi2ringbuffer.cpp: + wasapi2ringbuffer: Fix client object leak + Check whether ringbuffer is holding client object already since + open_device() may be called multiple times + Part-of: + +2021-11-04 12:48:28 +0200 Sebastian Dröge + + * ext/webrtc/gstwebrtcbin.c: + webrtcbin: Clear errors from finding codec preferences before the next iteration + The media is just skipped and the error is not propagated to the caller, + so keeping it around here would cause assertions a bit later when trying + to set a new error over the old one. + Part-of: + +2021-11-04 12:45:34 +0200 Sebastian Dröge + + * ext/webrtc/gstwebrtcbin.c: + webrtcbin: Move addition of attributes to the caps after making sure they're not empty or any + Part-of: + +2021-11-02 11:21:34 +0200 Sebastian Dröge + + * ext/webrtc/gstwebrtcbin.c: + webrtcbin: Don't require fixed caps when querying caps for a transceiver pad to match it with a media + Upstream caps might for example be + application/x-rtp,media=audio,encoding-name={OPUS, X-GST-OPUS-DRAFT-SPITTKA-00, multiopus} + and while that is not fixed caps it is enough to match it with a media. + Only caps structures that have the correct structure name and that have + the media and encoding-name field are preserved, but if both are present + then these caps are used as "codec preferences". + Part-of: + +2021-11-03 18:44:03 +0000 Tim-Philipp Müller + + * meson.build: + Back to development + === release 1.19.3 === 2021-11-03 15:43:36 +0000 Tim-Philipp Müller + * ChangeLog: * NEWS: * RELEASE: * gst-plugins-bad.doap: @@ -6781,7 +8193,7 @@ * data/meson.build: * data/targets/file-extension/ts.gep: transcoding: add encoding target for TS. - Add encoding target for streaming. + Add encoding target for streamming. Part-of: 2021-04-29 16:51:27 +0200 Johan Sternerup diff --git a/subprojects/gst-plugins-base/ChangeLog b/subprojects/gst-plugins-base/ChangeLog index 1decbc2..6c2406a 100644 --- a/subprojects/gst-plugins-base/ChangeLog +++ b/subprojects/gst-plugins-base/ChangeLog @@ -1,7 +1,388 @@ +2022-01-27 14:22:26 +0200 Sebastian Dröge + + * gst-libs/gst/rtp/gstrtphdrext.c: + rtphdrext: Return non-floating references from `gst_rtp_header_extension_create_from_uri()` + The header extension objects are never getting a parent object and using + floating references only complicates usage, especially via dynamic API + like signals. + Part-of: + +2022-01-27 14:26:26 +0200 Sebastian Dröge + + * gst-libs/gst/rtp/gstrtphdrext.c: + rtphdrext: Use `set_metadata()` instead of `set_static_metadata()` + The latter needs a static string. + Part-of: + +2022-01-26 00:02:49 +0100 Mathieu Duponchelle + + * gst-libs/gst/audio/audio-info.c: + * gst-libs/gst/audio/audio-info.h: + * gst-libs/gst/video/video-info.c: + * gst-libs/gst/video/video-info.h: + VideoInfo, AudioInfo: fix usage with python bindings + * Expose an actual constructor from caps + * Error out in overrides for code that was using the "manual + allocation" pattern which only worked by chance. Direct + the script writer to the new_from_caps constructor instead. + Fixes https://gitlab.freedesktop.org/gstreamer/gst-python/-/issues/47 + Part-of: + +2022-01-27 01:38:12 +0000 Tim-Philipp Müller + + * po/de.po: + * po/fr.po: + * po/ro.po: + gst-plugins-base: update translations + Part-of: + +2022-01-24 12:26:25 +0200 Vivia Nikolaidou + + * gst-libs/gst/audio/gstaudioaggregator.c: + audioaggregator: Return NOT_NEGOTIATED when the configuration is invalid + Otherwise we just end up outputting garbage. + https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/957 + Part-of: + +2022-01-26 11:12:34 +0530 Nirbheek Chauhan + + * gst-libs/gst/video/gstvideoaggregator.h: + videoaggregator: Remove extra semicolon in macro usage + This is usually necessary to allow gst-indent to treat it as + a statement, but we do not run gst-indent on headers and we do not + have extra semicolons in other places that this macro is used in the + header. Fixes warnings when using the header: + ``` + In file included from gstreamer/subprojects/gst-plugins-base/gst-libs/gst/video/video.h:185, + from XYZ:9001: + gstreamer/subprojects/gst-plugins-base/gst-libs/gst/video/gstvideoaggregator.h:206:78: warning: ISO C does not allow extra ‘;’ outside of a function [-Wpedantic] + 206 | G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstVideoAggregatorConvertPad, gst_object_unref); + | ^ + gstreamer/subprojects/gst-plugins-base/gst-libs/gst/video/gstvideoaggregator.h:214:181: warning: ISO C does not allow extra ‘;’ outside of a function [-Wpedantic] + 214 | G_DECLARE_DERIVABLE_TYPE (GstVideoAggregatorParallelConvertPad, gst_video_aggregator_parallel_convert_pad, GST, VIDEO_AGGREGATOR_PARALLEL_CONVERT_PAD, GstVideoAggregatorConvertPad); + | ^ + ``` + Part-of: + +2022-01-24 12:57:10 +0200 Vivia Nikolaidou + + * gst/audiotestsrc/gstaudiotestsrc.c: + audiotestsrc: Produce a default channel mask if possible + https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/957 + Part-of: + +2021-12-10 20:09:42 +0900 Seungha Yang + + * gst-libs/gst/video/video-converter.c: + video-converter: Fix for broken gamma remap with high bitdepth YUV output + Scale down the matrix before calculating RGB -> YUV matrix + otherwise offset values will be wrong + Fixing pipeline + videotestsrc ! video/x-raw,format=ARGB ! videoconvert gamma-mode=remap ! \ + video/x-raw,format=P010_10LE,colorimetry="bt2020" + Part-of: + +2022-01-23 13:38:37 +0200 Sebastian Dröge + + * gst-libs/gst/video/gstvideodecoder.c: + videodecoder: Fix property description for new properties + Part-of: + +2022-01-19 02:42:35 +0100 Mathieu Duponchelle + + * gst/playback/gstdecodebin2.c: + decodebin2: raise multiqueue max-size-bytes + The earlier size of 2 MB was set back in 2009, it doesn't + seem unreasonable to raise it to 8 MB these days. The use + case at hand is matroskademux containing both a video stream + with a very low amount of compression but no decoding latency, + and a H265 stream. + Part-of: + +2021-12-27 03:35:29 +0900 Seungha Yang + + * gst-libs/gst/video/gstvideodecoder.c: + Revert "videodecoder: Forward hdr-format info downstream" + This reverts commit 9b852181d8a1fa2fb1bf3ba898c6ffa04eea3fd4. + It's leftover commit which should've been reverted as a part of + https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1148 + Part-of: + +2022-01-20 03:17:58 +0900 Seungha Yang + + * tools/gst-play.c: + * tools/meson.build: + tools: gst-play: Enable Windows high-resolution clock + Apply https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/817 + to gst-play as well, especially for better high-framerate + (60fps or higher) video support, because + 15ms default clock precision (actual value is system dependent) + is not sufficient for such scenario. + Part-of: + +2022-01-15 19:03:33 +0100 Tomasz Andrzejak + + * gst-libs/gst/sdp/gstsdpmessage.c: + * tests/check/libs/sdp.c: + Add FEC SDP message test + Part-of: + +2022-01-15 17:02:52 +0100 Tomasz Andrzejak + + * gst-libs/gst/sdp/gstsdpmessage.c: + sdpmessage: fix mapping single char fmtp params + Part-of: + +2022-01-19 11:05:26 +0200 Sebastian Dröge + + * gst-libs/gst/pbutils/codec-utils.c: + codec-utils: Mark various string return values as `nullable` + Part-of: + +2022-01-18 23:17:49 +0000 Tim-Philipp Müller + + * gst-libs/gst/rtp/gstrtphdrext.h: + rtphdrext: increase GstRTPHeaderExtensionClass padding to LARGE + https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/748#note_1223253 + Part-of: + +2022-01-15 10:06:23 +0000 Philippe Normand + + * gst-libs/gst/pbutils/codec-utils.c: + * gst-libs/gst/pbutils/encoding-profile.c: + * gst-libs/gst/pbutils/encoding-target.c: + * gst-libs/gst/pbutils/install-plugins.c: + * gst-libs/gst/pbutils/missing-plugins.c: + * gst-libs/gst/pbutils/pbutils.c: + pbutils: Define one debug category per module + Follow-up of https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1505 + Part-of: + +2022-01-07 18:25:00 +0900 Seungha Yang + + * gst/compositor/compositor.c: + compositor: Always draw if all input buffers are GAP + Otherwise output buffers will contain random scene + (previously rendered or arbitrary initial values) since we don't + draw onto output buffer at all. + Part-of: + +2022-01-06 22:10:18 +0900 Seungha Yang + + * gst-libs/gst/video/gstvideoaggregator.c: + videoaggregator: Don't pass GAP buffer to prepare_frame_start() + Likewise we do check the same condition in prepare_frames_finish(), + ignore GAP buffer (zero size with GST_BUFFER_FLAG_GAP flag) without + any further processing. + Part-of: + +2022-01-13 23:00:41 +0900 Seungha Yang + + * gst/playback/gsturidecodebin.c: + uridecodebin: Fix critical warnings + Don't pass non-GstObject object to there. + Part-of: + +2022-01-09 09:39:32 +0000 Philippe Normand + + * gst-libs/gst/pbutils/codec-utils.c: + pbutils: Simplify h264_caps_structure_get_profile_flags_level a bit + Refactoring, removing one level of indentation from the function. + Part-of: + +2022-01-08 14:57:00 +0000 Philippe Normand + + * gst-libs/gst/pbutils/codec-utils.c: + * tests/check/libs/pbutils.c: + pbutils: H.265 support for gst_codec_utils_caps_get_mime_codec() + The codec_data caps payload is parsed and a MIME codec string is generated + according to the ISO/IEC 14496-15 specification. + Part-of: + +2022-01-08 14:56:06 +0000 Philippe Normand + + * gst-libs/gst/pbutils/codec-utils.c: + * gst-libs/gst/pbutils/encoding-profile.c: + * gst-libs/gst/pbutils/encoding-target.c: + * gst-libs/gst/pbutils/pbutils.c: + * tests/check/libs/pbutils.c: + * tests/check/libs/profile.c: + pbutils: Add a pbutils debug category + Part-of: + +2022-01-07 14:17:46 +0200 Jordan Petridis + + gstglutils: introspection annotations fixups + * gst_gl_ensure_element_data: specify the type for the element arg + * gst_gl_handle_set_context: correctly annotate the display and + gl_ctx as just (out) instead of (inout) + Part-of: + +2022-01-09 14:07:12 +0200 Sebastian Dröge + + * gst-libs/gst/pbutils/codec-utils.c: + codec-utils: Use nullable annotation instead of allow-none for various Opus functions + Part-of: + +2022-01-09 14:05:48 +0200 Sebastian Dröge + + * gst-libs/gst/pbutils/codec-utils.c: + codec-utils: Annotate out parameters for Opus functions as (optional) + Part-of: + +2022-01-09 14:05:11 +0200 Sebastian Dröge + + * gst-libs/gst/pbutils/codec-utils.c: + codec-utils: Add missing annotations to gst_codec_utils_h264_get_profile_flags_level() + And fix some minor typos. + Part-of: + +2022-01-05 02:07:59 +0530 Nirbheek Chauhan + + * docs/meson.build: + * meson.build: + meson: Add explicit check: kwarg to all run_command() calls + This is required since Meson 0.61.0, and causes a warning to be + emitted otherwise: + https://github.com/mesonbuild/meson/commit/2c079d855ed87488bdcc6c5c06f59abdb9b85b6c + https://github.com/mesonbuild/meson/issues/9300 + This exposed a bunch of places where we had broken run_command() + calls, unnecessary run_command() calls, and places where check: true + should be used. + Part-of: + +2021-12-20 21:43:25 +0530 Nirbheek Chauhan + + * gst-libs/gst/audio/gstaudioaggregator.c: + * gst/audioresample/gstaudioresample.c: + audio: Add logging that was useful in figuring out the last commit + Part-of: + +2021-12-20 21:37:18 +0530 Nirbheek Chauhan + + * gst-libs/gst/audio/audio-converter.c: + * gst-libs/gst/audio/audio-resampler.c: + audio-converter: Fix resampling when there's nothing to output + Sometimes we can't output anything because we don't have enough + incoming frames. In that case, the resampler was trying to call + do_quantize() and do_resample() in a loop forever because there would + never be samples to output (so chain->samples would always be NULL). + Fix this by not calling chain->make_func() in a loop -- seems + completely unnecessary since calling it over and over won't change + anything if the make_func() can't output samples. + Also add some checks for the input and / or output being NULL when + doing conversion or quantization. This will happen when we have + nothing to output. + We can't bail early, because we need resampler->samples_avail to be + updated in gst_audio_resampler_resample(), so we must call that and + no-op everything along the way. + Part-of: + +2021-12-16 16:43:37 +0100 Mark Nauwelaerts + + * gst/playback/gsturidecodebin.c: + uridecodebin: use non-floating object as signal argument + ... as was the case with source-setup signal until change of order + in commit 52bca104e447309898ca8904b3914211ec7d4114 + Part-of: + +2021-12-13 16:19:44 +0900 Seungha Yang + + * gst-libs/gst/video/video-info.c: + video-info: Don't assume colorimetry of UHD resolution as BT.2020 + BT.2020 color primaries are designed to cover much wider range of + CIE chromaticity than BT.709, and also it's used for both SDR and HDR + contents. So, the incorrect assumption (i.e., BT.709 as a BT.2020) + is risky and resulting image color tends to be visually very wrong. + Unless there's obvious clue, don't consider color space of high resolution + video stream as BT.2020 + Part-of: + +2021-12-03 01:45:49 +0000 Thibault Saunier + + * gst-libs/gst/meson.build: + * gst-libs/gst/sdp/gstsdpmessage.c: + * gst-libs/gst/sdp/meson.build: + * tests/check/libs/sdp.c: + sdp: Handle level-asymmetry-allowed for H264 streams + The ["level-asymmetry-allowed"] field states that the peer wants the + profile specified in the "profile-level-id" fields but doesn't care + about the level. To express this in GStreamer caps term, we add a + "profile" field in the caps, which reuses the usual "profile" semantics + for H.264 streams and, and remove "profile-level-id" and + "level-asymmetry-allowed" fields. + ["level-asymmetry-allowed"]: https://www.iana.org/assignments/media-types/video/H264 + Part-of: + +2021-11-19 00:09:03 +0100 Thomas Klausner + + * gst/tcp/gstmultifdsink.c: + tcp: fix build on Solaris + Add missing header. + From Claes Nästén via http://gnats.netbsd.org/56509 + Part-of: + +2021-11-16 13:14:25 +0100 Víctor Manuel Jáquez Leal + + * gst/playback/gsturidecodebin3.c: + uridecodebin3: Nullify current item after all play items are freed. + There's a potential race condition with this sort of pipelines on + certain systems (depends on the processing load): + GST_DEBUG_DUMP_DOT_DIR=/tmp \ + gst-launch-1.0 uridecodebin3 uri=file://stream.mp4 ! glupload ! \ + glimagesink --gst-debug=*:4 + Right after the pipeline passes from PAUSED to READY, bin_to_dot_file + dumps uridecodebin3 properties, but current uri and suburi might be + already freed, causing a potential use-after-freed. + This patch makes NULL the current item right after all the play items + are freed. + Part-of: + +2021-11-12 18:26:58 +0530 Nirbheek Chauhan + + * gst-libs/gst/audio/audio-resampler.c: + audio-resampler: Fix segfault when we can't output any frames + Sometimes the resampler has enough space to store all the incoming + samples without outputting anything. When this happens, + gst_audio_resampler_get_out_frames() returns 0. + In that case, the resampler should consume samples and just return. + Otherwise, we get a segfault when gst_audio_resampler_resample() tries + to resample into a NULL 'out' pointer. + Part-of: + +2021-11-11 19:11:25 +0000 Tim-Philipp Müller + + * gst-libs/gst/pbutils/gstpluginsbaseversion.c: + * gst-libs/gst/pbutils/install-plugins.c: + * gst-libs/gst/video/video-frame.c: + * gst-libs/gst/video/videooverlay.c: + docs: fix unnecessary ampersand, < and > escaping in code blocks + Part-of: + +2021-11-09 12:10:50 +0000 Jiri Uncovsky + + * gst-libs/gst/gl/egl/gstglcontext_egl.c: + glcontext/egl: add missing unref + Part-of: + +2021-11-09 12:01:13 +0100 Guillaume Desmottes + + * gst-libs/gst/app/gstappsrc.c: + appsrc: log when segment changes + We were logging when it does not change but not when it does, which is + confusing when reading logs. + Part-of: + +2021-11-03 18:44:03 +0000 Tim-Philipp Müller + + * meson.build: + Back to development + === release 1.19.3 === 2021-11-03 15:43:36 +0000 Tim-Philipp Müller + * ChangeLog: * NEWS: * RELEASE: * gst-plugins-base.doap: diff --git a/subprojects/gst-plugins-good/ChangeLog b/subprojects/gst-plugins-good/ChangeLog index f919423..a9fc458 100644 --- a/subprojects/gst-plugins-good/ChangeLog +++ b/subprojects/gst-plugins-good/ChangeLog @@ -1,7 +1,725 @@ +2022-01-28 15:47:44 +0200 Sebastian Dröge + + * ext/soup/gstsouphttpclientsink.c: + souphttpsink: Protect against spurious wakeups during startup + Part-of: + +2022-01-28 15:33:04 +0200 Sebastian Dröge + + * ext/soup/gstsouphttpclientsink.c: + * ext/soup/gstsouphttpsrc.c: + * ext/soup/gstsouputils.c: + * ext/soup/gstsouputils.h: + souphttpsrc: Don't use the source element after setup from the session thread + The source element might be gone already if the session is shared with + other source elements. + As a consequence, do all logging via the session object instead of using + the source element. + Part-of: + +2022-01-28 15:31:55 +0200 Sebastian Dröge + + * ext/soup/gstsouphttpsrc.c: + souphttpsrc: Don't abort all pending operations on the session if shutting down a source with a shared session + Only do it for a non-shared session. Other sources would otherwise get + their requests cancelled unexpectedly. + Part-of: + +2022-01-28 15:31:25 +0200 Sebastian Dröge + + * ext/soup/gstsouphttpsrc.c: + souphttpsrc: Don't set boolean to FALSE right after checking that it is FALSE + Part-of: + +2022-01-28 15:30:56 +0200 Sebastian Dröge + + * ext/soup/gstsouphttpsrc.c: + souphttpsrc: soup_session_new_with_options() can't fail with NULL + So don't check for it. + Part-of: + +2022-01-27 16:28:48 +0100 Stéphane Cerveau + + * gst/autodetect/gstautodetect.h: + autodetect: fix debug init category + Since the split of elements, the debug category + was default for autodetect. + Part-of: + +2022-01-21 16:09:30 +0100 Daniel Kolesa + + * ext/soup/gstsouphttpsrc.c: + * ext/soup/gstsouphttpsrc.h: + * ext/soup/gstsouploader.c: + * ext/soup/gstsouploader.h: + soup: move libsoup session into its own thread + Starting with libsoup3, there is no attempt to handle thread safety + inside the library, and it was never considered fully safe before + either. Therefore, move all session handling into its own thread. + The libsoup thread has its own context and main loop. When some + request is made or a response needs to be read, an idle source + is created to issue that; the gstreamer thread issuing that waits + for that to be complete. There is a per-src condition variable to + deal with that. + Since the thread/loop needs to be longer-lived than the soup + session itself, a wrapper object is provided to contain them. The + soup session only has a single reference, owned by the wrapper + object. + It is no longer possible to force an external session, since this + does not seem to be used anywhere within gstreamer and would be + tricky to implement; this is because one would not have to provide + just a session, but also the complete thread arrangement made in + the same way as the system currently does internally, in order to + be safe. + Messages are still built gstreamer-side. It is safe to do so until + the message is sent on the session. Headers are also processed on + the gstreamer side, which should likewise be safe. + All requests as well as reads on the libsoup thread are issued + asynchronously. That allows libsoup to schedule things with as + little blocking as possible, and means that concurrent access + to the session is possible, when sharing the session. + Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/947 + Part-of: + +2022-01-27 01:38:39 +0000 Tim-Philipp Müller + + * po/de.po: + * po/fr.po: + * po/ro.po: + gst-plugins-good: update translations + Part-of: + +2022-01-26 11:22:31 +0530 Nirbheek Chauhan + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: Fix critical while serializing timeout element message + The "cause" field wasn't registered as a GEnumValue, so do that. + Fixes this critical in gst_structure_to_string(): + `gst_value_serialize: assertion 'G_IS_VALUE (value)' failed` + Part-of: + +2022-01-24 10:45:33 +0200 Sebastian Dröge + + * gst/multifile/gstsplitmuxsink.c: + splitmuxsink: Warn when calculating the next fragment time in timecode mode fails + But only if timecode mode is enabled as it will fail all the time + otherwise. + Part-of: + +2022-01-25 15:05:47 +0530 Nirbheek Chauhan + + * tests/examples/qt/qmlsink-multisink/videoitem/videoitem.cpp: + qt: Retain compatibility with Qt 5.9 + QSharedPointer.get() was added in Qt 5.11, and it does the same thing + as .data() + https://doc.qt.io/qt-5/qsharedpointer.html#get + Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/867 + Part-of: + +2022-01-21 14:13:12 -0500 Nicolas Dufresne + + * sys/v4l2/ext/types-compat.h: + * sys/v4l2/ext/v4l2-common.h: + * sys/v4l2/ext/v4l2-controls.h: + * sys/v4l2/ext/videodev2.h: + video4linux2: Sync kernel headers against 5.16.0 + Part-of: + +2022-01-17 11:44:47 -0500 Nicolas Dufresne + + * sys/v4l2/gstv4l2videodec.c: + v4l2videdec: Fix race condition between drain and state changes + This is due to an unsafe usage of the pad task. We didn't ensure proper + ownership of the task. That race involved the task being released too early, + and was detected, luckily, by the glib mutex implementationt that + reported the mutex being disposed while being locked. + Part-of: + +2022-01-16 14:41:41 +0000 Philippe Normand + + * ext/soup/gstsoup.c: + * ext/soup/gstsouploader.c: + * ext/soup/gstsouploader.h: + * ext/soup/gstsouputils.h: + * ext/soup/meson.build: + soup: Reintroduce compile-time libsoup dependency for static builds + On Android (especially) and for static builds in general it is safer to link + against libsoup and have the dynamic custom loading disabled. For those cases we + can safely assume the application will use either libsoup2 or libsoup3 and not + both. + Fixes #939 + Part-of: + +2022-01-16 14:40:11 +0000 Philippe Normand + + * ext/soup/gstsoupelement.c: + soup: Initialize debug category before use + Part-of: + +2022-01-16 14:39:42 +0000 Philippe Normand + + * ext/soup/gstsouploader.c: + soup: Fix return types for a couple VTable functions + Part-of: + +2022-01-14 19:53:29 +0530 Nirbheek Chauhan + + * ext/cairo/meson.build: + meson: Build cairo subproject when unavailable on the system + Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/952 + Part-of: + +2022-01-20 17:59:30 +0100 Aleksandar Topic + + * gst/imagefreeze/gstimagefreeze.c: + imagefreeze: Fix example launch line format issue + The currently shown example launch line will not run, because it + cannot handle png images. + Part-of: + +2021-05-07 18:22:06 +0200 Bastien Nocera + + * docs/gst_plugins_cache.json: + * ext/gtk/gstgtkbasesink.c: + * ext/gtk/gstgtkbasesink.h: + * ext/gtk/gtkgstbasewidget.c: + * ext/gtk/gtkgstbasewidget.h: + gtk: Add "video-aspect-ratio-override" property + Allow front-ends to override the pixel aspect ratio found inside the + video file itself, or most likely, missing from the video file. + This is a long-standing feature of totem. + Part-of: + +2021-10-13 15:33:14 +0200 Bastien Nocera + + * ext/gtk/gtkgstbasewidget.c: + gtk: Remove _update_par() forward declaration + No functional changes. + https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1137/diffs#note_1102782 + Part-of: + +2021-10-13 15:38:52 +0200 Bastien Nocera + + * ext/gtk/gtkgstbasewidget.c: + gtk: Mark properties as changeable in the PLAYING state + https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1137#note_1102789 + Part-of: + +2021-05-11 11:28:57 +0200 Bastien Nocera + + * docs/gst_plugins_cache.json: + * ext/gtk/gstgtkbasesink.c: + * ext/gtk/gtkgstbasewidget.c: + gtk: Fix "pixel-aspect-ratio" property range + Fix the arguments passed to gst_param_spec_fraction in the incorrect + order. + Part-of: + +2021-05-07 18:19:55 +0200 Bastien Nocera + + * ext/gtk/gstgtkbasesink.c: + * ext/gtk/gtkgstbasewidget.c: + gtk: Rename display pixel aspect ratio related constants + Part-of: + +2021-05-07 18:16:30 +0200 Bastien Nocera + + * ext/gtk/gtkgstbasewidget.c: + gtk: Make "pixel-aspect-ratio" changes immediate + Schedule a resize when the display's pixel aspect ratio has changed, if + one isn't already scheduled. + Closes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/883 + Part-of: + +2022-01-05 02:07:59 +0530 Nirbheek Chauhan + + * docs/meson.build: + * meson.build: + meson: Add explicit check: kwarg to all run_command() calls + This is required since Meson 0.61.0, and causes a warning to be + emitted otherwise: + https://github.com/mesonbuild/meson/commit/2c079d855ed87488bdcc6c5c06f59abdb9b85b6c + https://github.com/mesonbuild/meson/issues/9300 + This exposed a bunch of places where we had broken run_command() + calls, unnecessary run_command() calls, and places where check: true + should be used. + Part-of: + +2021-12-30 16:31:33 +0000 Heinrich Kruger + + * gst/rtp/gstrtphdrext-colorspace.c: + rtp-hdrext-colorspace: Fix color range encoding + The color space RTP header extension encodes color range as specified in + https://www.webmproject.org/docs/container/#Range. In other words: + 0: Unspecified, + 1: Broadcast Range, + 2: Full range, + 3: Defined by matrix coefficients and transfer characteristic. + This does not match the values of GstVideoColorRange, so it is not + correct to just write the colorimetry.range value to the header + extension. + Part-of: + +2021-12-24 14:52:38 +0900 Jeongki Kim + + * gst/rtp/gstrtpg726depay.c: + rtpg726depay: fix endian conversion + Part-of: + +2021-12-23 14:29:55 +0000 Corentin Damman + + * tests/check/elements/rtpjitterbuffer.c: + rtpjitterbuffer: fix typo in tests + Part-of: + +2021-12-20 09:28:50 +0000 Florian Zwoch + + * ext/aalib/gstaatv.c: + aatv: Fixes for rain-mode + Some rain-mode properties tried to read float from int value. + Initialize rain after setting rain-mode. Rain was non-functional if + width/height were left at default values. + Part-of: + +2021-12-07 23:48:39 +0100 Mathieu Duponchelle + + * docs/gst_plugins_cache.json: + * gst/rtp/gstrtpreddec.c: + * gst/rtp/gstrtpreddec.h: + reddec: implement support for the BUNDLE case + When multiple streams are bundled together, there may be more + than one red payload type to handle. + In addition, as the red decoder works by filling in gaps in + the seqnums, there needs to be one rtp_history queue per sequence + domain. + Part-of: + +2021-12-07 23:43:21 +0100 Mathieu Duponchelle + + * docs/gst_plugins_cache.json: + * gst/rtpmanager/gstrtpbin.c: + rtpbin: add new request-fec-decoder-full signal for BUNDLE + When multiple streams are bundled together, the application needs + to know about the payload type in order to instantiate the appropriate + FEC decoder. + Part-of: + +2021-12-03 02:52:06 +0100 Mathieu Duponchelle + + * gst/rtp/gstrtpredenc.c: + * gst/rtp/gstrtpredenc.h: + * gst/rtp/gstrtpulpfecenc.c: + * gst/rtp/gstrtpulpfecenc.h: + * tests/check/elements/rtpred.c: + rtp/redenc|ulpfecenc: add support for TWCC + In redenc, when input buffers have a header for the TWCC extension, + we now add one to our wrapper buffers. + In ulpfecenc we add one in that case to our protection buffers. + This makes TWCC functional when UlpRed is used in webrtcbin. + Part-of: + +2021-12-02 13:32:33 +0000 Thibault Saunier + + * gst/rtp/gstrtph264pay.c: + * gst/rtp/gstrtph264pay.h: + rtph264pay: Handle 'profile' field + In order to allow "level-asymmetry-allowed" we now handle a new + "profile" field, which as the same semantics as the "profile" field in + H.264 stream so that we can force payloaded stream to have the right + format when using the `gst_sdp_media_get_caps_from_media` to set caps + filter after the payloader. This allows a simple negotiation in standard + RTP negotiation based on SDPs (like webrtc) for that particular case, + closely respecting the specs. + Part-of: + +2021-12-10 16:08:27 +0100 Jakub Adam + + * sys/ximage/gstximagesrc.c: + ximagesrc: avoid blocking wait for X events + XNextEvent() blocks indefinitely in absence of X11 events, which can + prevent the pipeline from stopping. + This can cause problems when ximagesrc is used in "remote desktop" + scenarios and the GStreamer application itself, through which the user + is viewing and controlling the machine, is the only source of input + events. + Replace the call with non-blocking XCheckTypedEvent(). + Part-of: + +2021-12-10 17:36:30 +0100 Célestin Marot + + * gst/multifile/gstmultifilesrc.c: + multifilesrc: fix caps leak + since `gst_caps_replace()` and `gst_pad_set_caps()` both ref the caps and neither of them takes the ownership of the caps -> it must be unreffed in `gst_multi_file_src_set_property()` + to test the leak (on Unix): `echo coucou > /tmp/file.txt && GST_TRACERS=leaks GST_DEBUG="GST_TRACER:7" gst-launch-1.0 multifilesrc location=/tmp/file.txt caps='txt' ! fakesink` + Part-of: + +2021-12-06 15:37:06 +0100 Guillaume Desmottes + + * ext/jpeg/gstjpegdec.c: + jpegdec: only allow conversions from RGB + libjpeg-turbo only supports converting from RGB to other RGB formats. + Fix runtime error when trying to convert from a YUV format for example. + Fix #916 + Part-of: + +2021-11-29 15:35:36 +0100 Wim Taymans + + * sys/v4l2/gstv4l2object.c: + v4l2: handle 0x0 sizes gracefully + Also ignore 0x0 sizes in the fallback case and assume the size can be + anything between 1x1 and MAXxMAX. + This fixes the case where a width=0, height=0 caps are created. Whith + this patch the caps will contain width=[1,MAX], height=[1,MAX]. + Part-of: + +2021-11-23 20:54:57 +0100 Mathieu Duponchelle + + * gst/rtpmanager/gstrtpfunnel.c: + * tests/check/elements/rtpfunnel.c: + rtpfunnel: fix extmap handling on accept-caps + Follow-up on 97d83056b315c56834eaa6776ae4c6a0848b5ef9, only check + for intersection with the current srccaps when checking if a sinkpad + can accept caps. + I must have been lucky in my firefox testing then, and always entered + the code path with audio getting negotiated first, thus not failing + the is_subset check when srccaps had been negotiated as + application/x-rtp, and an accept-caps query was made for the video + caps with a defined extmap. + Part-of: + +2021-11-12 13:54:59 +0100 Jean Felder + + * ext/taglib/gstid3v2mux.cc: + id3v2mux: Map GST_TAG_MUSICBRAINZ_RELEASETRACKID + Part-of: + +2021-11-12 13:51:56 +0100 Jean Felder + + * ext/taglib/gstid3v2mux.cc: + id3v2mux: Map GST_TAG_MUSICBRAINZ_RELEASEGROUPID + Part-of: + +2021-11-18 16:27:17 +0000 Tobias Reineke + + * ext/shout2/gstshout2.c: + shout2: Add compatibility for libshout >= 2.4.2 + In libshout >=2.4.2 shout_open() can return SHOUTERR_RETRY in addition + to SHOUTERR_BUSY. + The nonblocking example in libshout fixes the problem in a similar + way, as mentioned by the author in this issue: + https://gitlab.xiph.org/xiph/icecast-libshout/-/issues/2316 + Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/848 + Part-of: + +2021-11-15 14:39:14 +1100 Matthew Waters + + * ext/qt/qtitem.cc: + qmlglsink: fix another resize case + If qt asks us to redraw before we have both set a buffer and caps we + would attempt to use the new caps with the old buffer which could result + in bad things happening. + Only update caps from new_caps once the buffer has actually been set. + Part-of: + +2021-11-01 10:08:32 +0700 Trung Do + + * sys/v4l2/gstv4l2object.c: + v4l2: Update fmt if padded height is greater than fmt height + If padded height is greater, buffer bytesused could be larger than plane length, + and cause VIDIOC_QBUF failure. + Part-of: + +2021-11-09 19:41:14 +0100 Mathieu Duponchelle + + * gst/rtpmanager/gstrtpfunnel.c: + * tests/check/elements/rtpfunnel.c: + rtpfunnel: don't enforce twcc during upstream negotiation + A previous patch has caused rtpfunnel to output twcc-related + information downstream, however this leaked into upstream + negotiation (through funnel->srccaps), causing payloader to + negotiate twcc caps even when not prompted to do so by the user. + Fix this by only enforcing that upstream sends us application/x-rtp + caps as was the case originally. + Part-of: + +2021-10-30 01:18:18 +0200 Mathieu Duponchelle + + * gst/rtpmanager/rtptwcc.c: + rtptwcc: complete bufferlist fix + When dealing with bufferlists, we need to store one "SentPacket" + structure per buffer, not one per buffer list! + Part-of: + +2021-11-12 17:59:22 +0200 Sebastian Dröge + + * gst/isomp4/qtdemux.c: + qtdemux: Log cslg_shift that was determined + Part-of: + +2021-11-12 13:00:56 +0200 Sebastian Dröge + + * gst/isomp4/qtdemux.c: + qtdemux: Use a composition time offset of 0 for "no decode samples" for the time being + This needs codec-specific handling, but using 0 instead of G_MININT32 at + least gives somewhat reasonable behaviour. + See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/883 + Part-of: + +2021-11-12 12:46:56 +0200 Sebastian Dröge + + * gst/isomp4/qtdemux.c: + qtdemux: Always check ctts for unreasonably large offsets + If this happens then ignore the whole ctts. Previously we only did this + if the PTS/DTS shift was determined from the ctts instead of the cslg. + Part-of: + +2021-11-12 12:39:17 +0200 Sebastian Dröge + + * gst/isomp4/qtdemux_dump.c: + qtdemux: Dump composition time offsets in trun as signed integers + Just like we do for ctts without regard of the version of the box. + Huge offsets are interpreted as negative offsets by qtdemux so this + works. + Part-of: + +2021-11-12 11:36:31 +0200 Sebastian Dröge + + * gst/isomp4/qtdemux.h: + qtdemux: Add a comment why only positive cslg shifts are considered + Part-of: + +2021-11-02 18:38:39 +0200 Sebastian Dröge + + * gst/isomp4/qtdemux.c: + qtdemux: Only adjust segment.stop by cslg_shift if stop is not -1 + Part-of: + +2021-11-02 18:29:53 +0200 Sebastian Dröge + + * gst/isomp4/qtdemux.c: + qtdemux: Handle negative composition offsets in the trun box the same way as for non-fragmented streams + Part-of: + +2021-11-02 17:43:17 +0200 Sebastian Dröge + + * gst/isomp4/qtdemux.c: + qtdemux: Parse ctts version + Negative composition time offsets are only allowed with version 1 of the + box, however we parse it as a signed value also for version 0 boxes as + unfortunately there are such files out there and it's unlikely to have + (valid) huge composition offsets. + Part-of: + +2021-11-02 17:41:01 +0200 Sebastian Dröge + + * gst/isomp4/qtdemux.c: + * gst/isomp4/qtdemux.h: + * gst/isomp4/qtdemux_dump.c: + qtdemux: Add support for version 1 cslg boxes + They use 64 bit fields instead of 32 bit. + Also parse offset as a signed integer (in both versions) and clamp it to + a positive value as negative values don't really interest us here. + Part-of: + +2021-11-02 17:54:46 +0200 Sebastian Dröge + + * gst/isomp4/qtdemux.c: + qtdemux: Don't free cslg data that we don't own on corrupt files + Part-of: + +2021-05-07 10:44:15 +0200 Rafał Dzięgiel + + * gst/matroska/matroska-demux.c: + * gst/matroska/matroska-read-common.c: + matroska: Ref index table when updating track info + Track index table array was being lost during track info update. + Ref it over to updated info, so it can be used for finding + nearest seek points. + Part-of: + +2021-11-12 11:28:23 +0100 Rafał Dzięgiel + + * gst/matroska/ebml-read.c: + * gst/matroska/matroska-demux.c: + * gst/matroska/matroska-ids.c: + * gst/matroska/matroska-read-common.c: + matroska: Use g_array_unref everywhere + Instead of using g_array_free which is not thread safe use g_array_unref instead + Part-of: + +2021-11-11 19:11:25 +0000 Tim-Philipp Müller + + * ext/cairo/gstcairooverlay.c: + * gst/equalizer/gstiirequalizernbands.c: + docs: fix unnecessary ampersand, < and > escaping in code blocks + Part-of: + +2021-11-12 03:17:44 +0100 Mathieu Duponchelle + + * gst/rtpmanager/gstrtpst2022-1-fecdec.c: + st2022-1-fecdec: fix packet trimming + g_sequence_remove_range's end iter is exclusive, so if one + wants to remove that item as well, it should be called with + the next iter. + This could in theory fix an issue where: + * The sequence isn't entirely trimmed, with an old item lingering + * Following FEC packets are immediately discarded because they + arrived later than corresponding media packets, long enough for + seqnums to wrap around + * We now try to reconstruct a media packet with a completely obsolete + FEC packet, chaos ensues. + Part-of: + +2021-11-11 15:49:19 +1100 Matthew Waters + + * ext/qt/qtitem.cc: + qmlsink: support caps changes better + We need to hold onto the last buffer until the next buffer arrives. + Before, if a caps change comes we would remove the currently rendering + buffer. if Qt asks use to render something, we would render the dummy + black texture. + Fixes a period of black output when upstream is e.g. changing resolution + as in hls adaptive bitrate scenarios. + Part-of: + +2021-09-27 16:52:22 +0100 James Cowgill + + * sys/v4l2/gstv4l2bufferpool.c: + * sys/v4l2/gstv4l2bufferpool.h: + v4l2: Record buffer states in pool to fix dequeue race + The `gst_v4l2_buffer_pool_dqbuf` function contains this ominous comment: + /* get our GstBuffer with that index from the pool, if the buffer was + * outstanding we have a serious problem. + */ + outbuf = pool->buffers[group->buffer.index]; + Unfortunately it is common for buffers in _output_ buffer pools to be + both queued and outstanding at the same time. This can happen if the + upstream element keeps a reference to the buffer, or in an encoder + element itself when it keeps a reference to the input buffer for each + frame. + Since the current code doesn't handle this case properly we can end up + with crashes in other elements such as: + (gst-launch-1.0:32559): CRITICAL **: 17:33:35.740: gst_video_frame_map_id: assertion 'GST_IS_BUFFER (buffer)' failed + and: + (gst-launch-1.0:231): GStreamer-CRITICAL **: 00:16:20.882: write map requested on non-writable buffer + Both these crashes are caused by a race condition related to releasing + the same buffer twice from two different threads. If a buffer is queued + and outstanding this situation is possible: + **Thread 1** + - Calls `gst_buffer_unref` decrementing the reference count to zero. + - The core GstBufferPool object marks the buffer non-outstanding. + - Calls the V4L2 release buffer function. + - If the buffer is _not_ queued: + - Release it back to the free pool (containing non-queued buffers). + **Thread 2** + - Dequeues the queued output buffer. + - Marks the buffer as not queued. + - If the buffer is _not_ outstanding: + - Calls the V4L2 release buffer function. + - Release it back to the free pool (containing non-queued buffers). + If both of these threads run at exactly the same time there is a small + window where the buffer is marked both not outstanding and not queued + but before it has been released. In this case the buffer will be freed + twice causing the above crashes. + Unfortunately the variable recording whether a buffer is outstanding is + part of the core `GstBuffer` object and is managed by `GstBufferPool` so + it's not as straightforward as adding a mutex. Instead we can fix this + by additionally recording the buffer state in `GstV4l2BufferPool`, and + handle "internal" and "external" buffer release separately so we can + detect when a buffer becomes not outstanding. + In the new solution: + - The "external" buffer pool release and the "dqbuf" functions + atomically update the buffer state and determine if a buffer is still + queued or outstanding. + - Subsequent code and a new + `gst_v4l2_buffer_pool_complete_release_buffer` function can proceed to + release (or not) a buffer knowing that it's not racing with another + thread. + Part-of: + +2021-11-09 15:10:06 +1100 Matthew Waters + + * gst/rtpmanager/gstrtpbin.c: + rtpbin: separate out the two fec decoder locations + The pipeline flow for receiving looks like this: + rtpsession ! rtpssrcdemux ! session_fec_decoder ! rtpjitterbuffer ! \ + rtpptdemux ! stream_fec_decoder ! ... + There are two places where a fec decoder could be placed. + 1. As requested from the 'request-fec-decoder' signal: after rtpptdemux + for each ssrc/pt produced + 2. after rtpssrcdemux but before rtpjitterbuffer: added for the + rtpst2022-1-fecenc/dec elements, + However, there was some cross-contamination of the elements involved and + the request-fec-decoder signal was also being used to request the fec + decoder for the session_fec_decoder which would then be cached and + re-used for subsequent fec decoder requests. This would cause the same + element to be attempted to be linked to multiple elements in different + places in the pipeline. This would fail and cause all kinds of havoc + usually resulting in a not-linked error being returned upstream and an + error message being posted by the source. + Fix by not using the request-fec-decoder signal for requesting the + session_fec_decoder and instead solely rely on the added properties for + that case. + Part-of: + +2021-11-09 21:20:19 +0800 Zhao, Gang + + * gst/isomp4/qtdemux.c: + qtdemux: Fix can not demux Opus track made by qtmux + Opus stream info is read from dOps box [1]. The offset of dOps box in Opus box is different in mp4a version 1 and 0 [2]. Calculate the offset of dOps box according to mp4a version. + [1] https://opus-codec.org/docs/opus_in_isobmff.html + [2] subprojects/gst-plugins-good/gst/isomp4/atoms.c:sample_entry_mp4a_copy_data:2146 + Fixed: https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/918 + Part-of: + +2021-11-09 13:36:28 +0800 Haihua Hu + + * sys/v4l2/gstv4l2bufferpool.c: + v4l2bufferpool: set video alignment of video meta + need apply video alignment info on video meta, downstream + element can get buffer alignment from video meta + Part-of: + +2021-11-06 16:48:20 +0800 Zhao, Gang + + * ext/vpx/gstvpxdec.c: + vpxdec: Skip check of key frame when open GOP + Valid stream [1] might has no key frame. + Fixed: https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/890 + [1] https://storage.googleapis.com/downloads.webmproject.org/test_data/libvpx/vp90-2-16-intra-only.webm + Part-of: + +2021-10-05 18:07:06 +0100 Joe Todd + + * sys/osxaudio/gstosxcoreaudio.h: + osxaudio: Increase max channels to 64 + Part-of: + +2021-11-05 15:17:20 +0530 Sanchayan Maity + + * gst/imagefreeze/gstimagefreeze.c: + imagefreeze: Only set caps if they do not match current caps + Part-of: + +2021-11-04 16:04:30 +0200 Sebastian Dröge + + * sys/v4l2/v4l2_calls.c: + v4l2: Support bools for setting extra-controls + They're just mapped to 0 / 1 and can already be set as integers, but + being able to set them as booleans seems useful. + Part-of: + +2021-11-03 18:44:03 +0000 Tim-Philipp Müller + + * docs/gst_plugins_cache.json: + * meson.build: + Back to development + === release 1.19.3 === 2021-11-03 15:43:36 +0000 Tim-Philipp Müller + * ChangeLog: * NEWS: * RELEASE: * docs/gst_plugins_cache.json: diff --git a/subprojects/gst-plugins-ugly/ChangeLog b/subprojects/gst-plugins-ugly/ChangeLog index 325edf3..9cb837b 100644 --- a/subprojects/gst-plugins-ugly/ChangeLog +++ b/subprojects/gst-plugins-ugly/ChangeLog @@ -1,7 +1,34 @@ +2022-01-27 01:39:28 +0000 Tim-Philipp Müller + + * po/LINGUAS: + * po/ro.po: + gst-plugins-ugly: update translations + Part-of: + +2022-01-05 02:07:59 +0530 Nirbheek Chauhan + + * docs/meson.build: + * meson.build: + meson: Add explicit check: kwarg to all run_command() calls + This is required since Meson 0.61.0, and causes a warning to be + emitted otherwise: + https://github.com/mesonbuild/meson/commit/2c079d855ed87488bdcc6c5c06f59abdb9b85b6c + https://github.com/mesonbuild/meson/issues/9300 + This exposed a bunch of places where we had broken run_command() + calls, unnecessary run_command() calls, and places where check: true + should be used. + Part-of: + +2021-11-03 18:44:03 +0000 Tim-Philipp Müller + + * meson.build: + Back to development + === release 1.19.3 === 2021-11-03 15:43:36 +0000 Tim-Philipp Müller + * ChangeLog: * NEWS: * RELEASE: * gst-plugins-ugly.doap: diff --git a/subprojects/gst-python/ChangeLog b/subprojects/gst-python/ChangeLog index a4ee944..f88f7b0 100644 --- a/subprojects/gst-python/ChangeLog +++ b/subprojects/gst-python/ChangeLog @@ -1,7 +1,69 @@ +2022-01-26 00:02:49 +0100 Mathieu Duponchelle + + * gi/overrides/GstAudio.py: + * gi/overrides/GstVideo.py: + * gi/overrides/meson.build: + VideoInfo, AudioInfo: fix usage with python bindings + * Expose an actual constructor from caps + * Error out in overrides for code that was using the "manual + allocation" pattern which only worked by chance. Direct + the script writer to the new_from_caps constructor instead. + Fixes https://gitlab.freedesktop.org/gstreamer/gst-python/-/issues/47 + Part-of: + +2022-01-05 02:07:59 +0530 Nirbheek Chauhan + + * meson.build: + * testsuite/meson.build: + meson: Add explicit check: kwarg to all run_command() calls + This is required since Meson 0.61.0, and causes a warning to be + emitted otherwise: + https://github.com/mesonbuild/meson/commit/2c079d855ed87488bdcc6c5c06f59abdb9b85b6c + https://github.com/mesonbuild/meson/issues/9300 + This exposed a bunch of places where we had broken run_command() + calls, unnecessary run_command() calls, and places where check: true + should be used. + Part-of: + +2021-11-16 23:36:10 -0300 Thibault Saunier + + * gi/overrides/gstmodule.c: + python: Avoid treating float as int + Since python 3.10 implicit conversion to integers using `__int__` as + been completely removed (was deprecated behavior in 3.9) so we need + to cleanly handle it now. + See https://gitlab.gnome.org/GNOME/pitivi/-/issues/2589 + Part-of: + +2021-11-15 22:09:28 -0300 Thibault Saunier + + * gi/overrides/Gst.py: + * gi/overrides/GstPbutils.py: + * testsuite/common.py: + gst: Fix license headers and add SPDX + Fixes https://gitlab.freedesktop.org/gstreamer/gst-python/-/issues/57 + Part-of: + +2021-11-10 13:38:04 -0500 Xavier Claessens + + * meson.build: + * meson_options.txt: + gst-python: Add option to disable python plugin + It is not always needed, at least Ubuntu package it separately and don't + install it by default. Also when doing a static build there is an + unavoidable warning otherwise. + Part-of: + +2021-11-03 18:44:03 +0000 Tim-Philipp Müller + + * meson.build: + Back to development + === release 1.19.3 === 2021-11-03 15:43:36 +0000 Tim-Philipp Müller + * ChangeLog: * NEWS: * RELEASE: * gst-python.doap: diff --git a/subprojects/gst-rtsp-server/ChangeLog b/subprojects/gst-rtsp-server/ChangeLog index d86b94d..cb38ffc 100644 --- a/subprojects/gst-rtsp-server/ChangeLog +++ b/subprojects/gst-rtsp-server/ChangeLog @@ -1,7 +1,72 @@ +2022-01-20 17:13:36 -0600 Michael Gruner + + * examples/test-appsrc2.c: + gst-rtsp-server: Fix leak in appsrc2 example + In the need-data appsrc callback, a buffer is pulled from the + appsink. This buffer is then copied so that metadata is writable. + The copy is pushed to the appsrc but it doesn't take ownership + of the buffer so we need to manually unref it. The original buffer + is finally unreffed when the sample is freed. + Part-of: + +2022-01-05 02:07:59 +0530 Nirbheek Chauhan + + * docs/meson.build: + * meson.build: + meson: Add explicit check: kwarg to all run_command() calls + This is required since Meson 0.61.0, and causes a warning to be + emitted otherwise: + https://github.com/mesonbuild/meson/commit/2c079d855ed87488bdcc6c5c06f59abdb9b85b6c + https://github.com/mesonbuild/meson/issues/9300 + This exposed a bunch of places where we had broken run_command() + calls, unnecessary run_command() calls, and places where check: true + should be used. + Part-of: + +2021-12-20 13:03:34 +0100 Fabrice Fontaine + + * gst/rtsp-server/meson.build: + rtsp-server: add gst_dep to gst_rtsp_server_deps + Add gst_dep to gst_rtsp_server_deps, in the context of buildroot, this + will avoid the following build failure, because the correct girdir + location will be retrieved from gstreamer-1.0.pc: + /home/giuliobenetti/autobuild/run/instance-3/output-1/host/riscv32-buildroot-linux-gnu/sysroot/usr/bin/g-ir-compiler gst/rtsp-server/GstRtspServer-1.0.gir --output gst/rtsp-server/GstRtspServer-1.0.typelib --includedir=/usr/share/gir-1.0 + Could not find GIR file 'Gst-1.0.gir'; check XDG_DATA_DIRS or use --includedir + error parsing file gst/rtsp-server/GstRtspServer-1.0.gir: Failed to parse included gir Gst-1.0 + If the above error message is about missing .so libraries, then setting up GIR_EXTRA_LIBS_PATH in the .mk file should help. + Typically like this: PKG_MAKE_ENV += GIR_EXTRA_LIBS_PATH="$(@D)/.libs" + Fixes: + - http://autobuild.buildroot.org/results/04af6b22cfa0cffb6a3109a3b32b27137ad2e0b0 + Part-of: + +2021-12-16 21:04:53 +0100 Mathieu Duponchelle + + * gst/rtsp-server/rtsp-stream.c: + rtsp-stream: fix get_rates raciness + Prior to this patch, we considered that a stream was blocking + whenever a pad probe was triggered for either the RTP pad or + the RTCP pad. + This led to situations where we subsequently unblocked and expected + to find a segment on the RTP pad, which was racy. + Instead, we now only consider that the stream is blocking when + the pad probe for the RTP pad has triggered with a blockable object + (buffer, buffer list, gap event). + The RTCP pad is simply blocked without affecting the state of the + stream otherwise. + Fixes #929 + Part-of: + +2021-11-03 18:44:03 +0000 Tim-Philipp Müller + + * docs/gst_plugins_cache.json: + * meson.build: + Back to development + === release 1.19.3 === 2021-11-03 15:43:36 +0000 Tim-Philipp Müller + * ChangeLog: * NEWS: * RELEASE: * docs/gst_plugins_cache.json: diff --git a/subprojects/gstreamer-vaapi/ChangeLog b/subprojects/gstreamer-vaapi/ChangeLog index 8195146..a3e382f 100644 --- a/subprojects/gstreamer-vaapi/ChangeLog +++ b/subprojects/gstreamer-vaapi/ChangeLog @@ -1,7 +1,79 @@ +2022-01-05 02:07:59 +0530 Nirbheek Chauhan + + * docs/meson.build: + * meson.build: + meson: Add explicit check: kwarg to all run_command() calls + This is required since Meson 0.61.0, and causes a warning to be + emitted otherwise: + https://github.com/mesonbuild/meson/commit/2c079d855ed87488bdcc6c5c06f59abdb9b85b6c + https://github.com/mesonbuild/meson/issues/9300 + This exposed a bunch of places where we had broken run_command() + calls, unnecessary run_command() calls, and places where check: true + should be used. + Part-of: + +2022-01-04 16:19:44 +0800 He Junyan + + * gst-libs/gst/vaapi/gstvaapiprofile.c: + vaapi: av1dec: Use named profiles to replace the numeric ones. + Use named AV1 profiles (i.e., main, high) to replace the old "0" + and "1" profiles. + Part-of: + +2021-12-01 15:36:44 +0100 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapidecodebin.c: + vaapidecodebin: Misc enhancements. + - Use GST_WARNING rather than g_critical + - Replace gst_ghost_pad_new_from_template() with + gst_ghost_pad_new() to avoid using the template. + - Declare extern variable + Part-of: + +2021-12-01 12:26:11 +0100 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: Autogenerate caps template. + vaapidecode is used in vaapidecodebin and it exposes all the + theoretically supported caps, but that slows down autoplug. With this + autplug is negotiated faster, giving more option to decodebin to select + other decoder. + Part-of: + +2021-11-16 17:18:28 +0100 Víctor Manuel Jáquez Leal + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: + vaapi: libs: Use unsized arrays as parameters. + Instead of defining a sized array for function signature, use it + unsized (a pointer alias, basically). In this way clang warning is + silenced: + warning: ‘fill_profiles’ accessing 64 bytes in a region of size 12 [-Wstringop-overflow=] + Part-of: + +2021-11-16 17:21:52 +0100 Víctor Manuel Jáquez Leal + + * meson.build: + vaapi: meson: Fail if static build. + And initialize the plugin array. + Part-of: + +2021-11-15 16:38:34 +0800 Ung, Teng En + + * gst/vaapi/gstvaapipostproc.c: + vaapipostproc: fix mising metadata when using system + Part-of: + +2021-11-03 18:44:03 +0000 Tim-Philipp Müller + + * meson.build: + Back to development + === release 1.19.3 === 2021-11-03 15:43:36 +0000 Tim-Philipp Müller + * ChangeLog: * NEWS: * RELEASE: * gstreamer-vaapi.doap: diff --git a/subprojects/gstreamer/ChangeLog b/subprojects/gstreamer/ChangeLog index 86b232a..2d4c2dc 100644 --- a/subprojects/gstreamer/ChangeLog +++ b/subprojects/gstreamer/ChangeLog @@ -1,7 +1,246 @@ +2021-12-23 00:24:03 +0100 Mathieu Duponchelle + + * libs/gst/base/gstaggregator.c: + aggregator: don't forward reconfigure events + Those will cause us to renegotiate at the next aggregate cycle, + and while at that point we may decide to reconfigure upstream + branches (in practice we don't as this is inherently racy, + and that's the reason why mixer subclasses perform conversion + internally), we certainly don't want to just forward the event + willy-nilly to all our sinkpads. + An actual issue this is fixing is when caps downstream of a + compositor are changed at every samples-selected signal emission, + for the purpose of interpolating the output geometry, and the + compositor has a non-zero latency, the reconfigure events were + forwarded to basesrc, which triggered an allocation query, which + in turn caused aggregator to have to drain (thus not being able + to queue frames), leading to disastrous effects + (choppy output as compositor couldn't consume frames fast enough, + the higher the latency the choppier the output) + Part-of: + +2022-01-27 01:37:18 +0000 Tim-Philipp Müller + + * po/LINGUAS: + * po/de.po: + * po/fr.po: + * po/ro.po: + gstreamer: update translations + Part-of: + +2022-01-26 02:46:49 +0900 Seungha Yang + + * gst/gstplugin.c: + gstplugin: Fix for UWP build + SetThreadErrorMode() API is available on UWP but flag values + are desktop API only. Since error dialogs don't exist on UWP, + we don't need to suppress it + Part-of: + +2022-01-20 10:59:56 +0200 Sebastian Dröge + + * gst/gstcapsfeatures.c: + gstreamer: capsfeatures: Fix docs of `gst_caps_features_new_single()` + They were just a copy of the `new_any()` docs before. + Part-of: + +2022-01-19 20:58:36 +0530 Nirbheek Chauhan + + * gst/gstplugin.c: + gstplugin: Better warnings on plugin load failure on Windows + It is an extremely common mistake on Windows to have incorrect PATH + values when loading a plugin, and the error from g_module_error() + (which just calls FormatMessageW()) is very confusing in this case: + The specified module could not be found. + https://docs.microsoft.com/en-us/windows/win32/debug/system-error-codes--0-499-#ERROR_MOD_NOT_FOUND + It implies the plugin itself could not be found. The actual issue is + that a DLL dependency could not be found. We need to detect this case + and print a more useful error message. + We should still print the error fetched from FormatMessage() so that + people are able to google for it. + Part-of: + +2022-01-14 04:45:08 +0900 Seungha Yang + + * gst/gstpluginfeature.c: + pluginfeature: Fix object leak + Need to release GstPluginFeature object after use + Part-of: + +2022-01-05 02:07:59 +0530 Nirbheek Chauhan + + * docs/meson.build: + * gst/parse/meson.build: + * meson.build: + meson: Add explicit check: kwarg to all run_command() calls + This is required since Meson 0.61.0, and causes a warning to be + emitted otherwise: + https://github.com/mesonbuild/meson/commit/2c079d855ed87488bdcc6c5c06f59abdb9b85b6c + https://github.com/mesonbuild/meson/issues/9300 + This exposed a bunch of places where we had broken run_command() + calls, unnecessary run_command() calls, and places where check: true + should be used. + Part-of: + +2021-12-20 21:43:25 +0530 Nirbheek Chauhan + + * libs/gst/base/gstaggregator.c: + audio: Add logging that was useful in figuring out the last commit + Part-of: + +2021-12-08 12:27:04 +0100 Corentin Noël + + * gst/gstelementfactory.c: + elementfactory: Annotate create_full and make_full to take arrays + We need the array annotation for it to be usable from the introspection side. + Part-of: + +2018-04-25 14:30:51 +0200 Danny Smith + + * libs/gst/net/gstnetclientclock.c: + gstnetclockclient: signal lost sync if remote time resets + When detecting the remote time has been reset which may occur if remote + device providing the clock server has been power reset, then clock is + no longer synced. Setting clock state will trigger a signal to client + informing on sync lost making it possibility to take appropriate action. + Part-of: + +2021-11-26 10:13:08 +0100 Corentin Noël + + * libs/gst/base/gstbasesink.h: + basesink: Add missing annotations + Part-of: + +2021-11-26 10:12:50 +0100 Corentin Noël + + * libs/gst/base/gstpushsrc.h: + pushsrc: Add missing annotations + Part-of: + +2021-11-26 10:12:32 +0100 Corentin Noël + + * libs/gst/base/gstbitwriter.c: + bitwriter: Add missing annotations + Part-of: + +2021-11-26 10:11:53 +0100 Corentin Noël + + * libs/gst/base/gstbaseparse.c: + * libs/gst/base/gstbaseparse.h: + baseparse: Add missing annotations + Part-of: + +2021-11-23 08:08:36 +0100 Corentin Noël + + * libs/gst/base/gstbasesrc.h: + basesrc: Add annotation to virtual methods with (out) parameters + This allows to actually use these virtual methods from the GObject introspection. + Part-of: + +2021-10-21 19:04:43 +0900 Seungha Yang + + * docs/gst-hotdoc-plugins-scanner.c: + * gst/gstelement.c: + * gst/gstelementfactory.c: + * gst/gstelementfactory.h: + gst: Add APIs to allow documentation for element to be skipped + Dynamically registered elements (hardware element in most cases) + may or may not be available on a system and properties may be different + per system. + This new API will make documentation skipping possible in programmable way. + Part-of: + +2021-11-16 18:05:09 +0200 Sebastian Dröge + + * gst/gstinfo.c: + * gst/gstinfo.h: + gstinfo: Add gst_debug_log_literal() function + This takes a plain message string and not a format string, and as a + result doesn't have to be passed through vasprintf() and lead to further + unnecessary allocations. It can also contain literal `%` because of + that. + The new function is mostly useful for bindings that would have to pass a + full string to GStreamer anyway and would do formatting themselves with + language-specific functionality. + Part-of: + +2021-11-15 11:04:25 +0100 Daniel Knobe + + * gst/gstcaps.c: + caps: fix type of return value if string is null in gst_caps_from_string + Part-of: + +2021-11-11 19:11:25 +0000 Tim-Philipp Müller + + * gst/gst.c: + * gst/gstelementfactory.c: + * gst/gstinfo.c: + * gst/gstiterator.c: + * gst/gstmessage.c: + * gst/gstpadtemplate.c: + * gst/gstquery.c: + * gst/gsttypefindfactory.c: + * libs/gst/base/gstbasesink.c: + * libs/gst/base/gstbasesrc.c: + docs: fix unnecessary ampersand, < and > escaping in code blocks + Part-of: + +2021-11-08 15:28:06 +0200 Sebastian Dröge + + * gst/gstbin.c: + bin: Don't check twice for adding a bin to itself or removing it from itself + This is already covered by a `g_return_val_if_fail()` in the calling + function. + Part-of: + +2021-11-08 15:30:18 +0200 Sebastian Dröge + + * gst/gstbin.c: + bin: Switch `g_warning()`s to `GST_WARNING_OBJECT()`s when adding/removing an element to a bin fails + The failure conditions can be overidden by subclasses, and a boolean + return value is provided to the caller whether adding/removing the child + element has actually worked. The caller can then handle this + accordingly but flooding stderr with this is not very useful. + Part-of: + +2021-09-24 08:19:51 -0400 Nicolas Dufresne + + * gst/gstinfo.c: + gstinfo: Fix leak in generate_backtrace_trace + Spotted by Laurent Pinchart. + Part-of: + +2021-11-04 13:24:57 +0530 Nirbheek Chauhan + + * libs/gst/helpers/gst-ptp-helper.c: + gst-ptp-helper: Do not disable multicast loopback + Otherwise we cannot run gst-ptp-helper if the PTP master is on the + same device. + Part-of: + +2021-11-04 09:30:31 +0000 Marcin Kolny + + * plugins/elements/gsttypefindelement.c: + typefind: fix reading file extension from URI + Currently reading extension relies on the fact that everything after the + last"." character is a file extension. Whereas that works fine for most + of the cases, it breaks when the URI contains a query part. + E.g.: `http://url.com/file.mp4?param=value` returns `mp4?param=value` + instead of `mp4`. + In this commit we use URI parser to read the path of the URI (in the example + above, that is `/file.mp4`) and read extension from that path. + Part-of: + +2021-11-03 18:44:03 +0000 Tim-Philipp Müller + + * meson.build: + Back to development + === release 1.19.3 === 2021-11-03 15:43:36 +0000 Tim-Philipp Müller + * ChangeLog: * NEWS: * RELEASE: * gstreamer.doap: