summaryrefslogtreecommitdiff
path: root/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog227
1 files changed, 227 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 78ababc0b..05f1617a1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,230 @@
+=== release 1.18.6 ===
+
+2022-02-02 15:06:15 +0000 Tim-Philipp Müller <tim@centricular.com>
+
+ * ChangeLog:
+ * NEWS:
+ * RELEASE:
+ * gst-plugins-base.doap:
+ * meson.build:
+ Release 1.18.6
+
+2021-11-21 17:52:48 -0500 Jeremy Cline <jeremy@jcline.org>
+
+ * gst-libs/gst/tag/gsttagdemux.c:
+ tagdemux: Fix crash when presented with malformed files
+ There's a race condition in gsttagdemux.c between typefinding and the
+ end-of-stream event. If TYPE_FIND_MAX_SIZE is exceeded,
+ demux->priv->collect is set to NULL and an error is returned. However,
+ the end-of-stream event causes one last attempt at typefinding to occur.
+ This leads to gst_tag_demux_trim_buffer() being called with the NULL
+ demux->priv->collect buffer which it attempts to dereference, resulting
+ in a segfault.
+ The malicious MP3 can be created by:
+ printf "\x49\x44\x33\x04\x00\x00\x00\x00\x00\x00%s", \
+ "$(dd if=/dev/urandom bs=1K count=200)" > malicious.mp3
+ This creates a valid ID3 header which gets us as far as typefinding. The
+ crash can then be reproduced with the following pipeline:
+ gst-launch-1.0 -e filesrc location=malicious.mp3 ! queue ! decodebin ! audioconvert ! vorbisenc ! oggmux ! filesink location=malicious.ogg
+ Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/959
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1295>
+
+2021-04-20 11:06:09 +0300 Jordan Petridis <jordan@centricular.com>
+
+ * gst-libs/gst/video/gstvideoencoder.c:
+ gstvideoencoder: make sure the buffer is writable before modifying metadata
+ Similar to ae8d0cf3acfaf79d8479647a55bd44b8453d07df
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1294>
+
+2021-12-10 20:09:42 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/video/video-converter.c:
+ video-converter: Fix for broken gamma remap with high bitdepth YUV output
+ Scale down the matrix before calculating RGB -> YUV matrix
+ otherwise offset values will be wrong
+ Fixing pipeline
+ videotestsrc ! video/x-raw,format=ARGB ! videoconvert gamma-mode=remap ! \
+ video/x-raw,format=P010_10LE,colorimetry="bt2020"
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1293>
+
+2022-01-15 19:03:33 +0100 Tomasz Andrzejak <andreiltd@gmail.com>
+
+ * gst-libs/gst/sdp/gstsdpmessage.c:
+ * tests/check/libs/sdp.c:
+ Add FEC SDP message test
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1292>
+
+2022-01-15 17:02:52 +0100 Tomasz Andrzejak <andreiltd@gmail.com>
+
+ * gst-libs/gst/sdp/gstsdpmessage.c:
+ sdpmessage: fix mapping single char fmtp params
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1292>
+
+2021-06-08 14:55:36 +1000 Matthew Waters <matthew@centricular.com>
+
+ * ext/ogg/gstoggdemux.c:
+ oggdemux: fix a race in push mode when performing the duration seek
+ There may be two or more threads involved here however the important
+ interaction is the use of ogg->seeK_event_drop_till value that was only
+ set in the push-mode seek-event thread and could race with upstream
+ sending e.g. and EOS (or data).
+ Scenario is this:
+ 1. oggdemux performs a seek to near the end of the file to try and find
+ the duration. ogg->push_state is set to PUSH_DURATION.
+ 2. Seek is picked up by the dedicated seek event thread and sets
+ ogg->seek_event_drop_till to the seek event's seqnum.
+ 3. Most operations are blocked or dropped waiting on the duration to
+ be determined and processing continues until a duration is found.
+ 4. Two branching options for how this ultimately plays out
+ 4a. The source is too fast and we receive an EOS event which is dropped
+ because ogg->push_state == PUSH_DURATION. In this case everything
+ works.
+ 4b. We hit our 'almost at the end' check in
+ gst_ogg_pad_handle_push_mode_state() and attempt to seek back to the
+ beginning (or to a user-provided seek). This seek is marshalled to
+ the seek event thread without setting ogg->seek_event_drop_till but
+ with change ogg->push_state = PUSH_PLAYING. If an EOS event or
+ e.g. buffers arrive from upstream before the seek event thread has
+ picked up the seek event, then the EOS/data is processed as if it
+ came as a result of the seek event. This is the case that fails.
+ The fix is two-fold:
+ 1. Preemptively set ogg->seek_event_drop_till when setting the seek
+ event so that data and other events can be dropped correctly.
+ 2. In addition to dropping and EOS events while ogg->push_state ==
+ PUSH_DURATION, also drop any EOS events that are received before the
+ seek event has been processed by also tracking the seqnum of the seek.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1291>
+
+2022-01-13 23:00:41 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst/playback/gsturidecodebin.c:
+ uridecodebin: Fix critical warnings
+ Don't pass non-GstObject object to there.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1290>
+
+2021-12-20 21:37:18 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * gst-libs/gst/audio/audio-converter.c:
+ * gst-libs/gst/audio/audio-resampler.c:
+ audio-converter: Fix resampling when there's nothing to output
+ Sometimes we can't output anything because we don't have enough
+ incoming frames. In that case, the resampler was trying to call
+ do_quantize() and do_resample() in a loop forever because there would
+ never be samples to output (so chain->samples would always be NULL).
+ Fix this by not calling chain->make_func() in a loop -- seems
+ completely unnecessary since calling it over and over won't change
+ anything if the make_func() can't output samples.
+ Also add some checks for the input and / or output being NULL when
+ doing conversion or quantization. This will happen when we have
+ nothing to output.
+ We can't bail early, because we need resampler->samples_avail to be
+ updated in gst_audio_resampler_resample(), so we must call that and
+ no-op everything along the way.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1289>
+
+2021-11-19 00:09:03 +0100 Thomas Klausner <tk@giga.or.at>
+
+ * gst/tcp/gstmultifdsink.c:
+ tcp: fix build on Solaris
+ Add missing header.
+ From Claes Nästén via http://gnats.netbsd.org/56509
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1288>
+
+2021-11-16 13:14:25 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst/playback/gsturidecodebin3.c:
+ uridecodebin3: Nullify current item after all play items are freed.
+ There's a potential race condition with this sort of pipelines on
+ certain systems (depends on the processing load):
+ GST_DEBUG_DUMP_DOT_DIR=/tmp \
+ gst-launch-1.0 uridecodebin3 uri=file://stream.mp4 ! glupload ! \
+ glimagesink --gst-debug=*:4
+ Right after the pipeline passes from PAUSED to READY, bin_to_dot_file
+ dumps uridecodebin3 properties, but current uri and suburi might be
+ already freed, causing a potential use-after-freed.
+ This patch makes NULL the current item right after all the play items
+ are freed.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1287>
+
+2021-11-12 18:26:58 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * gst-libs/gst/audio/audio-resampler.c:
+ audio-resampler: Fix segfault when we can't output any frames
+ Sometimes the resampler has enough space to store all the incoming
+ samples without outputting anything. When this happens,
+ gst_audio_resampler_get_out_frames() returns 0.
+ In that case, the resampler should consume samples and just return.
+ Otherwise, we get a segfault when gst_audio_resampler_resample() tries
+ to resample into a NULL 'out' pointer.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1286>
+
+2021-09-24 15:02:27 +1000 Matthew Waters <matthew@centricular.com>
+
+ * gst/playback/gstplaybin2.c:
+ * gst/playback/gstplaybin3.c:
+ playbin2/3: autoplug/caps: don't expand caps to ANY
+ Retrieving the pad template caps from a ghost pad returns ANY which when
+ merged with any other caps will return ANY. ANY is not very specific
+ and may cause suboptimal code paths in e.g. decoders that assume the
+ lowest common denominator when presented with ANY caps.
+ Fixes negotiating dma-buf with vaapidecodebin between glupload in the
+ video sink element.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1284>
+
+2021-10-09 05:39:38 +1100 Jan Schmidt <jan@centricular.com>
+
+ * gst/playback/gsturidecodebin3.c:
+ * gst/playback/gsturisourcebin.c:
+ uridecodebin3/urisourcebin: Reusability fixes
+ Improvements to uridecodebin3 and urisourcebin so that they are
+ reusable across a PAUSED->READY->PAUSED transition.
+ Disconnect and release decodebin3 request pads when urisourcebin
+ removes src pads.
+ In urisourcebin, make sure to remove src pads that are exposed
+ directly (raw pads and static typefind srcpads) when
+ cleaning up.
+ Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/768
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1283>
+
+2021-04-21 22:40:35 -0400 Thibault Saunier <tsaunier@igalia.com>
+
+ * gst/playback/gsturisourcebin.c:
+ playback: Handle sources with dynamic pads and pads already present
+ In case we already have a pad but more might be added later we were
+ ignoring the new pads added later, we should track the element
+ new pads and expose them as they are added.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1285>
+
+2021-09-07 13:55:08 +0200 Tobias Ronge <tobiasr@axis.com>
+
+ * gst-libs/gst/rtsp/gstrtspconnection.c:
+ rtspconnection: Only reset timeout when socket is unused
+ After sending or retrieving data, gstrtspconnection resets the socket's
+ timeout to 0 (infinite). This could cause problems if sending and
+ receiving at the same time. For example, if RTCP data is sent from the
+ streaming thread while gstrtspsrc is already retrieving data.
+ With this patch, timeout is only reset to 0 if there is no other
+ thread using the socket.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1282>
+
+2020-12-14 07:42:55 +0100 Fabrice Fontaine <fontaine.fabrice@gmail.com>
+
+ * gst-libs/gst/video/gstvideoaggregator.c:
+ gst-libs/gst/video/gstvideoaggregator.c: fix build with gcc 4.8
+ Fix the following build failure with gcc 4.8 which has been added with
+ https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/commit/d268c193ad39fb970351ed62898be806ebd0a71e:
+ ../gst-libs/gst/video/gstvideoaggregator.c: In function 'gst_video_aggregator_init':
+ ../gst-libs/gst/video/gstvideoaggregator.c:2762:3: error: 'for' loop initial declarations are only allowed in C99 mode
+ for (gint i = 0; i < gst_caps_get_size (src_template); i++) {
+ ^
+ Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1281>
+
+2021-09-09 00:12:33 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * meson.build:
+ Back to development
+
=== release 1.18.5 ===
2021-09-08 20:02:20 +0100 Tim-Philipp Müller <tim@centricular.com>