diff --git a/subprojects/gst-devtools/ChangeLog b/subprojects/gst-devtools/ChangeLog index 5a20bc621b..ffba6b4ab5 100644 --- a/subprojects/gst-devtools/ChangeLog +++ b/subprojects/gst-devtools/ChangeLog @@ -1,7 +1,22 @@ +2022-06-29 10:55:13 +0100 Tim-Philipp Müller + + * meson.build: + coding style: allow declarations after statement + See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1243/ + and https://gitlab.freedesktop.org/gstreamer/gstreamer-project/-/issues/78 + Part-of: + +2022-06-16 00:59:00 +0100 Tim-Philipp Müller + + * meson.build: + Back to development + Part-of: + === release 1.20.3 === 2022-06-15 23:36:18 +0100 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 23a53fa6c0..a714e40610 100644 --- a/subprojects/gst-editing-services/ChangeLog +++ b/subprojects/gst-editing-services/ChangeLog @@ -1,7 +1,44 @@ +2022-03-28 13:47:52 +0200 Stéphane Cerveau + + * tools/utils.c: + ges: remove memory leak with description + free the capsdesc + Part-of: + +2022-03-28 13:20:40 +0200 Stéphane Cerveau + + * plugins/nle/nlecomposition.c: + nle: clear seek event properly + Use gst_clear_event instead of g_clear_object + avoiding a failing gobject unref + Part-of: + +2022-06-29 10:55:13 +0100 Tim-Philipp Müller + + * meson.build: + coding style: allow declarations after statement + See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1243/ + and https://gitlab.freedesktop.org/gstreamer/gstreamer-project/-/issues/78 + Part-of: + +2022-06-16 22:40:21 +0200 Mathieu Duponchelle + + * ges/gstframepositioner.c: + ges/gstframepositioner: don't create one compositor per frame meta + Instead, cache the looked up operator property + Part-of: + +2022-06-16 00:59:00 +0100 Tim-Philipp Müller + + * meson.build: + Back to development + Part-of: + === release 1.20.3 === 2022-06-15 23:36:18 +0100 Tim-Philipp Müller + * ChangeLog: * NEWS: * RELEASE: * gst-editing-services.doap: diff --git a/subprojects/gst-libav/ChangeLog b/subprojects/gst-libav/ChangeLog index 929bf72474..e2a77b412c 100644 --- a/subprojects/gst-libav/ChangeLog +++ b/subprojects/gst-libav/ChangeLog @@ -1,7 +1,52 @@ +2022-10-04 21:27:36 +0200 Mathieu Duponchelle + + * ext/libav/gstavauddec.c: + avauddec: address regression with WMA files .. + By outputting lead-in samples that FFmpeg now would like us to ignore, + and discarding trailing samples that it would now like us to output. + See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1474 + Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1348 + Part-of: + +2022-09-29 12:42:21 +0100 Tim-Philipp Müller + + * ext/libav/gstavauddec.c: + avauddec: fix unnecessary reconfiguration if the audio layout isn't specified + It would constantly want to renegotiate (and spam the debug log) even + though the channel layout hasn't actually changed. We use the same + fallback in gst_ffmpegauddec_negotiate() already. + This happens with WMA files for example. + Part-of: + +2022-07-07 22:16:30 +0900 Seungha Yang + + * ext/libav/gstavcfg.c: + libav: Fix for APNG encoder property registration + The AVClass name of Animated PNG in FFmpeg 5.x is "(A)PNG" + and it will be converted to "-a-png" through + g_ascii_strdown() and g_strcanon(). But GLib disallow leading '-' + character for a GType name. Strip leading '-' to workaround it. + Part-of: + +2022-06-29 10:55:13 +0100 Tim-Philipp Müller + + * meson.build: + coding style: allow declarations after statement + See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1243/ + and https://gitlab.freedesktop.org/gstreamer/gstreamer-project/-/issues/78 + Part-of: + +2022-06-16 00:59:00 +0100 Tim-Philipp Müller + + * meson.build: + Back to development + Part-of: + === release 1.20.3 === 2022-06-15 23:36:18 +0100 Tim-Philipp Müller + * ChangeLog: * NEWS: * RELEASE: * gst-libav.doap: diff --git a/subprojects/gst-omx/ChangeLog b/subprojects/gst-omx/ChangeLog index eb314898f9..1708213e45 100644 --- a/subprojects/gst-omx/ChangeLog +++ b/subprojects/gst-omx/ChangeLog @@ -1,7 +1,22 @@ +2022-06-29 10:55:13 +0100 Tim-Philipp Müller + + * meson.build: + coding style: allow declarations after statement + See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1243/ + and https://gitlab.freedesktop.org/gstreamer/gstreamer-project/-/issues/78 + Part-of: + +2022-06-16 00:59:00 +0100 Tim-Philipp Müller + + * meson.build: + Back to development + Part-of: + === release 1.20.3 === 2022-06-15 23:36:18 +0100 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 3874ef7b39..05d87cec91 100644 --- a/subprojects/gst-plugins-bad/ChangeLog +++ b/subprojects/gst-plugins-bad/ChangeLog @@ -1,7 +1,372 @@ +2022-08-08 23:37:11 +0900 Seungha Yang + + * gst/mxf/mxfaes-bwf.c: + mxfdemux: Always calculate BlockAlign of raw audio + Workaround for nBlockAlign and nBitsPerSample mismatch. Always + use the formula described in the specification for BlockAlign value + Part-of: + +2022-09-14 00:58:37 +0900 Seungha Yang + + * sys/nvcodec/gstnvdec.c: + nvdec: Fix for HEVC decoding when coded resolution is larger than display resolution + As documented in the SDK header, we should set coded width/height + values to the corresponding decoder configuration option, + instead of display resolution + Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1438 + Part-of: + +2022-09-22 22:39:31 +0900 Sangchul Lee + + * ext/webrtc/gstwebrtcbin.c: + webrtcbin: Fix pointer dereference before null check + Part-of: + +2022-10-05 15:59:03 +0900 Sangchul Lee + + * ext/webrtc/gstwebrtcice.c: + webrtc/nice: Make sure to return NULL when validating turn server fails + It affects 'add-turn-server' signal action and 'turn-server' property + of webrtcbin. + Part-of: + +2022-09-20 23:31:45 +0300 Mart Raudsepp + + * gst/mpegtsdemux/mpegtsbase.c: + tsdemux: Don't trigger a program change when falling back to ignore-pcr behaviour + Since commit a79a756b79aa1675e we could change to ignore-pcr automatically at 500ms + into a live stream when no PCR is seen by then. However the stream counting in + program change detection was wrongly considering ignore-pcr programs to have a + separate PCR PID, even though we are actually ignoring the PCR PID completely, + resulting in an erroneous program switch getting triggered from the different + stream count. This in turn would send an EOS and switch out the pads for what + actually is still the same program, while we intended to simply apply a + workaround for broken encoders. + Part-of: + +2022-03-25 14:25:02 +1100 Andrew Pritchard + + * sys/androidmedia/jni/gstamcsurfacetexture-jni.c: + Fix GstAmcSurfaceTexture segfault Check that `self` and `self->callback` are defined. `self` can be set to `NULL` in `remove_listener`, and `self->callback` can be set to `NULL` inside `gst_amc_surface_texture_jni_set_on_frame_available_callback`. This can cause a segfault since the Java object can outlive the C object, and call the callback after `remove_listener` is called. + Part-of: + +2022-08-25 14:24:25 +0200 Piotr Brzeziński + + * sys/applemedia/avfvideosrc.m: + avfvideosrc: Fix wrong default framerate value + Current default G_MAXINT is not a correct value under any circumstances. + This creates an issue with screen capture, during which we currently do + not get any framerate info causing G_MAXINT to show up, where elements + downstream can possibly misbehave - for example, `vtenc` causes + a kernel panic. + Replace with 30/1 to avoid such scenarios. + Part-of: + +2022-08-20 16:15:15 +0100 Philippe Normand + + * ext/openh264/gstopenh264dec.cpp: + * ext/openh264/gstopenh264enc.cpp: + openh264: Register debug categories earlier + Otherwise the GST_ERROR message logged in case of ABI mismatch would be done on + an uninitialized category. + Part-of: + +2022-08-20 16:57:27 +0100 Philippe Normand + + * ext/openh264/gstopenh264enc.cpp: + openh264enc: Fix constrained-high encoding + constrained-high is high without B-frames, there is no EProfileIdc for this, so + assume high instead of hitting an assert down the line. + Part-of: + +2022-08-14 22:31:29 -0400 Daniel Morin + + * gst-libs/gst/play/gstplay-media-info.h: + * gst-libs/gst/play/gstplay-signal-adapter.h: + * gst-libs/gst/play/gstplay-video-overlay-video-renderer.h: + * gst-libs/gst/play/gstplay-video-renderer.h: + * gst-libs/gst/play/gstplay-visualization.h: + gst-play: missing cleanup for g_autoptr + Without this change cleanup function for g_autoptr is not defined for + GstPlayMediaInfo, GstPlaySignalAdapter, GstPlayVideoRenderer, + GstPlayVideoOverlayVideoRenderer and GstPlayVisualization. Cleanup + function was defined in gstplay.h, but missing in other header files. + Part-of: + +2022-08-13 12:24:37 +0300 Sebastian Dröge + + * gst-libs/gst/player/gstplayer-media-info.c: + player: Don't leak wrapped video info + Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1373 + Part-of: + +2022-08-13 11:50:20 +0300 Sebastian Dröge + + * gst-libs/gst/play/gstplay.c: + play: Make ownership of video-sink clearer in combination with floating references + And correctly handle the case of VideoRenderer::create_video_sink() not + actually returning a floating reference, which might be tricky for some + bindings. + Part-of: + +2022-08-13 11:49:08 +0300 Sebastian Dröge + + * gst-libs/gst/play/gstplay.c: + play: Fix object construction + Ideally new() functions should simply call g_object_new() and not much + else, so let's do that here and handle all the construction properly in + a GObject way. + Now a play object created via g_object_new() is actually usable. + Part-of: + +2022-08-13 11:39:59 +0300 Sebastian Dröge + + * gst-libs/gst/player/gstplayer.c: + player: Fix object construction + Ideally new() functions should simply call g_object_new() and not much + else, so let's do that here and handle all the construction properly in + a GObject way. + Now a player object created via g_object_new() is actually usable. + In addition, also fix the video-renderer property so that reading it + returns an object of the correct type. + Part-of: + +2022-08-13 11:30:35 +0300 Sebastian Dröge + + * gst-libs/gst/player/gstplayer.c: + player: Release signal adapter on finalize + Part-of: + +2022-08-12 18:24:41 +0300 Matthias Clasen + + * gst-libs/gst/player/gstplayer.c: + gstplayer: Plug a memory leak + This was showing up as a memory leak in GTK's + gstreamer media backend: + 40 bytes in 1 blocks are definitely lost in loss record 18,487 of 40,868 + at 0x484586F: malloc (vg_replace_malloc.c:381) + by 0x50D5278: g_malloc (gmem.c:125) + by 0x50EDBA5: g_slice_alloc (gslice.c:1072) + by 0x50EFBCC: g_slice_alloc0 (gslice.c:1098) + by 0x51F2F45: g_type_create_instance (gtype.c:1911) + by 0x51DAE37: g_object_new_internal (gobject.c:2011) + by 0x51DC080: g_object_new_with_properties (gobject.c:2181) + by 0x51DCB20: g_object_new (gobject.c:1821) + by 0x9855F86: UnknownInlinedFun (gstplayer-wrapped-video-renderer.c:109) + by 0x9855F86: gst_player_new (gstplayer.c:579) + Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1374 + Part-of: + +2022-07-30 02:29:49 +0530 Nirbheek Chauhan + + * ext/sctp/usrsctp/meson.build: + meson: Don't pass -Werror to vendored code + Do it the correct way with libusrsctp -- override the option so that + it's done in a compiler-agnostic and future-proof way. + Part-of: + +2022-05-25 18:40:30 +0530 Nirbheek Chauhan + + * gst/rtmp2/gstrtmp2locationhandler.c: + * gst/rtmp2/rtmp/rtmpclient.c: + rtsp+rtmp: Forward warning added to tls-validation-flags to our users + With the 2.72 release, glib-networking developers have decided that + TLS certificate validation cannot be implemented correctly by them, so + they've deprecated it. + In a nutshell: a cert can have several validation errors, but there + are no guarantees that the TLS backend will return all those errors, + and things are made even more complicated by the fact that the list of + errors might refer to certs that are added for backwards-compat and + won't actually be used by the TLS library. + Our best option is to ignore the deprecation and pass the warning onto + users so they can make an appropriate security decision regarding + this. + We can't deprecate the tls-validation-flags property because it is + very useful when connecting to RTSP cameras that will never get + updates to fix certificate errors. + Relevant upstream merge requests / issues: + https://gitlab.gnome.org/GNOME/glib/-/merge_requests/2214 + https://gitlab.gnome.org/GNOME/glib-networking/-/issues/179 + https://gitlab.gnome.org/GNOME/glib-networking/-/merge_requests/193 + Part-of: + +2022-05-25 16:03:22 +0530 Nirbheek Chauhan + + * ext/dtls/gstdtlscertificate.c: + dtls: Disable OpenSSL 3.0 deprecation warnings for now + Fedora 36 ships with OpenSSL 3.0, which deprecates all low-level APIs, + so this code needs to be rewritten. There is no easy fix in the + porting guide, and it recommends disabling the warnings if you can't + use the high-level API. + https://wiki.openssl.org/index.php/OpenSSL_3.0#Upgrading_to_OpenSSL_3.0_from_OpenSSL_1.1.1 + Here's the replacement API: + https://www.openssl.org/docs/man3.0/man7/migration_guide.html#Deprecated-low-level-object-creation + Part-of: + +2022-07-29 02:36:40 +0900 Seungha Yang + + * sys/wasapi2/gstwasapi2ringbuffer.cpp: + wasapi2: Fix initial mute/volume setting + Fix up volume/mute change flag setting + Part-of: + +2022-07-21 16:11:03 +0300 Sebastian Dröge + + * gst/audiobuffersplit/gstaudiobuffersplit.c: + audiobuffersplit: Actually store number of samples to drop in gapless mode + Part-of: + +2022-07-21 16:10:18 +0300 Sebastian Dröge + + * gst/audiobuffersplit/gstaudiobuffersplit.c: + audiobuffersplit: Use input running time for comparison instead of the currently tracked running time + Otherwise gapless mode would do completely wrong calculations on + discontinuities and cause input/output to drift slowly. + Part-of: + +2022-07-21 13:38:22 +0300 Sebastian Dröge + + * gst/audiobuffersplit/gstaudiobuffersplit.c: + audiobuffersplit: Combine two if expressions to reduce indentation + Part-of: + +2022-07-06 16:14:13 +0300 Jordan Petridis + + * ext/openmpt/gstopenmptdec.c: + openmpt: update from now deprecated api + https://lib.openmpt.org/doc/classopenmpt_1_1module.html#ab2695af0baa274054f5687741fa7c05b + Part-of: + +2022-06-30 11:04:29 +0200 Ignazio Pillai + + * sys/wasapi/gstwasapiutil.c: + wasapi: Implement default audio channel mask + Some multichannel capture devices does not provide a channel mask value + which will result in a pipeline failure due to the empty channel mask. + Implemented the same fix used for wasapi2 + Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1204 + Part-of: + +2022-07-07 02:17:56 +0900 Seungha Yang + + * gst/proxy/gstproxysink.c: + proxysink: Fix GstProxySrc leak + Clear weak pointer to peer src when disposing. + Part-of: + +2022-07-06 03:14:25 +0900 Seungha Yang + + * gst/proxy/gstproxysink.c: + * gst/proxy/gstproxysink.h: + * tests/check/elements/proxysink.c: + * tests/check/meson.build: + proxysink: Make sure stream-start and caps events are forwarded + There might be a sequence of event and buffer flow: + - Got stream-start/caps/segment events + - Got flush events + - And then buffers with a new segment event + In the above case, stream-start and caps event might not be reached to + peer proxysrc if peer proxysrc is not ready to receive them. + Part-of: + +2022-06-30 09:09:02 +0300 Sebastian Dröge + + * ext/webrtc/gstwebrtcbin.c: + webrtcbin: Reject caps that are not valid for creating an SDP media. + Part-of: + +2022-06-29 10:55:13 +0100 Tim-Philipp Müller + + * meson.build: + coding style: allow declarations after statement + See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1243/ + and https://gitlab.freedesktop.org/gstreamer/gstreamer-project/-/issues/78 + Part-of: + +2022-06-28 17:40:56 +0900 Seungha Yang + + * sys/d3d11/gstd3d11videosink.cpp: + d3d11videosink: Fix for force-aspect-ratio setting when rendering on shared texture + Set specified force-aspect-ratio value on window object + in case of shared texture rendering as well + Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1304 + Part-of: + +2022-06-25 19:50:10 +0100 Tim-Philipp Müller + + * tests/check/meson.build: + tests: skip unit tests for dependency-less elements that have been disabled + Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1136 + Part-of: + +2022-06-28 01:29:06 +0100 Tim-Philipp Müller + + * ext/opus/gstopusheader.h: + dv, opusparse: fix duplicate symbols in static build + Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1262 + Part-of: + +2022-06-23 14:31:10 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvaallocator.c: + va: allocator: Use always lseek to get dmabuf size. + Gallium drivers historically have reported strange dmabuf sizes, from always + zero to the whole frame (multiple fds). The simplest solution is to use lseek + SEEK_END to get the prime descriptor size. + Also the allocator raises a warning if both values differ in order to report + it to driver. + Part-of: + +2022-06-08 09:02:52 -0400 Nicolas Dufresne + + * sys/va/gstvaallocator.c: + va: allocator: Fix translation of VADRMPRIMESurfaceDescriptor + VADRMPRIMESurfaceDescriptor structure describes the offsets from the + point of view of the specific handle (DMABuf). While GstVideoInfo + (and the meta) describes offsets from the point of the view of the + GstBuffer, an aggregate of all the GstMemory (1 per handle). + This changes combined with [Mesa Fix](https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16813) + fixes decoding failure with AMD driver. + Fixes #1223 + Part-of: + +2022-03-24 21:39:30 +0800 He Junyan + + * sys/va/gstvah265dec.c: + va: h265dec: Fix a crash because of missing reference frame. + Some problematic H265 stream may miss the reference frame in the DPB, + and get some message like: "No short term reference picture for xxx". + So there may be empty entries in ref_pic_list0/1 when passing to + decode_slice() function of sub class. We need to check the NULL pointer. + Part-of: + +2022-06-18 04:05:53 +0900 Seungha Yang + + * sys/d3d11/gstd3d11decoder.h: + d3d11decoder: Check 16K resolution support + 16K decoding is supported by some GPUs + Part-of: + +2022-06-15 15:06:20 -0400 Olivier Crête + + * ext/webrtc/gstwebrtcbin.c: + webrtcbin: Limit sink query to sink pads + This allows the reception of streams that don't exactly match + the codec preferences. In particular, the ssrc in the codec preferences + is local sender SSRC, the other side is expected to send a different SSRC. + Part-of: + +2022-06-16 00:59:00 +0100 Tim-Philipp Müller + + * meson.build: + Back to development + Part-of: + === release 1.20.3 === 2022-06-15 23:36:18 +0100 Tim-Philipp Müller + * ChangeLog: * NEWS: * RELEASE: * gst-plugins-bad.doap: diff --git a/subprojects/gst-plugins-base/ChangeLog b/subprojects/gst-plugins-base/ChangeLog index 8ab20ec4ed..753a4b2e4b 100644 --- a/subprojects/gst-plugins-base/ChangeLog +++ b/subprojects/gst-plugins-base/ChangeLog @@ -1,7 +1,359 @@ +2022-10-01 04:51:21 +1000 Jan Schmidt + + * sys/xvimage/xvimageallocator.c: + xvimagesink: Don't leak XvShmImage + If allocating an XvShmImage generates an X error, but + still returns some allocated memory, make sure to free it + so it doesn't leak. + Part-of: + +2022-10-01 04:41:06 +1000 Jan Schmidt + + * gst/playback/gstdecodebin3.c: + decodebin3: Make sure event is writable before modifying + Make sure we're operating on a private copy of an event when + modifying it. + Part-of: + +2022-10-01 04:40:09 +1000 Jan Schmidt + + * gst/playback/gsturisourcebin.c: + urisourcebin: Make sure event is writable before modifying. + Make sure we're operating on a private copy of an event before + modifying it. + Part-of: + +2022-10-01 04:37:05 +1000 Jan Schmidt + + * gst/playback/gstdecodebin3.c: + decodebin3: Don't lose a ref on EOS event + Make sure not to give away the ref on the final EOS + event for which the probe handler is returning GST_PAD_PROBE_REMOVE + when pushing the event manually. + Part-of: + +2022-10-06 13:03:26 +0200 Aleksandr Slobodeniuk + + * gst/playback/gstdecodebin3.c: + decodebin3: fix mutex leaks + Part-of: + +2022-10-01 02:33:49 +1000 Jan Schmidt + + * gst/playback/gstplaysink.c: + * gst/playback/gstplaysinkaudioconvert.c: + * gst/playback/gstplaysinkaudioconvert.h: + playsink: Hold a reference to the soft volume element + Always hold a reference to the soft volume element + provided by the playsinkaudioconvert bin helper, the + same as when volume is provided by a sink element, + or the soft volume element gets unreffed too soon. + Part-of: + +2022-09-30 00:07:07 +0100 Tim-Philipp Müller + + * gst-libs/gst/pbutils/descriptions.c: + * tests/check/libs/pbutils.c: + pbutils: descriptions: fix gst_pb_utils_get_caps_description_flags() + And add a little unit test. + Part-of: + +2022-09-29 09:39:15 +0100 James Cowgill + + * gst-libs/gst/tag/gstxmptag.c: + xmptag: Call gst_tag_register_musicbrainz_tags during init + We need to call this to register the MusixBrainz tags before we use + them in an XMP schema. + Fixes this critical when attempting to run jpegparse on a JPEG + containing MusicBrainz XMP tags: + GStreamer-CRITICAL **: 20:41:07.885: gst_tag_get_type: assertion 'info != NULL' failed + Part-of: + +2018-03-28 17:54:15 +0200 Philipp Zabel + + * gst-libs/gst/audio/gstaudiodecoder.c: + * gst-libs/gst/audio/gstaudioencoder.c: + * gst-libs/gst/video/gstvideodecoder.c: + * gst-libs/gst/video/gstvideoencoder.c: + buffer: drop parent meta in deep copy/foreach_metadata + The purpose of a deep buffer copy is to be able to release the source + buffer and all its dependencies. Attaching the parent buffer meta to + the newly created deep copy needlessly keeps holding a reference to the + parent buffer. + The issue this solves is the fact you need to allocate more + buffers, as you have free buffers being held for no reason. In the good + cases it will use more memory, in the bad case it will stall your + pipeline (since codecs often need a minimum number of buffers to + actually work). + Fixes #283 + Part-of: + +2022-09-27 13:41:37 +0200 Edward Hervey + + * gst/playback/gstdecodebin3.c: + decodebin3: Fix memory issues with active selection list + This had a couple of issues: + * The backing strings (from GstStream) could disappear + * The actual list wasn't properly reset/freed when decodebin3 was re-used + Part-of: + +2022-09-07 16:35:38 +1000 Matthew Waters + + * gst/subparse/mpl2parse.c: + subparse: fix crash when parsing invalid timestamps in mpl2 + Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=49245 + Part-of: + +2022-08-30 14:29:41 +0200 Rafael Caricio + + * gst-libs/gst/pbutils/gstaudiovisualizer.c: + audiovisualizer: fix buffer mapping to not increase refcount + Part-of: + +2022-08-12 22:42:28 -0700 Khem Raj + + * gst/subparse/gstssaparse.c: + ssaparse: include required system headers for isspace() and sscanf() functions + Newer compilers ( clang 15 ) have turned stricter and errors out instead + of warning on implicit function declations + Fixes + gstssaparse.c:297:12: error: call to undeclared library function 'isspace' with type 'int (int)'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] + while (isspace(*t)) + Part-of: + +2022-08-12 13:16:50 +0300 Sebastian Dröge + + * gst-libs/gst/rtsp/gstrtspurl.c: + * tests/check/libs/rtsp.c: + rtspurl: Use gst_uri_join_strings() in gst_rtsp_url_get_request_uri_with_control() instead of a hand-crafted, wrong version + For example the query string of the base must not be taken over to the + request URL unless there is no control path, and control paths can be + absolute and must not be considered relative if they start with a /. + Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/971 + Part-of: + +2022-08-12 13:15:46 +0300 Sebastian Dröge + + * tests/check/libs/rtsp.c: + rtspurl: Use fail_unless_equals_string() in tests + Part-of: + +2022-07-27 22:34:42 +1000 Jan Schmidt + + * ext/pango/gstbasetextoverlay.c: + * ext/pango/gstbasetextoverlay.h: + basetextoverlay: Don't miscalculate text running times + When a new segment event arrives, it immediately updates + the current stored segment, which was used for calculating + the running time of the current text buffer for every + passing video frame. This means a segment that arrives + after the text buffer might get used to (mis)calculate + the running times subsequently. + Instead, calculate and store the right running time + using the current segment when storing the buffer. Later + the stored segment can get freely updated. + This fixes the case where pieces of video and text streams + are seamlessly concatenated and fed through the text overlay. + Previously, it could lead to the current text buffer suddenly + have a massive running time and blocking all further input. + Part-of: + +2022-08-09 18:06:41 +0100 Tim-Philipp Müller + + * docs/plugins/gst_plugins_cache.json: + * ext/opus/gstopusenc.c: + opusenc: improve inband-fec property documentation + Part-of: + +2022-06-12 05:35:27 -0600 James Hilliard + + * gst/playback/gstdecodebin3-parse.c: + * gst/playback/gstdecodebin3.c: + decodebin3: fix EOS event sequence + See docs: + https://gstreamer.freedesktop.org/documentation/additional/design/seqnums.html?gi-language=c#seqnums-sequence-numbers + Per docs: + When a sink element receives an EOS event and creates a new EOS + message to post, it should copy the seqnum from the event to the + message because the EOS message is a consequence of the EOS event + being received. + Part-of: + +2021-12-14 16:14:56 +0100 Edward Hervey + + * gst/subparse/gstsubparse.c: + subparse: Handle GAP events before buffers + Make sure we did initial negotiation and segment pushing if we get GAP events + before buffers. + Part-of: + +2021-11-17 15:30:38 +0100 Edward Hervey + + * gst-libs/gst/tag/gsttagdemux.c: + tagdemux: Properly propagate sequence numbers + If we received a time segment from upstream, we need to make sure we propagate + it downstream with the same sequence number. + Part-of: + +2022-08-01 17:25:56 +0200 Edward Hervey + + * gst/playback/gstparsebin.c: + parsebin: Avoid crash with unknown streams + With the new addition of handling unknown sream types we *could* end up with a + chain which doesn't have a current_pad (it's an intermediary one) + Fixes #1287 + Part-of: + +2022-05-25 18:40:30 +0530 Nirbheek Chauhan + + * gst-libs/gst/rtsp/gstrtspconnection.c: + rtsp+rtmp: Forward warning added to tls-validation-flags to our users + With the 2.72 release, glib-networking developers have decided that + TLS certificate validation cannot be implemented correctly by them, so + they've deprecated it. + In a nutshell: a cert can have several validation errors, but there + are no guarantees that the TLS backend will return all those errors, + and things are made even more complicated by the fact that the list of + errors might refer to certs that are added for backwards-compat and + won't actually be used by the TLS library. + Our best option is to ignore the deprecation and pass the warning onto + users so they can make an appropriate security decision regarding + this. + We can't deprecate the tls-validation-flags property because it is + very useful when connecting to RTSP cameras that will never get + updates to fix certificate errors. + Relevant upstream merge requests / issues: + https://gitlab.gnome.org/GNOME/glib/-/merge_requests/2214 + https://gitlab.gnome.org/GNOME/glib-networking/-/issues/179 + https://gitlab.gnome.org/GNOME/glib-networking/-/merge_requests/193 + Part-of: + +2022-07-27 15:42:44 +1000 Matthew Waters + + * gst-libs/gst/rtsp/gstrtspconnection.c: + rtspconnection: protect cancellable by a mutex + It is entirely possible for the cancellable to be cancelled (and freed) + in gst_rtsp_connection_flush() while there may be an ongoing read/write + operation. + Nothing prevents gst_rtsp_connection_flush() from waiting for the + outstanding read/writes. + This could lead to a crash like (where cancellable has been freed + within gst_rtsp_connection_flush()): + #0 0x00007ffff4351096 in g_output_stream_writev (stream=stream@entry=0x7fff30002950, vectors=vectors@entry=0x7ffe2c6afa80, n_vectors=n_vectors@entry=3, bytes_written=bytes_written@entry=0x7ffe2c6af950, cancellable=cancellable@entry=0x7fff300288a0, error=error@entry=0x7ffe2c6af958) at ../subprojects/glib/gio/goutputstream.c:377 + #1 0x00007ffff44b2c38 in writev_bytes (stream=0x7fff30002950, vectors=vectors@entry=0x7ffe2c6afa80, n_vectors=n_vectors@entry=3, bytes_written=bytes_written@entry=0x7ffe2c6afb90, block=block@entry=1, cancellable=0x7fff300288a0) at ../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c:1320 + #2 0x00007ffff44b583e in gst_rtsp_connection_send_messages_usec (conn=0x7fff30001370, messages=messages@entry=0x7ffe2c6afcc0, n_messages=n_messages@entry=1, timeout=timeout@entry=3000000) at ../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c:2056 + #3 0x00007ffff44d2669 in gst_rtsp_client_sink_connection_send_messages (sink=0x7fffac0192c0, timeout=3000000, n_messages=1, messages=0x7ffe2c6afcc0, conninfo=0x7fffac019610) at ../subprojects/gst-rtsp-server/gst/rtsp-sink/gstrtspclientsink.c:1929 + #4 gst_rtsp_client_sink_try_send (sink=sink@entry=0x7fffac0192c0, conninfo=conninfo@entry=0x7fffac019610, requests=requests@entry=0x7ffe2c6afcc0, n_requests=n_requests@entry=1, response=response@entry=0x0, code=code@entry=0x0) at ../subprojects/gst-rtsp-server/gst/rtsp-sink/gstrtspclientsink.c:2845 + #5 0x00007ffff44d3077 in do_send_data (buffer=0x7fff38075c60, channel=, context=0x7fffac042640) at ../subprojects/gst-rtsp-server/gst/rtsp-sink/gstrtspclientsink.c:3896 + #6 0x00007ffff4281cc6 in gst_rtsp_stream_transport_send_rtp (trans=trans@entry=0x7fff20061f80, buffer=) at ../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-stream-transport.c:632 + #7 0x00007ffff4278e9b in push_data (stream=0x7fff40019bf0, is_rtp=, buffer_list=0x0, buffer=, trans=0x7fff20061f80) at ../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-stream.c:2586 + #8 check_transport_backlog (stream=0x7fff40019bf0, trans=0x7fff20061f80) at ../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-stream.c:2645 + #9 0x00007ffff42793b3 in send_tcp_message (idx=, stream=0x7fff40019bf0) at ../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-stream.c:2741 + #10 send_func (stream=0x7fff40019bf0) at ../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-stream.c:2776 + #11 0x00007ffff7d59fad in g_thread_proxy (data=0x7fffbc062920) at ../subprojects/glib/glib/gthread.c:827 + #12 0x00007ffff7a8ce2d in start_thread () from /lib64/libc.so.6 + #13 0x00007ffff7b12620 in clone3 () from /lib64/libc.so.6 + Fix by adding a cancellable lock and returning an extra reference used + across all read/write operations. gst_rtsp_connection_flush() can free + the in-use cancellable and it will no longer affect any in progress + read/write. + Part-of: + +2022-07-23 02:49:20 +1000 Jan Schmidt + + * gst-libs/gst/video/video-chroma.c: + video: Fix scaling in 4x horizontal co-sited chroma + 4x downscaling of chroma with co-sited chroma has never worked + it seems. + Fixes incorrect videotestsrc output and videoconvert conversions + to Y41B, YUV9, YVU9 and IYU9 with co-sited chroma. + e.g. + gst-launch-1.0 videotestsrc ! video/x-raw,format=Y41B,width=1280,height=720 ! \ + videoconvert ! autovideosink + Part-of: + +2022-07-12 14:47:20 +1000 Matthew Waters + + * ext/gl/gstglimagesink.c: + glimagesink: only allow setting the GL display/context if it is a valid value + Otherwise, when setting the external application context, then the + display may be cleared and then not used and the asharing mechanism does + not work anymore. + Part-of: + +2022-07-11 20:12:30 +0200 Mathieu Duponchelle + + * gst-libs/gst/video/gstvideoaggregator.c: + videoaggregator: always convert when user provides converter-config + The `converter-config` property may be used to perform cropping, + conversion should always be performed when the user set the property + to a non-NULL value. + Part-of: + +2022-07-08 20:49:21 +0200 Andoni Morales Alastruey + + * gst-libs/gst/gl/cocoa/gstglwindow_cocoa.m: + glwindow_cocoa: fix a leak of the GstNSView + This leak is also causing a leak of the GstGLCAOpenGLLayer + which leaks the GstGLWrappedContext and the GstGLDisplay + Part-of: + +2022-07-08 20:38:51 +0200 Andoni Morales Alastruey + + * gst-libs/gst/gl/cocoa/gstglcontext_cocoa.m: + gl: Fix leak of the whole CGL context + This was leaking the CGL context and several resources + allocated in the context, around 70MB for a 1080p clip + Part-of: + +2022-06-30 00:13:19 +0100 Tim-Philipp Müller + + * gst/subparse/samiparse.c: + * tests/check/elements/subparse.c: + samiparse: fix handling of self-closing tags + We would check the wrong string (rest of line rather than element) + for the / suffix of self-closing tags, which is not only wrong but + also has atrocious performance with certain strings like the garbled + nonsense clusterfuzz feeds us, which might cause discoverer to time + out when processing garbled SAMI files. + Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=47461 + Part-of: + +2022-06-30 09:02:00 +0300 Sebastian Dröge + + * gst-libs/gst/sdp/gstsdpmessage.c: + sdpmessage: Don't set SDP medias from caps without media/payload/clock-rate fields + Previously it would've silently failed reading the payload/clock-rate + and instead would've used some random value that happened to be on the + stack. + Part-of: + +2022-06-29 10:55:13 +0100 Tim-Philipp Müller + + * meson.build: + coding style: allow declarations after statement + See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1243/ + and https://gitlab.freedesktop.org/gstreamer/gstreamer-project/-/issues/78 + Part-of: + +2022-06-25 19:50:10 +0100 Tim-Philipp Müller + + * tests/check/meson.build: + tests: skip unit tests for dependency-less elements that have been disabled + Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1136 + Part-of: + +2022-06-16 00:59:00 +0100 Tim-Philipp Müller + + * meson.build: + Back to development + Part-of: + === release 1.20.3 === 2022-06-15 23:36:18 +0100 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 43e2e79cb3..bc2099b14c 100644 --- a/subprojects/gst-plugins-good/ChangeLog +++ b/subprojects/gst-plugins-good/ChangeLog @@ -1,7 +1,346 @@ +2022-09-30 18:57:01 +0200 Mathieu Duponchelle + + * gst/multifile/gstsplitmuxpartreader.c: + splitmuxsrc: don't consider unlinked pads when deactivating part + If splitmuxsrc exposes multiple pads, but only one is linked, part pads + will never see an EOS event. This shouldn't prevent the part from being + eventually deactivated. + Part-of: + +2022-10-06 15:02:22 +0300 Sebastian Dröge + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: Retry SETUP with non-compliant URL resolution on "Bad Request" and "Not found" + Various RTSP servers/cameras assume base and control URL to be simply + appended instead of being resolved according to the relative URL + resolution algorithm as mandated by the RTSP specification. + To work around this, try using such a non-compliant control URL if the + server didn't like the URL used in the first SETUP request. + Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1447 + Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/922 + Part-of: + +2022-09-27 13:56:54 +0100 Tim-Philipp Müller + + * gst/isomp4/qtdemux.c: + qtdemux: guard against timestamp calculation overflow in gap event loop + Could possibly cause an endless loop. + Fixes #1400. + Part-of: + +2022-09-02 17:21:43 +0300 Sebastian Dröge + + * tests/check/elements/rtpjitterbuffer.c: + rtpjitterbuffer: Add test for crash caused by removing timers twice + Part-of: + +2022-09-02 12:20:58 +0300 Sebastian Dröge + + * gst/rtpmanager/gstrtpjitterbuffer.c: + rtpjitterbuffer: Make it more explicit that update_rtx_timers() takes ownership of the passed in timer + It is not valid anymore afterwards and must not be used, otherwise an + already freed pointer might be used. + Part-of: + +2022-09-02 12:20:30 +0300 Sebastian Dröge + + * gst/rtpmanager/gstrtpjitterbuffer.c: + rtpjitterbuffer: Don't shadow variable + While this didn't cause any problems in this context it is simply + confusing. + Part-of: + +2022-09-02 12:19:26 +0300 Sebastian Dröge + + * gst/rtpmanager/gstrtpjitterbuffer.c: + rtpjitterbuffer: Change RTX timer availability checks to assertions + It's impossible to end up in the corresponding code without a timer for + RTX packets because otherwise it would be an unsolicited RTX packet and + we would've already returned early. + Part-of: + +2022-09-02 12:17:39 +0300 Sebastian Dröge + + * gst/rtpmanager/gstrtpjitterbuffer.c: + rtpjitterbuffer: Only unschedule timers for late packets if they're not RTX packets and only once + Timers for RTX packets are dealt with later in update_rtx_timers(), and + timers for non-RTX packets would potentially also be unscheduled a + second time from there so avoid that. + Also don't shadow the timer variable from the outer scope but instead + make use of it directly. + Part-of: + +2022-08-18 17:08:51 +0300 Raul Tambre + + * gst/rtpmanager/gstrtpjitterbuffer.c: + * tests/check/elements/rtpjitterbuffer.c: + rtpjitterbuffer: remove lost timer for out of order packets + When receiving old packets remove the running lost timer if present. + This fixes incorrect reporting of a lost packet even if it arrived in time. + Part-of: + +2022-08-26 18:42:44 +0300 Sebastian Dröge + + * gst/rtp/gstrtpvp8depay.c: + rtpvp8depay: If configured to wait for keyframes after packet loss, also do that if incomplete frames are detected + This can happen if the data inside the packets is incomplete without the + seqnums being discontinuous because of ULPFEC being used. + Part-of: + +2022-08-24 17:30:34 +0800 Jianhui Dai + + * sys/v4l2/gstv4l2allocator.c: + v4l2allocator: Fix invalid imported dmabuf fd + Fix a typo that set userptr to dmabuf fd. It leads to failure of + dmabuf-import io-mode. + Part-of: + +2022-08-23 10:28:30 +0000 zhiyuan.liu + + * gst/isomp4/gstisoff.c: + isoff: Fix earliest pts field parse issue + earliest pts will be covered by first_offset field on version 0 case. + Part-of: + +2022-08-17 09:11:52 +1000 Jan Schmidt + + * gst/multifile/gstsplitmuxsrc.c: + splitmuxsrc: Stop pad task before cleanup + When stopping the element, make sure the pad task + is stopped before destroying the part readers. + Closes a race where the pad task might access + a freed pointer. + Also add a guard against this sort of thing + by holding a ref to the reader in the pad loop. + Part-of: + +2022-08-12 20:20:43 +1000 Jan Schmidt + + * gst/isomp4/qtdemux.c: + qtdemux: Avoid crash on reconfiguring. + When reconfiguring a stream that never created + an output pad, don't access a NULL GstPad pointer. + Part-of: + +2022-08-15 14:30:50 -0400 Nicolas Dufresne + + * sys/v4l2/gstv4l2bufferpool.c: + v4l2bufferpool: Fix debug trace + The tracing of the buffer pointer was done on the secondary pointer, which + does not match with other traces of the same buffer. This made the trace + confusing and less useful. + Fixes #1379 + Part-of: + +2022-08-12 13:20:01 +0300 Sebastian Dröge + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: Consider the actual control base URI also in case the connection URI contains a query string + That is, get rid of unnecessary and wrong special-casing. + This could always use gst_rtsp_url_get_request_uri_with_control() but as + we only have the control base URI as string it is easier to just call + gst_uri_join_strings(). + Part-of: + +2022-08-12 02:20:40 +0530 Nirbheek Chauhan + + * gst/rtpmanager/gstrtpst2022-1-fecenc.c: + rtpst2022-1-fecenc: Drain column packets on EOS + Otherwise we won't send the protection packets for the last few + packets when a stream ends. + Also send EOS on the FEC src row pad immediately, and on the FEC src + column pad after draining is complete. This makes it so that the FEC + src pads on rtpbin behave the same way as the RTCP src pads on rtpbin + when EOS is received on the send_rtp_sink pad. + Part-of: + +2022-08-11 08:48:08 +0200 Edward Hervey + + * gst/isomp4/qtdemux.c: + qtdemux: Don't use invalid values from failed trex parsing + If parsing the fragment default values (`trex` atom) failed, don't try to + compute a bogus sample_description_id value. + Fixes #1369 + Part-of: + +2022-08-04 18:09:52 +0800 Haihua Hu + + * gst/alpha/gstalpha.c: + alpha: fix stride issue when out buffer has padding on right + if outbuf has padding on right, need jump to next line use stride, + otherwise downstream element will show a wrong picture when use the + same stride + Part-of: + +2022-05-25 18:40:30 +0530 Nirbheek Chauhan + + * gst/rtsp/gstrtspsrc.c: + rtsp+rtmp: Forward warning added to tls-validation-flags to our users + With the 2.72 release, glib-networking developers have decided that + TLS certificate validation cannot be implemented correctly by them, so + they've deprecated it. + In a nutshell: a cert can have several validation errors, but there + are no guarantees that the TLS backend will return all those errors, + and things are made even more complicated by the fact that the list of + errors might refer to certs that are added for backwards-compat and + won't actually be used by the TLS library. + Our best option is to ignore the deprecation and pass the warning onto + users so they can make an appropriate security decision regarding + this. + We can't deprecate the tls-validation-flags property because it is + very useful when connecting to RTSP cameras that will never get + updates to fix certificate errors. + Relevant upstream merge requests / issues: + https://gitlab.gnome.org/GNOME/glib/-/merge_requests/2214 + https://gitlab.gnome.org/GNOME/glib-networking/-/issues/179 + https://gitlab.gnome.org/GNOME/glib-networking/-/merge_requests/193 + Part-of: + +2022-07-27 15:44:09 +0200 Adrian Fiergolski + + * gst/videofilter/gstvideoflip.c: + videoflip: Fix caps negotiation when method is selected + The caps negotiation should respect the selected method to the test pipeline below works properly. + gst-launch-1.0 videotestsrc ! video/x-raw,width=320,height=600 ! videoflip method=clockwise ! video/x-raw,width=600,height=320 ! fakesink + Signed-off-by: Adrian Fiergolski + Part-of: + +2022-07-24 23:44:10 -0400 fduncanh + + * sys/v4l2/gstv4l2object.c: + v4l2object.c: add support for Apple's full-range bt709 colorspace variant + Part-of: + +2022-07-08 18:22:58 +0800 Elliot Chen + + * sys/v4l2/gstv4l2bufferpool.c: + v4l2: fix the critical log when unreference the buffer with no data + In the trick mode, driver may queue a valid buffer follow by an + empty buffer which has no valid data to indicate EOS.For the empty + buffer whose memory is multi-plane, need to resize it before + unreference it. + Part-of: + +2022-07-15 13:22:14 +0300 Sebastian Dröge + + * ext/qt/qtglrenderer.cc: + qt: Fix another instance of Qt/GStreamer both defining `GLsync` differently + In file included from ../gstreamer1.0-plugins-good/1.20.3-r0/recipe-sysroot/usr/include/gstreamer-1.0/gst/gl/gstglfuncs.h:87, + from ../gst-plugins-good-1.20.3/ext/qt/qtglrenderer.cc:14: + ../gstreamer1.0-plugins-good/1.20.3-r0/recipe-sysroot/usr/include/gstreamer-1.0/gst/gl/glprototypes/gstgl_compat.h:40:18: error: conflicting declaration 'typedef void* GLsync' + 40 | typedef gpointer GLsync; + | ^~~~~~ + In file included from ../gstreamer1.0-plugins-good/1.20.3-r0/recipe-sysroot/usr/include/QtGui/qopengl.h:127, + from ../gstreamer1.0-plugins-good/1.20.3-r0/recipe-sysroot/usr/include/QtQuick/qsggeometry.h:44, + from ../gstreamer1.0-plugins-good/1.20.3-r0/recipe-sysroot/usr/include/QtQuick/qsgnode.h:43, + from ../gstreamer1.0-plugins-good/1.20.3-r0/recipe-sysroot/usr/include/QtQuick/qsgrendererinterface.h:43, + from ../gstreamer1.0-plugins-good/1.20.3-r0/recipe-sysroot/usr/include/QtQuick/qquickwindow.h:44, + from ../gstreamer1.0-plugins-good/1.20.3-r0/recipe-sysroot/usr/include/QtQuick/QQuickWindow:1, + from ../gst-plugins-good-1.20.3/ext/qt/qtglrenderer.cc:6: + ../gstreamer1.0-plugins-good/1.20.3-r0/recipe-sysroot/usr/include/QtGui/qopengles2ext.h:24:26: note: previous declaration as 'typedef struct __GLsync* GLsync' + 24 | typedef struct __GLsync *GLsync; + | ^~~~~~ + Part-of: + +2022-07-15 06:40:05 +0530 Nirbheek Chauhan + + * sys/osxaudio/gstosxaudiodeviceprovider.c: + * sys/osxaudio/gstosxcoreaudiohal.c: + osxaudio: Fix deprecation in macOS 12.0 + kAudioObjectPropertyElementMaster has been renamed to + kAudioObjectPropertyElementMain + Part-of: + +2022-07-12 21:19:35 +1000 Jan Schmidt + + * gst/multifile/gstsplitmuxsink.c: + splitmuxsink: Fix memory leak + Fix a leak of the buffer info struct when reaching + EOS without data on the reference input. + Part-of: + +2022-04-14 01:19:51 +0900 Seungha Yang + + * gst/multifile/gstsplitmuxsink.c: + * tests/check/elements/splitmuxsink.c: + splitmuxsink: Don't crash on EOS without buffer + Fix a case where upstream pushed EOS without buffers. + Part-of: + +2022-05-28 15:04:10 -0400 fduncanh + + * sys/v4l2/gstv4l2videodec.c: + v4l2videodec: replace multiple decoder bug warnings with single one + Achieve this by dropping frames after a drain if the driver failed to so. + This works around RaspberryPi driver issue [1]. + [1] https://github.com/raspberrypi/linux/issues/5059#issuecomment- + Fixes #1103 + Part-of: + +2022-06-29 10:55:13 +0100 Tim-Philipp Müller + + * meson.build: + coding style: allow declarations after statement + See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1243/ + and https://gitlab.freedesktop.org/gstreamer/gstreamer-project/-/issues/78 + Part-of: + +2022-06-25 19:50:10 +0100 Tim-Philipp Müller + + * tests/check/meson.build: + tests: skip unit tests for dependency-less elements that have been disabled + Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1136 + Part-of: + +2022-06-28 01:29:06 +0100 Tim-Philipp Müller + + * ext/dv/meson.build: + dv, opusparse: fix duplicate symbols in static build + Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1262 + Part-of: + +2022-06-24 12:10:02 +0100 Tim-Philipp Müller + + * tests/examples/jack/meson.build: + examples: don't try and build jack examples if jack was disabled + Fixes meson build ERROR: Unknown variable "libjack_dep". + Fixes #1301 + Part-of: + +2022-02-07 17:51:39 -0500 Tristan Matthews + + * gst/matroska/matroska-mux.c: + matroskamux: allow width+height caps changes for VP8/9 + For VP8 and VP9, width+height changes are signalled inband. + Refs https://github.com/Kurento/bugtracker/issues/535 and + https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1047/diffs?commit + Part-of: + +2022-02-07 16:41:40 -0500 Tristan Matthews + + * gst/matroska/matroska-mux.c: + matroskamux: allow width + height changes for avc3|hev1 + For avc3 and hev1, the intent was to allow more flexibility for caps changes + (see https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1047/diffs?commit_id=9bd8d608d5bae27ec5ff09e733f76ca32b17420c) + however width and resolution were previously omitted. + avc3 and hev1 specifically support changing stream-parameters on the fly, whereas avc1/hvc1 disallow in-band SPS. + This commit allows for changes to width and height for these which is in line with matroskamux's behaviour prior to 1.14.0. + Practically speaking, one use case where this is commonly seen is when capturing a WebRTC stream, as the browser will adapt the resolution live. + Suggested-by: Mathieu Duponchelle "" + Part-of: + +2022-06-16 00:59:00 +0100 Tim-Philipp Müller + + * docs/gst_plugins_cache.json: + * meson.build: + Back to development + Part-of: + === release 1.20.3 === 2022-06-15 23:36:18 +0100 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 bfe5515f63..588264ad7f 100644 --- a/subprojects/gst-plugins-ugly/ChangeLog +++ b/subprojects/gst-plugins-ugly/ChangeLog @@ -1,7 +1,29 @@ +2022-06-29 10:55:13 +0100 Tim-Philipp Müller + + * meson.build: + coding style: allow declarations after statement + See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1243/ + and https://gitlab.freedesktop.org/gstreamer/gstreamer-project/-/issues/78 + Part-of: + +2022-06-25 19:50:10 +0100 Tim-Philipp Müller + + * tests/check/meson.build: + tests: skip unit tests for dependency-less elements that have been disabled + Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1136 + Part-of: + +2022-06-16 00:59:00 +0100 Tim-Philipp Müller + + * meson.build: + Back to development + Part-of: + === release 1.20.3 === 2022-06-15 23:36:18 +0100 Tim-Philipp Müller + * ChangeLog: * NEWS: * RELEASE: * gst-plugins-ugly.doap: diff --git a/subprojects/gst-python/ChangeLog b/subprojects/gst-python/ChangeLog index 52962fdbac..608fa8d846 100644 --- a/subprojects/gst-python/ChangeLog +++ b/subprojects/gst-python/ChangeLog @@ -1,7 +1,46 @@ +2022-06-28 16:38:09 -0400 Thibault Saunier + + * examples/plugins/python/py_audiotestsrc.py: + python: Fix the audiotestsrc example + Since 830d1595b94ee855b664b2101f0832fbd0181b9c AudioInfo::from_caps has been hidden in python + Part-of: + +2022-06-28 16:35:58 -0400 Thibault Saunier + + * examples/plugins/python/audioplot.py: + * examples/plugins/python/exampleTransform.py: + * examples/plugins/python/identity.py: + * examples/plugins/python/mixer.py: + * examples/plugins/python/py_audiotestsrc.py: + * examples/plugins/python/sinkelement.py: + * gi/overrides/Gst.py: + python: Add a Gst.init_python function to be called from plugins + Plugins know that they will be initialized after Gst was initialized + so they can call the initialization function dedicated for the python + bindings + Part-of: + +2022-06-28 11:02:37 -0400 Thibault Saunier + + * gi/overrides/Gst.py: + python: Do not call gst_init when it is already is_initialized + GStreamer plugins written in python need to call `Gst.init` to ensure + that GStreamer is initialized so when loading a python plugin, we might + be recursively calling `gst_init` which is not a good idea. + Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/940 + Part-of: + +2022-06-16 00:59:00 +0100 Tim-Philipp Müller + + * meson.build: + Back to development + Part-of: + === release 1.20.3 === 2022-06-15 23:36:18 +0100 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 dd53a48ff7..7ab54c8de8 100644 --- a/subprojects/gst-rtsp-server/ChangeLog +++ b/subprojects/gst-rtsp-server/ChangeLog @@ -1,7 +1,69 @@ +2022-08-24 19:50:19 +0800 Bruce Liang + + * gst/rtsp-server/rtsp-server-internal.h: + * gst/rtsp-server/rtsp-stream-transport.c: + * gst/rtsp-server/rtsp-stream.c: + gst-rtsp-server: Fix pushing backlog to client + Check back pressure of a stream transport before popping buffer from its backlog. + If the stream transport is not experiencing back pressure, the buffer can be popped from backlog and pushed to client. + Fixes:#1298 + Part-of: + +2022-09-02 16:31:54 +0300 Sebastian Dröge + + * gst/rtsp-server/rtsp-stream.c: + rtsp-server: stream: Don't loop forever if binding to the multicast address fails + The address/port is pre-defined by the caller of the function, so + retrying is only going to loop forever. + Ideally the multicast address should be checked after allocating but + this doesn't happen currently, so it's better to error out cleanly then + to loop forever trying the same address. + Part-of: + +2022-05-25 18:40:30 +0530 Nirbheek Chauhan + + * gst/rtsp-sink/gstrtspclientsink.c: + rtsp+rtmp: Forward warning added to tls-validation-flags to our users + With the 2.72 release, glib-networking developers have decided that + TLS certificate validation cannot be implemented correctly by them, so + they've deprecated it. + In a nutshell: a cert can have several validation errors, but there + are no guarantees that the TLS backend will return all those errors, + and things are made even more complicated by the fact that the list of + errors might refer to certs that are added for backwards-compat and + won't actually be used by the TLS library. + Our best option is to ignore the deprecation and pass the warning onto + users so they can make an appropriate security decision regarding + this. + We can't deprecate the tls-validation-flags property because it is + very useful when connecting to RTSP cameras that will never get + updates to fix certificate errors. + Relevant upstream merge requests / issues: + https://gitlab.gnome.org/GNOME/glib/-/merge_requests/2214 + https://gitlab.gnome.org/GNOME/glib-networking/-/issues/179 + https://gitlab.gnome.org/GNOME/glib-networking/-/merge_requests/193 + Part-of: + +2022-06-29 10:55:13 +0100 Tim-Philipp Müller + + * meson.build: + coding style: allow declarations after statement + See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1243/ + and https://gitlab.freedesktop.org/gstreamer/gstreamer-project/-/issues/78 + Part-of: + +2022-06-16 00:59:00 +0100 Tim-Philipp Müller + + * docs/gst_plugins_cache.json: + * meson.build: + Back to development + Part-of: + === release 1.20.3 === 2022-06-15 23:36:18 +0100 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 26bc765be1..06143ffb28 100644 --- a/subprojects/gstreamer-vaapi/ChangeLog +++ b/subprojects/gstreamer-vaapi/ChangeLog @@ -1,7 +1,31 @@ +2022-08-11 21:22:12 +0200 Víctor Manuel Jáquez Leal + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst/vaapi/gstvaapi.c: + * gst/vaapi/gstvaapidecode.c: + vaapi: plugin: Handle when no encoders/decoders available. + Nouveau driver currently only exposes postproc entry. But + vaapidecodebin is registered independent if there are decoders or not, + exposing a segmentation fault. + This patch removes the encoder/decoder/codec arrays if no entries are + found, and if no decoders are found vaapidecodebin is not + registered. Also for vaapipostproc if no postproc entry is found. + Also, if general decoder, used by vaapidecodebin, doesn't have a sink + pad string, don't register the glib type. + Fixes: #1349 + Part-of: + +2022-06-16 00:59:00 +0100 Tim-Philipp Müller + + * meson.build: + Back to development + Part-of: + === release 1.20.3 === 2022-06-15 23:36:18 +0100 Tim-Philipp Müller + * ChangeLog: * NEWS: * RELEASE: * gstreamer-vaapi.doap: diff --git a/subprojects/gstreamer/ChangeLog b/subprojects/gstreamer/ChangeLog index d2e9c7d347..03532ea76f 100644 --- a/subprojects/gstreamer/ChangeLog +++ b/subprojects/gstreamer/ChangeLog @@ -1,7 +1,254 @@ +2022-10-07 14:39:47 +0200 Guillaume Desmottes + + * libs/gst/base/gstaggregator.c: + aggregator: fix input buffering + We need to be able to buffer at least the aggregator latency + + upstream latency, which is the value used to compute the aggregator + deadline. + Part-of: + +2022-10-03 11:16:25 +0200 Edward Hervey + + * plugins/elements/gstqueue2.c: + queue2: Hold the lock when modifying sinkresult + As it's done elsewhere. Avoids a potential race of the field being modified in + the meantime. + Part-of: + +2018-03-28 17:54:15 +0200 Philipp Zabel + + * gst/gstbuffer.c: + * gst/gstmeta.c: + * gst/gstmeta.h: + * libs/gst/base/gstadapter.c: + * libs/gst/base/gstbasetransform.c: + buffer: drop parent meta in deep copy/foreach_metadata + The purpose of a deep buffer copy is to be able to release the source + buffer and all its dependencies. Attaching the parent buffer meta to + the newly created deep copy needlessly keeps holding a reference to the + parent buffer. + The issue this solves is the fact you need to allocate more + buffers, as you have free buffers being held for no reason. In the good + cases it will use more memory, in the bad case it will stall your + pipeline (since codecs often need a minimum number of buffers to + actually work). + Fixes #283 + Part-of: + +2022-09-26 14:17:18 +0300 Sebastian Dröge + + * gst/gsturi.c: + gsturi: When setting the same string again do nothing + Otherwise code like gst_uri_set_host(uri, gst_uri_get_host(uri)) would + first free the string, then create a copy of the freed string and then + assigned that. + Part-of: + +2022-08-31 18:08:08 +0200 Paweł Stawicki + + * plugins/elements/gstqueue2.c: + queue2: Fix deadlock when deactivate is called in pull mode + check is flush was called before waiting on condition + Part-of: + +2022-08-31 14:23:59 +0200 Martin Dørum + + * gst/gstpluginloader.c: + gstpluginloader: Don't hang on short reads/writes + If read_one or write_one was called but the stream closed before it could + read/write a whole packet, read_one/write_one would hang indefinitely, + consuming 100% CPU. This commit fixes that by treating a short read/write + as an error. + Part-of: + +2022-08-31 09:15:08 -0400 Xavier Claessens + + * gst/gst.c: + gst_init: Initialize static plugins just before dynamic plugins + All plugins needs to be initialized after `gst_initialized = TRUE;` + otherwise they could complain that gst_init() has not been called. + Part-of: + +2022-08-24 12:42:12 -0400 Olivier Crête + + * gst/gstvalue.c: + value: Use g_critical() when trying to serialize things that can't be + Part-of: + +2022-08-01 14:00:20 -0400 Olivier Crête + + * gst/gstvalue.c: + * tests/check/gst/gstvalue.c: + gstvalue: Don't loop forever when serializing invalid flag + The serialization code would loop forever if an invalid flag was sent into it. + With unit test for this corner case. + Part-of: + +2022-08-15 20:07:09 +0530 Nirbheek Chauhan + + * gst/gstmeta.c: + * gst/gstmeta.h: + * tests/check/gst/gstmeta.c: + meta: Set the parent refcount of the GstStructure correctly + The parent refcount is of the *transformed* buffer, not the input + buffer. + Also update the docs to clarify that @transbuf is the transformed + buffer, and not the buffer on which a transformation is being + performed. + Due to this bug, modifying the structure of a meta that has been + copied to another buffer fails with: + gst_structure_set: assertion 'IS_MUTABLE (structure) || field == NULL' failed + Add a test for the same. + Part-of: + +2022-07-09 17:04:07 +0300 Sebastian Dröge + + * gst/gst.c: + gst: Protect initialization state with a recursive mutex. + Otherwise a gst_init() call from a plugin would deadlock if the plugin + is loaded as part of registry updating. + Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/940 + Part-of: + +2022-07-09 17:02:26 +0300 Sebastian Dröge + + * gst/gstregistry.c: + registry: Remove dead code + Initialization/updating of the registry can't possible fail and all code + paths always returned TRUE. + Part-of: + +2022-07-09 16:50:54 +0300 Sebastian Dröge + + * gst/gst.c: + gst: Don't fail gst_init() if updating the registry fails + Everything is already marked as initialized at that point and by failing + no tracers would be loaded or plugin feature rank overrides would be + applied. + Part-of: + +2022-08-03 12:32:24 +0100 Tim-Philipp Müller + + * plugins/tracers/gstleaks.c: + tracers: leaks: delay type name lookup + Micro optimisation: Store the quark of the type name when tracking + objects and only do the quark to string conversion (hashtable lookup) + later when we actually need the string. + Part-of: + +2022-08-03 12:10:02 +0100 Corentin Damman + + * plugins/tracers/gstleaks.c: + tracers: leaks: fix potentially invalid memory access when trying to detect object type + The is_gst_mini_object_check would sometimes detect a proper GObject + as a mini object, and then bad things happen. + We know whether a pointer is a proper GObject or a MiniObject here + though, so just pass that information to the right code paths and + avoid the heuristics altogether. + Eliminates all remaining uses of object_is_gst_mini_object(). + Fixes #1334 + Part-of: + +2022-08-03 12:10:02 +0100 Tim-Philipp Müller + + * plugins/tracers/gstleaks.c: + tracers: leaks: fix potentially invalid memory access when trying to detect object type + The is_gst_mini_object_check would sometimes detect a proper GObject + as a mini object, and then bad things happen. + We know whether a pointer is a proper GObject or a MiniObject here + though, so just pass that information to the right code paths and + avoid the heuristics altogether. + There are probably more cases where the check should be eliminated. + Fixes #1334, maybe + Part-of: + +2022-07-28 19:44:20 +0000 Rafael Sobral + + * libs/gst/base/gstaggregator.c: + aggregator: fix reversed active/flushing arguments in debug log output + Part-of: + +2022-07-08 16:37:51 +0200 Jan Alexander Steffens (heftig) + + * gst/gstinfo.c: + gstinfo: Parse "NONE" as a valid level name + This allows using `NONE` in `GST_DEBUG`, + `gst_debug_set_threshold_from_string`, etc. It was accessible before, + but only via the integer `0`. + Part-of: + +2022-07-18 15:46:21 +0300 Sebastian Dröge + + * libs/gst/base/gstaggregator.c: + aggregator: Reset EOS flag after receiving a stream-start event + And also don't assert that there are no buffers queued up when handling + an EOS event. The pad's streaming thread might've already received a new + stream-start event and queued up a buffer in the meantime. + This still leaves a race condition where the srcpad task sees all pads + in EOS state and finishes the stream, while shortly afterwards a pad + might receive a stream-start event again, but this doesn't seem to be + solveable with the current aggregator design. + Part-of: + +2022-07-12 10:49:27 +0000 Corentin Damman + + * plugins/tracers/gstleaks.c: + tracers: leaks: fix object-refings.class flags + Part-of: + +2022-07-09 18:05:58 +0300 Sebastian Dröge + + * gst/gstdevicemonitor.c: + devicemonitor: Use a sync bus handler for the provider to avoid accumulating all messages until the provider is stopped + Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/981 + Part-of: + +2022-06-29 10:55:13 +0100 Tim-Philipp Müller + + * gst/gst.c: + * meson.build: + coding style: allow declarations after statement + See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1243/ + and https://gitlab.freedesktop.org/gstreamer/gstreamer-project/-/issues/78 + Part-of: + +2022-06-22 09:43:02 +0200 Jonas Danielsson + + * gst/gst.c: + gst: add missing define guard + If compiled with -Dgstreamer:gst_debug=false and we have + GST_REMOVE_DISABLED defined we will get the following compiler error: + ``` + [...]/libgstreamer-1.0.so.0.2100.0.p/gst.c.o: in function `gst_deinit': + [...]/gst/gst.c:1258: undefined reference to `_priv_gst_debug_cleanup' + [...] hidden symbol `_priv_gst_debug_cleanup' isn't defined + ``` + Add the missing define guard to avoid this. + Part-of: + +2022-06-20 16:45:19 +0300 Sebastian Dröge + + * gst/gstelement.c: + * tests/check/gst/gstelement.c: + element: Fix requesting of pads with string templates + Previously it was only possible to request them with the exact template + name, e.g. 'src_%s', but not with "instantiated" names that would match + this template, e.g.'src_foo_bar'. + This is now possible and a test was added for this, in addition to + fixing a previously invalid test. + Part-of: + +2022-06-16 00:59:00 +0100 Tim-Philipp Müller + + * meson.build: + Back to development + Part-of: + === release 1.20.3 === 2022-06-15 23:36:18 +0100 Tim-Philipp Müller + * ChangeLog: * NEWS: * RELEASE: * gstreamer.doap: