From 4013b8003e78971dd01b055066c12f8aaadb8897 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Mon, 26 Oct 2020 11:10:30 +0000 Subject: [PATCH] Release 1.18.1 --- ChangeLog | 280 ++++++++++++++++++++++++++++++++++++++++++ NEWS | 244 +++++++++++++++++++++++++++++++++--- RELEASE | 2 +- gst-plugins-base.doap | 10 ++ meson.build | 2 +- 5 files changed, 517 insertions(+), 21 deletions(-) diff --git a/ChangeLog b/ChangeLog index b1ff96b04b..ccd2c6c8a4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,7 +1,287 @@ +=== release 1.18.1 === + +2020-10-26 11:10:30 +0000 Tim-Philipp Müller + + * ChangeLog: + * NEWS: + * RELEASE: + * gst-plugins-base.doap: + * meson.build: + Release 1.18.1 + +2020-10-21 14:55:40 -0500 Zebediah Figura + + * ext/theora/gsttheoradec.c: + theoradec: Set telemetry options only if they are nonzero + Setting telemetry options, even to zero, causes libtheora to enable an expensive code path. For large enough videos (e.g. 1920x1080) this can increase the time to decode each frame by 30-40 ms, which can be enough to cause noticeable stutter. + Part-of: + +2020-10-21 11:42:54 +0200 Michael Tretter + + * gst-libs/gst/gl/gstglslstage.c: + glslstage: delete shader on finalize of stage + GLSLstage creates the glShader using glCreateShader, but never calls + glDeleteShader if the glShader is not used anymore. This forces the GL + library to keep the compiled shader around, because it might be used in + the future. Therefore, the glShader is leaked whenever a GLSLStage is + destroyed. + Fix the leak by deleting the glShader when finishing the GLSLStage. + Part-of: + +2020-10-22 19:16:42 +0900 Seungha Yang + + * gst/playback/gsturisourcebin.c: + urisourcebin: Fix crash caused by use after free + OutputSlotInfo doesn't hold ref of queue, so gst_bin_remove() + will free the queue memory. + Part-of: + +2020-10-13 03:34:07 +0900 Seungha Yang + + * tests/examples/decodebin_next/meson.build: + * tests/examples/decodebin_next/uridecodebin3-select-all.c: + examples: Add an uridecodebin3 example + Demonstrate a way to select multiple streams + Part-of: + +2020-10-19 20:03:40 +0900 Seungha Yang + + * gst/playback/gstdecodebin3.c: + * gst/playback/gsturidecodebin3.c: + decodebin3: Store stream-start event on output pad before exposing it + It's required for users to be able to figure out associated GstStream + object with a pad on pad-added callback. + Part-of: + +2020-10-17 12:35:16 +0300 Sebastian Dröge + + * gst-libs/gst/app/gstappsink.c: + * gst-libs/gst/app/gstappsrc.c: + Add some missing nullable annotations + Part-of: + +2020-10-17 10:42:49 +0300 Sebastian Dröge + + * gst/typefind/gsttypefindfunctions.c: + typefind/xdgmime: Validate mimetypes to be valid GstStructure names before using them + On macOS, for example, "text/*" can be returned as mimetype for + plaintext files but we don't allow '*' in structure names and this would + cause critical warnings. + It's a valid mimetype but not a valid structure name. + Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/616 + Part-of: + +2020-10-13 17:57:53 +0900 Seungha Yang + + * gst/playback/gsturidecodebin3.c: + uridecodebin3: Forward upstream events to decodebin3 directly + Otherwise default handler will try to forward it to sink element + or srcpad which might not be available at that moment. + +2020-08-04 12:53:18 +0300 Sebastian Dröge + + * gst-libs/gst/video/video-converter.c: + video-converter: Add fast paths from v210 to I420/YV12, Y42B, UYVY and YUY2 + These then don't require going through the generic code path via AYUV64 + first but can be converted directly. + This speeds up processing of + videotestsrc ! v210 ! videoconvert ! other_format ! fakesink + by a factor of 1.55 for I420/YV12 and 1.40 for the other destination + formats and reduces memory pressure considerably. + Part-of: + +2020-10-13 15:31:41 +0200 Jan Alexander Steffens (heftig) + + * gst-libs/gst/video/gstvideoaggregator.c: + videoaggregator: Limit accepted caps by template caps + This seems like an obvious mistake, since `modified_caps` was created + but not used. + Part-of: + +2020-10-13 15:28:54 +0200 Jan Alexander Steffens (heftig) + + * gst-libs/gst/video/gstvideoaggregator.c: + videoaggregator: Log the format name instead of index + Part-of: + +2020-10-12 12:21:17 +0100 Will Miller + + * gst-libs/gst/rtp/gstrtpbuffer.c: + * tests/check/libs/rtp.c: + gstrtpbuffer: fix header extension length validation + We validate the header extensions length of an RTP buffer by comparing + it against the block size. Since we multiply the length in words by 4 to + get the length in bytes, a suitably large length could cause a wrapround + of the uint16, giving a lower length which erroneously passes the check + and allows the buffer to be mapped. + Part-of: + +2020-10-10 17:26:42 +0200 François Laignel + + * gst/playback/gstdecodebin3.c: + decodebin3: only force streams-selected seqnum after a select-streams + The initial streams-selected message might not match any select-streams, + in which case it is currently overriden with GST_SEQNUM_INVALID. + Related to: + - https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/601 + Part-of: + +2020-10-08 13:52:33 +0200 Jan Alexander Steffens (heftig) + + * gst-libs/gst/audio/gstaudiofilter.c: + * gst-libs/gst/video/gstvideofilter.c: + * gst/videoscale/gstvideoscale.c: + audio: video: Fix in/outbuf confusion of transform_meta + There are three instances where in- and outbuf have been swapped. This + didn't affect the correctness of the libs *filter code, but the + videoscale implementation swapped the arguments of meta->transform_func. + Part-of: + +2020-10-09 12:25:21 +1100 Matthew Waters + + * meson.build: + build: use cpu_family for arch checks + e.g. on 32-bit arm, we may have armv6, armv7l, armv7hf, etc which all + generally have the same layouts. cpu_family() groups all of these into + just 'arm' that the ABI check table is expecting. + Part-of: + +2020-09-14 17:56:07 +0900 sohwan.park + + * meson.build: + meson: add abi configuration for meson build + Part-of: + +2020-10-09 12:02:14 +0200 Guillaume Desmottes + + * gst-libs/gst/video/video-info.h: + video-info: clarify GST_VIDEO_INTERLACE_MODE_ALTERNATE doc + Fields really should alternate in this mode. + Part-of: + +2020-10-05 12:07:22 +0200 Guillaume Desmottes + + * gst-libs/gst/video/gstvideodecoder.c: + videodecoder: fix output state interlace-mode + When user is passing the actual interlace-mode when calling + gst_video_decoder_set_interlaced_output_state() it should not be + overidden by the input interlace-mode. + Needed to fix #825 as we want to keep interlace-mode=interleaved from + parsers and have the OMX decoder producing interlace-mode=alternate. + Part-of: + +2020-10-05 11:38:09 +0200 Guillaume Desmottes + + * gst-libs/gst/video/gstvideodecoder.c: + videodecoder: add interlace-mode to debug output when setting output state + Part-of: + +2020-10-01 11:22:51 +0200 Jan Alexander Steffens (heftig) + + * gst/tcp/gstmultihandlesink.c: + multihandlesink: Don't pass NULL caps to gst_caps_is_equal + Apparently the sinkpad caps can get cleared when shutting down the + pipeline while the sink is working, provoking a critical warning. + Part-of: + +2020-09-08 15:41:55 +0530 Nirbheek Chauhan + + * gst-libs/gst/gl/meson.build: + meson: Actually build gstgl without implicit include dirs + Fixes a typo from https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/800 + Part-of: + +2020-09-16 04:30:40 +0900 Seungha Yang + + * meson.build: + meson: Always wrap "prefix" option with join_paths() to make Windows happy + Both "\" and "/" separators are allowed on Windows but the problem + is that "\" is not converted to "\\" in this case. + It will result to unknown/unrecognized character escape sequence. + Part-of: + +2020-09-11 21:40:26 +1000 Matthew Waters + + * gst-libs/gst/video/gstvideoaggregator.c: + videoaggregator: ensure peek_next_sample() uses the correct caps + gst_pad_get_current_caps() may be wrong when there is a renegotiation in + progress for the pad and we have not yet received or selected the buffer + with different caps yet. + Fix by storing the caps through in a similar way to the existing code + for buffer/video-info selection machinery. + Part-of: + +2020-08-20 09:06:04 +0300 Sebastian Dröge + + * gst-libs/gst/video/gstvideoaggregator.c: + videoaggregator: Don't require any pads to be configured for negotiating source pad caps + This is not actually required (anymore?). Source pad caps can be + negotiated at any time regardless of any configured (or existing) sink + pads and videoaggregator comes up with some fixated caps based on the + downstream caps. + Subclasses can override this behaviour as needed by overriding + update_src_caps(). + Part-of: + +2020-09-03 21:19:29 +0200 Marijn Suijten + + * gst-libs/gst/gl/gstglmemory.c: + * gst-libs/gst/gl/gstglmemory.h: + * gst-libs/gst/gl/gstglmemorypbo.c: + * gst-libs/gst/video/video-color.c: + gst-libs: gl: Fix documentation typo and clarify gl_memory_texsubimage + `gst_gl_memory_read_pixels` reads pixels from `GLMemory` into the + pointer, effectively writing to it. This is opposite from + `gst_gl_memory_texsubimage` which reads texture data from `read_pointer` + into `GLMemory`. + Both cases are clarified by changing `read_pointer` to `write_pointer`, + and explaining what `gst_gl_memory_texsubimage` does in addition to + referring back to `gst_gl_memory_read_pixels`. + Part-of: + +2020-08-20 16:31:38 +0300 Sebastian Dröge + + * gst-libs/gst/audio/gstaudioaggregator.c: + audioaggregator: Reset offset if the output rate is renegotiated + On next aggregation the new offset will be calculated based on the + segment position. + Without this a rate change would cause a jump forwards or backwards in + the output timeline. + Part-of: + +2020-08-18 10:42:09 +0300 Sebastian Dröge + + * gst-libs/gst/video/video-anc.c: + video-anc: Implement transform functions for AFD/Bar metas + If the transformation is just a copy, copy over the metadata. For AFD + also copy over the metadata if the aspect ratio stays the same in + scaling transformations. In all other cases fail the transformation. + Part-of: + +2020-08-24 19:37:15 +0300 Sebastian Dröge + + * gst-libs/gst/app/gstappsrc.c: + appsrc: Wake up the create() function on caps changes + This allows the new caps to be sent downstream as soon as possible + instead of having to wait for the next buffer/buffer list. + Part-of: + +2020-08-21 03:06:04 +0200 Mathieu Duponchelle + + * gst-libs/gst/rtp/gstrtpbasepayload.c: + rtpbasepayload: do not forget delayed segment when forwarding gaps + Part-of: + +2020-09-08 17:44:09 +0100 Tim-Philipp Müller + + * meson.build: + Back to development + === release 1.18.0 === 2020-09-08 00:03:33 +0100 Tim-Philipp Müller + * .gitlab-ci.yml: * ChangeLog: * NEWS: * README: 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 3a3c748a9c..ed60feb2d7 100644 --- a/RELEASE +++ b/RELEASE @@ -1,4 +1,4 @@ -This is GStreamer gst-plugins-base 1.18.0. +This is GStreamer gst-plugins-base 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/gst-plugins-base.doap b/gst-plugins-base.doap index c353c0492e..9e7fa3c817 100644 --- a/gst-plugins-base.doap +++ b/gst-plugins-base.doap @@ -34,6 +34,16 @@ A wide range of video and audio decoders, encoders, and filters are included. + + + 1.18.1 + 1.18 + + 2020-10-26 + + + + 1.18.0 diff --git a/meson.build b/meson.build index a3167ea9ab..5ecce7f352 100644 --- a/meson.build +++ b/meson.build @@ -1,5 +1,5 @@ project('gst-plugins-base', 'c', - version : '1.18.0.1', + version : '1.18.1', meson_version : '>= 0.48', default_options : [ 'warning_level=1', 'buildtype=debugoptimized' ])