From 7c44cdb0e00dd1c9932d8e5194b09fcf4e1e6fc1 Mon Sep 17 00:00:00 2001 From: Tim-Philipp Müller Date: Mon, 26 Oct 2020 11:12:10 +0000 Subject: Release 1.18.1 --- ChangeLog | 179 ++++++++++++++++++++++++++++++++ NEWS | 244 ++++++++++++++++++++++++++++++++++++++++---- RELEASE | 2 +- docs/gst_plugins_cache.json | 8 +- gst-plugins-good.doap | 10 ++ meson.build | 2 +- 6 files changed, 420 insertions(+), 25 deletions(-) diff --git a/ChangeLog b/ChangeLog index 252d6223c4..237b4c81e2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,11 +1,190 @@ +=== release 1.18.1 === + +2020-10-26 11:12:10 +0000 Tim-Philipp Müller + + * ChangeLog: + * NEWS: + * RELEASE: + * gst-plugins-good.doap: + * meson.build: + Release 1.18.1 + +2020-10-23 10:32:18 -0400 Nicolas Dufresne + + * sys/v4l2/gstv4l2object.c: + Revert "v4l2object: Only offer inactive pools and if needed" + This reverts commit 85b9893e963ea5d342289e318daeefba35ff4a07. + This change caused a regression reported in #796. Basically the pool get + deactivated by basesrc and the encoder does not recover. Recovering with + current design would cause insertion of an unwanted keyframe. + This is being reverted in 1.18 only, a proper solution is wanted for 1.20. + Part-of: + +2020-10-22 15:29:01 -0300 Thibault Saunier + + * ext/vpx/gstvpxenc.c: + vpx: Fix the check to unfixed/unknown framerate to set bitrate + 0/1 means unknown framerate not X/0 (which is illegal). + Part-of: + +2020-10-16 16:05:45 -0700 Bastien Reboulet + + * ext/qt/qtitem.cc: + qmlglsink: fix crash when created/destroyed in quick succession + The crash is caused by a race condition where the render thread + calls a method on the QtGLVideoItem instance that was + previously destroyed by the main thread. + Also, less frequently, QtGLVideoItem::onSceneGraphInitialized + is called when QQuickItem::window is null, also causing a crash. + Fixes #798 + Part-of: + +2020-10-22 09:17:26 -0400 Arun Raghavan + + * gst/rtp/gstrtputils.c: + rtputils: Count metas with an empty tag list for copying/keeping + The GstMetaInfos registered in core do not set their tags to NULL, but + instead use an empty list (non-NULL list with a single NULL value). + Let's check explicitly for that so as to not miss some metas. + Part-of: + +2020-09-23 15:25:36 -0400 Nicolas Dufresne + + * gst/rtpmanager/gstrtpbin.c: + rtpbin: Remove the rtpjitterbuffer with the stream + Since !348, the jitterbuffer was only removed with the session. This restores + the original behaviour and removes the jitterbuffer when the stream is + removed. This avoid accumulating jitterbuffer objects into the bin when a + session is reused. + Part-of: + +2020-09-23 13:26:51 -0400 Nicolas Dufresne + + * gst/rtpmanager/gstrtpbin.c: + rtpbin: Cleanup dead code + The rtpjitterbuffer is now part of the session elements, we no longer need + to do the ref_sink dance when signalling it. It is already owned by the bin + when signalled. Also, the code that handles generic session elements already + handle the ref_sink() calls since: + 03dc22951bacb6fdc3868c8f801e6a52c33a745f + Part-of: + +2020-09-18 16:09:20 +1000 Matthew Waters + + * gst/rtp/gstrtph264depay.c: + * gst/rtp/gstrtph264depay.h: + * gst/rtp/gstrtph265depay.c: + * gst/rtp/gstrtph265depay.h: + * tests/check/elements/rtph264.c: + rtph26*depay: drop FU's without a corresponding start bit + If we have not received a FU with a start bit set, any subsequent FU + data is not useful at all and would result in an invalid stream. + This case is constructed from multiple requirements in + RFC 3984 Section 5.8 and RFC 7798 Section 4.4.3. Following are excerpts + from RFC 3984 but RFC 7798 contains similar language. + The FU in a single FU case is forbidden: + A fragmented NAL unit MUST NOT be transmitted in one FU; i.e., the + Start bit and End bit MUST NOT both be set to one in the same FU + header. + and dropping is possible: + If a fragmentation unit is lost, the receiver SHOULD discard all + following fragmentation units in transmission order corresponding to + the same fragmented NAL unit. + The jump in seqnum case is supported by this from the specification + instead of implementing the forbidden_zero_bit mangling: + If a fragmentation unit is lost, the receiver SHOULD discard all + following fragmentation units in transmission order corresponding to + the same fragmented NAL unit. + A receiver in an endpoint or in a MANE MAY aggregate the first n-1 + fragments of a NAL unit to an (incomplete) NAL unit, even if fragment + n of that NAL unit is not received. In this case, the + forbidden_zero_bit of the NAL unit MUST be set to one to indicate a + syntax violation. + Part-of: + +2020-09-20 21:06:19 +0900 Seungha Yang + + * gst/imagefreeze/gstimagefreeze.c: + imagefreeze: Response caps query from srcpad + ... and chain up to default query handler for unhandled query types. + Unhandled query shouldn't be returned with FALSE if there's no special needs. + Part-of: + +2020-09-14 10:15:35 +0300 Sebastian Dröge + + * docs/gst_plugins_cache.json: + * gst/rtp/gstrtpmp4gdepay.c: + rtpmp4gdepay: Allow lower-case "aac-hbr" instead of correct "AAC-hbr" + Various live555 based products are using the wrong "mode" string or + seem to assume case-insensitive matching, which is wrong. + Examples for this are the Yuan SC6C0N1 mini and the Kiloview E2. + Part-of: + +2020-09-07 23:20:58 +0800 Ricky Tang + + * docs/gst_plugins_cache.json: + * gst/rtsp/gstrtspsrc.c: + rtspsrc: Fix push-backchannel-buffer parameter mismatch + When using python, signal parameter must match with function. + Part-of: + +2020-09-10 11:24:32 +0200 Jérôme Laheurte + + * ext/jpeg/gstjpegdec.c: + jpegdec: check buffer size before dereferencing. Fixes #541 + Some cameras (Panacast) have buggy drivers/firmware which send + invalid JPEG frames, containing no data, which makes jpegdec + crash because it assumes the frame is at least 2 bytes long. + Part-of: + +2020-09-10 11:11:00 +0200 Jan Alexander Steffens (heftig) + + * gst/flv/gstflvmux.c: + flvmux: Improve logging of gst_flv_mux_buffer_to_tag_internal + Part-of: + +2020-09-09 15:12:53 +0200 Jan Alexander Steffens (heftig) + + * gst/flv/gstflvmux.c: + flvmux: Move stream skipping to GstAggregatorPadClass.skip_buffer + Besides looking like the correct place to put this, it allows us to drop + the entire aggregator queue. The old implementation only dropped at most + one buffer for each call of aggregate. + Part-of: + +2020-09-08 17:35:50 +0200 Havard Graff + + * sys/v4l2/gstv4l2object.c: + v4l2object: plug memory-leak + Part-of: + +2020-09-08 20:57:33 +0200 Mathieu Duponchelle + + * gst/multifile/gstsplitmuxsink.c: + splitmuxsink: fix sink pad release while PLAYING + - Release the split mux lock while removing the probes + - Flush the sinkpad to unblock other pads + - Turn check_completed_gop into a do while statement, when + waking up we want to recheck whether the current GOP is + ready for sending + Part-of: + +2020-09-08 17:44:17 +0100 Tim-Philipp Müller + + * docs/gst_plugins_cache.json: + * meson.build: + Back to development + === release 1.18.0 === 2020-09-08 00:05:14 +0100 Tim-Philipp Müller + * .gitlab-ci.yml: * ChangeLog: * NEWS: * README: * RELEASE: + * docs/gst_plugins_cache.json: * gst-plugins-good.doap: * meson.build: Release 1.18.0 diff --git a/NEWS b/NEWS index dba9c7c471..c4276518e4 100644 --- a/NEWS +++ b/NEWS @@ -1,11 +1,14 @@ GStreamer 1.18 Release Notes -GStreamer 1.18.0 was originally released on 7 September 2020. +GStreamer 1.18.0 was originally released on 8 September 2020. + +The latest bug-fix release in the 1.18 series is 1.18.1 and was released +on 26 October 2020. See https://gstreamer.freedesktop.org/releases/1.18/ for the latest version of this document. -Last updated: Monday 7 September 2020, 10:30 UTC (log) +Last updated: Monday 26 October 2020, 11:00 UTC (log) Introduction @@ -28,7 +31,8 @@ Highlights - Active Format Description (AFD) and Bar Data support -- ONVIF trick modes support in both GStreamer RTSP server and client +- RTSP server and client implementations gained ONVIF trick modes + support - Hardware-accelerated video decoding on Windows via DXVA2 / Direct3D11 @@ -39,24 +43,25 @@ Highlights - qmlgloverlay: New overlay element that renders a QtQuick scene over the top of an input video stream -- New imagesequencesrc element to easily create a video stream from a +- imagesequencesrc: New element to easily create a video stream from a sequence of jpeg or png images -- dashsink: Add new sink to produce DASH content +- dashsink: New sink to produce DASH content -- dvbsubenc: DVB Subtitle encoder element +- dvbsubenc: New DVB Subtitle encoder element -- TV broadcast compliant MPEG-TS muxing with constant bitrate muxing - and SCTE-35 support +- MPEG-TS muxing now also supports TV broadcast compliant muxing with + constant bitrate muxing and SCTE-35 support -- rtmp2: new RTMP client source and sink element implementation +- rtmp2: New RTMP client source and sink element from-scratch + implementation -- svthevcenc: new SVT-HEVC-based H.265 video encoder +- svthevcenc: New SVT-HEVC-based H.265 video encoder -- vaapioverlay compositor element using VA-API +- vaapioverlay: New compositor element using VA-API -- rtpmanager support for Google’s Transport-Wide Congestion Control - (twcc) RTP extension +- rtpmanager gained support for Google’s Transport-Wide Congestion + Control (twcc) RTP extension - splitmuxsink and splitmuxsrc gained support for auxiliary video streams @@ -64,18 +69,18 @@ Highlights - webrtcbin now contains some initial support for renegotiation involving stream addition and removal -- New RTP source and sink elements to easily set up RTP streaming via - rtp:// URIs +- RTP support was enhanced with new RTP source and sink elements to + easily set up RTP streaming via rtp:// URIs -- New Audio Video Transport Protocol (AVTP) plugin for Time-Sensitive - Applications +- avtp: New Audio Video Transport Protocol (AVTP) plugin for + Time-Sensitive Applications - Support for the Video Services Forum’s Reliable Internet Stream Transport (RIST) TR-06-1 Simple Profile - Universal Windows Platform (UWP) support -- rpicamsrc element for capturing from the Raspberry Pi camera +- rpicamsrc: New element for capturing from the Raspberry Pi camera - RTSP Server TCP interleaved backpressure handling improvements as well as support for Scale/Speed headers @@ -2179,7 +2184,208 @@ the git 1.18 branch, which will be a stable branch. 1.18.0 -1.18.0 was released on 7 September 2020. +1.18.0 was released on 8 September 2020. + +1.18.1 + +The first 1.18 bug-fix release (1.18.1) was released on 26 October 2020. + +This release only contains bugfixes and it should be safe to update from +1.18.0. + +Highlighted bugfixes in 1.18.1 + +- important security fixes +- bug fixes and memory leak fixes +- various stability and reliability improvements + +gstreamer + +- aggregator: make peek() has() pop() drop() buffer API threadsafe +- gstvalue: don’t write to const char * +- meson: Disallow DbgHelp for UWP build +- info: Fix build on Windows ARM64 device +- build: use cpu_family for arch checks +- basetransform: Fix in/outbuf confusion of _default_transform_meta +- Fix documentation +- info: Load DbgHelp.dll using g_module_open() +- padtemplate: mark documentation caps as may be leaked +- gstmeta: intern registered impl string +- aggregator: Hold SRC_LOCK while unblocking via SRC_BROADCAST() +- ptp_helper_post_install.sh: deal with none +- skip elements/leak.c if tracer is not available +- aggregator: Wake up source pad in PAUSED<->PLAYING transitions +- input-selector: Wake up blocking pads when releasing them +- ptp: Also handle gnu/kfreebsd + +gst-plugins-base + +- theoradec: Set telemetry options only if they are nonzero +- glslstage: delete shader on finalize of stage +- urisourcebin: Fix crash caused by use after free +- decodebin3: Store stream-start event on output pad before exposing + it +- Add some missing nullable annotations +- typefind/xdgmime: Validate mimetypes to be valid GstStructure names + before using them +- uridecodebin3: Forward upstream events to decodebin3 directly +- video-converter: Add fast paths from v210 to I420/YV12, Y42B, UYVY + and YUY2 +- videoaggregator: Limit accepted caps by template caps +- gstrtpbuffer: fix header extension length validation +- decodebin3: only force streams-selected seqnum after a + select-streams +- videodecoder: don’t copy interlace-mode from reference state +- enable abi checks +- multihandlesink: Don’t pass NULL caps to gst_caps_is_equal +- audio: video: Fix in/outbuf confusion of transform_meta +- meson: Always wrap “prefix” option with join_paths() to make Windows + happy +- videoaggregator: ensure peek_next_sample() uses the correct caps +- meson: Actually build gstgl without implicit include dirs +- videoaggregator: Don’t require any pads to be configured for + negotiating source pad caps +- gst-libs: gl: Fix documentation typo and clarify + gl_memory_texsubimage +- audioaggregator: Reset offset if the output rate is renegotiated +- video-anc: Implement transform functions for AFD/Bar metas +- appsrc: Wake up the create() function on caps changes +- rtpbasepayload: do not forget delayed segment when forwarding gaps + +gst-plugins-good + +- v4l2object: Only offer inactive pools and if needed +- vpx: Fix the check to unfixed/unknown framerate to set bitrate +- qmlglsink: fix crash when created/destroyed in quick succession +- rtputils: Count metas with an empty tag list for copying/keeping +- rtpbin: Remove the rtpjitterbuffer with the stream +- rtph26*depay: drop FU’s without a corresponding start bit +- imagefreeze: Response caps query from srcpad +- rtpmp4gdepay: Allow lower-case “aac-hbr” instead of correct + “AAC-hbr” +- rtspsrc: Fix push-backchannel-buffer parameter mismatch +- jpegdec: check buffer size before dereferencing +- flvmux: Move stream skipping to GstAggregatorPadClass.skip_buffer +- v4l2object: plug memory leak +- splitmuxsink: fix sink pad release while PLAYING + +gst-plugins-bad + +- codecparsers: h264parser: guard against ref_pic_markings overflow +- v4l2codecs: Various fixes +- h265parse: Don’t enable passthrough by default +- srt: Fix “Fix timestamping” +- srt: Fixes for 1.4.2 +- dtlsconnection: Ignore OpenSSL system call errors +- h265parse: set interlace-mode=interleaved on interlaced content +- Replace GPL v2 with LGPL v2 in COPYING file +- srt: Consume the error from gst_srt_object_write +- srt: Check socket state before retrieving payload size +- x265enc: fix deadlock on reconfig +- webrtc: Require gstreamer-sdp in the pkg-config file +- srtsrc: Fix timestamping +- mfvideosrc: Use only the first video stream per device +- srtobject: typecast SRTO_LINGER to linger +- decklink: Correctly order the different dependent mode tables +- wasapisrc: Make sure that wasapisrc produces data in loopback mode +- wpesrc: fix some caps leaks using the non-GL output +- smoothstreaming: clear live adapter on seek +- vtdec/vulkan: use Shared storage mode for IOSurface textures +- wpe: Move webview load waiting to WPEView +- wpe: Use proper callback for TLS errors signal handling +- kmssink: Do not source using padded width/height +- avtp: avtpaafdepay: fix crash when building caps +- opencv: set opencv_dep when option is disabled to fix the build +- line21encoder: miscellaneous enhancements +- Hls youtube issues with urisourcebin/queue2 +- rtmp2: Replace stats queue with stats lock +- rtmp2sink: support EOS event for graceful connection shutdown +- mpegtsmux: Make handling of sinkpads thread-safe +- hlssink2: Actually release splitmuxsink’s pads +- mpegtsmux: Don’t create streams with reserved PID + +gst-plugins-ugly + +- no changes + +gst-libav + +- avaudenc/avvidenc: Reopen encoding session if it’s required +- avauddec/audenc/videnc: Don’t return GST_FLOW_EOS when draining +- avauddec/avviddec: Avoid dropping non-OK flow return +- avcodecmap: Enable 24 bit WMA Lossless decoding + +gst-rtsp-server + +- rtsp-stream: collect rtp info when blocking +- rtsp-media: set a 0 storage size for TCP receivers +- rtsp-stream: preroll on gap events +- rtsp-media: do not unblock on unsuspend + +gstreamer-vaapi + +- decoder: don’t reply src caps query with allowed if pad is fixed +- plugins: decode: fix a DMA caps typo in ensure_allowed_srcpad_caps + +gstreamer-sharp + +- Add bindings for some missing 1.18 API + +gst-omx + +- omxvideodec: support interlace-mode=interleaved input + +gst-python + +- no changes + +gst-editing-services + +- ges: Do not recreate auto-transitions when changing clip assets +- ges: Fix a copy/paste mistake in meson file + +gst-integration-testsuites + +- medias: Update for h265parse passthrough behavior change +- update validate.test.h265parse.alternate test + +gst-build + +- windows: Detect Strawberry Perl and error out early +- {pygobject,pycairo}.wrap: point to stable refs + +Cerbero build tool and packaging changes in 1.18.1 + +- Add macOS Big Sur support +- gst-plugins-bad: Ship rtpmanagerbad plugin +- gstreamer-1.0: Don’t enable DbgHelp for UWP build +- pango: fix font corruption on windows +- cairo: use thread local storage to grant one windows HDC per thread +- small fixes for Xcode 12 +- cerbero: Re-add alsa-devel to bootstrap on Linux +- FreeType: update to 2.10.4 to fix security vulnerability + +Contributors to 1.18.1 + +Aaron Boxer, Adam Williamson, Andrew Wesie, Arun Raghavan, Bastien +Reboulet, Brent Gardner, Edward Hervey, François Laignel, Guillaume +Desmottes, Havard Graff, He Junyan, Hosang Lee, Jacek Tomaszewski, Jakub +Adam, Jan Alexander Steffens (heftig), Jan Schmidt, Jérôme Laheurte, +Jordan Petridis, Marc Leeman, Marian Cichy, Marijn Suijten, Mathieu +Duponchelle, Matthew Waters, Michael Tretter, Nazar Mokrynskyi, Nicolas +Dufresne, Niklas Hambüchen, Nirbheek Chauhan, Olivier Crête, Philippe +Normand, raghavendra, Ricky Tang, Sebastian Dröge, Seungha Yang, +sohwan.park, Stéphane Cerveau, Thibault Saunier, Tim-Philipp Müller, Tom +Schoonjans, Víctor Manuel Jáquez Leal, Will Miller, Xavier Claessens, Xℹ +Ruoyao, Zebediah Figura, + +… and many others who have contributed bug reports, translations, sent +suggestions or helped testing. Thank you all! + +List of merge requests and issues fixed in 1.18.1 + +- List of Merge Requests applied in 1.18.1 +- List of Issues fixed in 1.18.1 Schedule for 1.20 diff --git a/RELEASE b/RELEASE index 852a7102d4..c3c472c00c 100644 --- a/RELEASE +++ b/RELEASE @@ -1,4 +1,4 @@ -This is GStreamer gst-plugins-good 1.18.0. +This is GStreamer gst-plugins-good 1.18.1. The GStreamer team is thrilled to announce a new major feature release of your favourite cross-platform multimedia framework! diff --git a/docs/gst_plugins_cache.json b/docs/gst_plugins_cache.json index 5511b9e633..5feaf8619e 100644 --- a/docs/gst_plugins_cache.json +++ b/docs/gst_plugins_cache.json @@ -6595,7 +6595,7 @@ "construct": false, "construct-only": false, "controllable": false, - "default": "GStreamer 1.18.0.1 FLV muxer", + "default": "GStreamer 1.18.1 FLV muxer", "mutable": "null", "readable": true, "type": "gchararray", @@ -6607,7 +6607,7 @@ "construct": false, "construct-only": false, "controllable": false, - "default": "GStreamer 1.18.0.1 FLV muxer", + "default": "GStreamer 1.18.1 FLV muxer", "mutable": "null", "readable": true, "type": "gchararray", @@ -20636,7 +20636,7 @@ "construct": false, "construct-only": false, "controllable": false, - "default": "GStreamer/1.18.0.1", + "default": "GStreamer/1.18.1", "mutable": "null", "readable": true, "type": "gchararray", @@ -22593,7 +22593,7 @@ "construct": false, "construct-only": false, "controllable": false, - "default": "GStreamer souphttpsrc 1.18.0.1 ", + "default": "GStreamer souphttpsrc 1.18.1 ", "mutable": "null", "readable": true, "type": "gchararray", diff --git a/gst-plugins-good.doap b/gst-plugins-good.doap index 00966a2355..54fab3d508 100644 --- a/gst-plugins-good.doap +++ b/gst-plugins-good.doap @@ -32,6 +32,16 @@ the plug-in code, LGPL or LGPL-compatible for the supporting library). + + + 1.18.1 + 1.18 + + 2020-10-26 + + + + 1.18.0 diff --git a/meson.build b/meson.build index 0a16c866bc..741ebe4abc 100644 --- a/meson.build +++ b/meson.build @@ -1,5 +1,5 @@ project('gst-plugins-good', 'c', - version : '1.18.0.1', + version : '1.18.1', meson_version : '>= 0.48', default_options : [ 'warning_level=1', 'buildtype=debugoptimized' ]) -- cgit v1.2.3