diff options
Diffstat (limited to 'ChangeLog')
-rw-r--r-- | ChangeLog | 227 |
1 files changed, 227 insertions, 0 deletions
@@ -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> |