diff options
Diffstat (limited to 'ChangeLog')
-rw-r--r-- | ChangeLog | 463 |
1 files changed, 463 insertions, 0 deletions
@@ -1,3 +1,466 @@ +=== release 1.16.3 === + +2020-10-21 14:48:58 +0100 Tim-Philipp Müller <tim@centricular.com> + + * ChangeLog: + * NEWS: + * RELEASE: + * configure.ac: + * gst-plugins-good.doap: + * meson.build: + Release 1.16.3 + +2020-10-21 14:48:58 +0100 Tim-Philipp Müller <tim@centricular.com> + + * docs/plugins/gst-plugins-good-plugins.args: + * docs/plugins/inspect/plugin-1394.xml: + * docs/plugins/inspect/plugin-aasink.xml: + * docs/plugins/inspect/plugin-alaw.xml: + * docs/plugins/inspect/plugin-alpha.xml: + * docs/plugins/inspect/plugin-alphacolor.xml: + * docs/plugins/inspect/plugin-apetag.xml: + * docs/plugins/inspect/plugin-audiofx.xml: + * docs/plugins/inspect/plugin-audioparsers.xml: + * docs/plugins/inspect/plugin-auparse.xml: + * docs/plugins/inspect/plugin-autodetect.xml: + * docs/plugins/inspect/plugin-avi.xml: + * docs/plugins/inspect/plugin-cacasink.xml: + * docs/plugins/inspect/plugin-cairo.xml: + * docs/plugins/inspect/plugin-cutter.xml: + * docs/plugins/inspect/plugin-debug.xml: + * docs/plugins/inspect/plugin-deinterlace.xml: + * docs/plugins/inspect/plugin-dtmf.xml: + * docs/plugins/inspect/plugin-dv.xml: + * docs/plugins/inspect/plugin-effectv.xml: + * docs/plugins/inspect/plugin-equalizer.xml: + * docs/plugins/inspect/plugin-flac.xml: + * docs/plugins/inspect/plugin-flv.xml: + * docs/plugins/inspect/plugin-flxdec.xml: + * docs/plugins/inspect/plugin-gdkpixbuf.xml: + * docs/plugins/inspect/plugin-goom.xml: + * docs/plugins/inspect/plugin-goom2k1.xml: + * docs/plugins/inspect/plugin-gtk.xml: + * docs/plugins/inspect/plugin-icydemux.xml: + * docs/plugins/inspect/plugin-id3demux.xml: + * docs/plugins/inspect/plugin-imagefreeze.xml: + * docs/plugins/inspect/plugin-interleave.xml: + * docs/plugins/inspect/plugin-isomp4.xml: + * docs/plugins/inspect/plugin-jack.xml: + * docs/plugins/inspect/plugin-jpeg.xml: + * docs/plugins/inspect/plugin-lame.xml: + * docs/plugins/inspect/plugin-level.xml: + * docs/plugins/inspect/plugin-matroska.xml: + * docs/plugins/inspect/plugin-mpg123.xml: + * docs/plugins/inspect/plugin-mulaw.xml: + * docs/plugins/inspect/plugin-multifile.xml: + * docs/plugins/inspect/plugin-multipart.xml: + * docs/plugins/inspect/plugin-navigationtest.xml: + * docs/plugins/inspect/plugin-oss4.xml: + * docs/plugins/inspect/plugin-ossaudio.xml: + * docs/plugins/inspect/plugin-png.xml: + * docs/plugins/inspect/plugin-pulseaudio.xml: + * docs/plugins/inspect/plugin-qmlgl.xml: + * docs/plugins/inspect/plugin-replaygain.xml: + * docs/plugins/inspect/plugin-rtp.xml: + * docs/plugins/inspect/plugin-rtpmanager.xml: + * docs/plugins/inspect/plugin-rtsp.xml: + * docs/plugins/inspect/plugin-shapewipe.xml: + * docs/plugins/inspect/plugin-shout2.xml: + * docs/plugins/inspect/plugin-smpte.xml: + * docs/plugins/inspect/plugin-soup.xml: + * docs/plugins/inspect/plugin-spectrum.xml: + * docs/plugins/inspect/plugin-speex.xml: + * docs/plugins/inspect/plugin-taglib.xml: + * docs/plugins/inspect/plugin-twolame.xml: + * docs/plugins/inspect/plugin-udp.xml: + * docs/plugins/inspect/plugin-video4linux2.xml: + * docs/plugins/inspect/plugin-videobox.xml: + * docs/plugins/inspect/plugin-videocrop.xml: + * docs/plugins/inspect/plugin-videofilter.xml: + * docs/plugins/inspect/plugin-videomixer.xml: + * docs/plugins/inspect/plugin-vpx.xml: + * docs/plugins/inspect/plugin-wavenc.xml: + * docs/plugins/inspect/plugin-wavpack.xml: + * docs/plugins/inspect/plugin-wavparse.xml: + * docs/plugins/inspect/plugin-ximagesrc.xml: + * docs/plugins/inspect/plugin-y4menc.xml: + Update docs + +2020-10-21 14:48:56 +0100 Tim-Philipp Müller <tim@centricular.com> + + * po/pt_BR.po: + * po/ro.po: + * po/sk.po: + * po/sr.po: + * po/zh_TW.po: + Update translations + +2020-10-20 15:10:00 +0100 Tim-Philipp Müller <tim@centricular.com> + + * README: + * common: + Automatic update of common submodule + From 59cb678 to a825d27 + +2020-09-28 00:53:48 +0100 Tim-Philipp Müller <tim@centricular.com> + + * gst/rtpmanager/gstrtpjitterbuffer.c: + * gst/rtpmanager/rtpjitterbuffer.c: + * gst/rtpmanager/rtpjitterbuffer.h: + rtpjitterbuffer: fix item freeing for 1.16 branch + Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/739> + +2020-04-22 14:09:37 +0300 Sebastian Dröge <sebastian@centricular.com> + + * gst/rtpmanager/rtpjitterbuffer.c: + * gst/rtpmanager/rtpjitterbuffer.h: + rtpjitterbuffer: Properly free internal packets queue in finalize() + As we override the GLib item with our own structure, we cannot use any + function from GList or GQueue that would try to free the RTPJitterBufferItem. + In this patch, we move away from g_queue_new() which forces using + g_queue_free(). This this function could use g_slice_free() if there is any items + left in the queue. Passing the wrong size to GSLice may cause data corruption + and crash. + A better approach would be to use a proper intrusive linked list + implementation but that's left as an exercise for the next person + running into crashes caused by this. + Be ware that this regression was introduced 6 years ago in the following + commit [0], the call to flush() looked useless, as there was a g_queue_free() + afterward. + Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com> + [0] https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/commit/479c7642fd953edf1291a0ed4a3d53618418019c + Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/739> + +2020-04-15 12:36:29 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * sys/v4l2/gstv4l2videodec.c: + v4l2videodec: Increase internal bitstream pool size + This patch will now set the maximum of buffers to 32, allowing to grow the + pool for drivers that supports that and will respect the minimum buffers + reported by the driver. This was made to fix a stall with the virtio CODEC + driver. + Fixes #672 + Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/738> + +2020-06-16 19:34:01 +0900 Seungha Yang <seungha@centricular.com> + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: Don't return TRUE for unhandled query + Expected return value for unhandled query is FALSE + Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/752> + +2020-04-08 09:45:17 -0400 Thibault Saunier <tsaunier@igalia.com> + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: Avoid stack overflow recursing waiting for response + Instead of recursing, simply implement a loop with gotos, the same + way it was done before 812175288769d647ed6388755aed386378d9210c + Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/710 + Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/751> + +2019-12-19 23:48:09 +0100 Havard Graff <havard.graff@gmail.com> + + * gst/rtpmanager/gstrtpbin.c: + * tests/check/elements/rtpbin.c: + rtpbin: fix shutdown crash in rtpbin + The key is to make sure the jitterbuffer is set to NULL *before* the + ptdemux. + The race that existed would basically happen when ptdemux had reached + READY, and the jitterbuffer would then push a buffer, triggering a new + pad with a new payloadtype being added and ghosted to the rtpbin itself. + However, the srcpad of the ptdemux would now be inactive, and all the + sticky-event pushed on it would be swallowed, not allowing any to reach + the ghost-pad. Then the buffer in-flight would come to the ghostpad, + and we would assert that a buffer arrived before the necessary + events. + By simply re-ordering the state-changes, we ensure that there will be + no buffer racing into the ptdemux while its state is being changed, + and the problem disappears completely. + Notice also that there is not point in disconnecting the signals on the + ptdemux before this point, since we need the push-thread to settle + down before we can do this in a non-racy way. + Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/443> + +2020-09-10 11:24:32 +0200 Jérôme Laheurte <jlaheurte@quividi.net> + + * 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: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/750> + +2020-07-14 14:24:20 +0100 Justin Chadwell <justin.chadwell@pexip.com> + + * gst/isomp4/qtdemux.c: + * tests/check/elements/qtdemux.c: + qtdemux: fix allocation explosion with stsd entries + Previously, the user input for stsd entries is trusted completely, and + so a maliciously crafted file could choose the length of the stsd + entries arbitrarily and cause qtdemux to try to allocate up to 2GB of + memory (half of a 32 bit max int). + This patch fixes this by sanity checking the stsd input against the + size of the entire stsd atom. + Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/749> + +2020-07-13 10:37:19 +0100 Justin Chadwell <justin.chadwell@pexip.com> + + * gst/isomp4/qtdemux.c: + * tests/check/elements/qtdemux.c: + qtdemux: fix crashes when input stream contained no stsd entries + During trak parsing, we need to check for the existence of stsd_entries, + otherwise, we end up with a NULL pointer to them. It is entirely + possible for the stsd to exist, but for it to have no entries, which the + previous checks did not take into account. + This patch adds a simply check to ensure that all files that do not + contain a stsd entry are deemed corrupt, and adds a test case to prevent + a regression. + Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/749> + +2020-07-02 09:15:08 +0300 Sebastian Dröge <sebastian@centricular.com> + + * ext/flac/gstflacenc.c: + flacenc: Pass audio info from set_format() to query_total_samples() explicitly + This fixes writing of the seek table header. + gst_audio_encoder_get_audio_info() will still return old/unset audio + info until set_format() has actually returned, which then results in + query_total_samples() to always return 0. + Thanks to Jacob Kauffmann for debugging this and finding the main cause. + Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/756 + Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/748> + +2020-06-15 13:05:49 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.com> + + * ext/pulse/pulsedeviceprovider.c: + pulse: fix discovery of newly added devices + Fix regression introduced in 7bc5e28d85992b03e5852879b8d4d96043496caf + preventing the device provider to send the device-added message for new + devices. + By early returning the patch was discarding add/remove events. + Fix #735 + Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/747> + +2020-06-11 20:39:33 +0300 Jordan Petridis <jpetridis@gnome.org> + + * gst/isomp4/gstqtmux.c: + * sys/v4l2/gstv4l2videodec.c: + Use gst_element_class_set_metadata when passing dynamic strings + gst_element_class_set_metadata is meant to only be used with + static or inlined strings, which isn't the case for the 2 elements + here resulting in use-after-free later on. + https://gstreamer.freedesktop.org/documentation/gstreamer/gstelement.html?gi-language=c#gst_element_class_set_static_metadata + Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/746> + +2020-05-29 00:45:03 +0900 Seungha Yang <seungha@centricular.com> + + * ext/speex/gstspeexdec.c: + * ext/speex/gstspeexenc.c: + speex: Fix crash on Windows caused by cross-CRT issue + Use speex_header_free() to free memory which was allocated by + library. Cross-CRT issue should not happen on 1.17 Cerbero build + but might happen custom build or so. + Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/745> + +2020-05-27 22:33:31 +0300 Sebastian Dröge <sebastian@centricular.com> + + * gst/rtsp/gstrtspsrc.h: + rtspsrc: Use the correct type for storing the max-rtcp-rtp-time-diff property + It's an integer property and rtpbin also expects an integer. Passing it + as a GstClockTime (guint64) to g_object_set() will cause problems, and + on big endian MIPS apparently causes crashes. + Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/737 + Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/744> + +2020-05-25 20:11:31 -0400 Thibault Saunier <tsaunier@igalia.com> + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: Error out when failling to receive message response + And let it rety twice. + Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/717 + Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/743> + +2020-05-07 01:17:25 +1000 Jan Schmidt <jan@centricular.com> + + * gst/deinterlace/gstdeinterlace.c: + deinterlace: Force renegotiation when changing mode + Switching the deinterlacing mode on-the-fly from disabled to + auto used to work, but was broken by commit #1f21747c some + years ago. + Force re-negotiation with downstream when the mode or + fields properties are changed, otherwise deinterlace + never switches out of the passthrough mode. + Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/742> + +2020-05-05 15:19:49 +0200 Edward Hervey <edward@centricular.com> + + * gst/multifile/gstsplitmuxsrc.c: + slitmuxsrc: Properly stop the loop if not part reader is present + Previously this would end up in a refcounting loop of hell. + Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/741> + +2020-04-22 15:32:31 -0400 Olivier Crête <olivier.crete@collabora.com> + + * gst/isomp4/fourcc.h: + * gst/isomp4/qtdemux.c: + qtdemux: Add 'mp3 ' fourcc that VLC seems to produce now + Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/740> + +2019-04-24 02:38:32 +0900 okuoku <mjt@cltn.org> + + * ext/jack/gstjackaudiosink.c: + * ext/jack/gstjackaudiosrc.c: + jack: Use jack_free(3) to release ports + Port objects acquired with jack_get_ports() need to be freed with + jack_free(3), not stdlib free(). + On Windows, Jack may be linked against different libc than GStreamer + libraries so free()ing port objects directly might cause crash because + of libc mismatch. + Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/737> + +2020-02-29 08:10:56 -0500 Jennifer Berringer <berringerjennifer@gmail.com> + + * gst/audioparsers/gstflacparse.c: + flacparse: fix broken reordering of flac metadata + Each FLAC metadata block starts with a flag denoting whether it is the + last metadata block. The existing flacparse code moves any existing + VORBISCOMMENT block to immediately follow the STREAMINFO block without + changing any block's last-metadata-block flag. If no VORBISCOMMENT block + exists, it created one with the last-metadata-block flag set to true. + This results in gstflacdec sometimes giving bad headers to libflac when + trying to play perfectly valid FLAC files depending on the file's + metadata ordering. Depending on the contents of the other metadata + blocks, current versions of libflac may or may not return + FLAC__STREAM_DECODER_ERROR_STATUS_BAD_HEADER when given this broken + metadata. This is most noticeable with files that have a large cover art + image attached where VORBISCOMMENT is the very last metadata block with + no PADDING afterwards. + This patch changes that behavior so that: + 1. For FLAC files that already have a VORBISCOMMENT block, the metadata + order is preserved. + 2. For FLAC files that do not have a VORBISCOMMENT block, the generated + dummy VORBISCOMMENT is placed immediately after STREAMINFO and + inherits the last-metadata-block flag from STREAMINFO. + https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/484 + +2020-03-27 19:24:03 +0100 Nicolas Pernas Maradei <nicopernas@gmail.com> + + * gst/rtpmanager/gstrtpsession.c: + rtpsession: rename RTCP thread + RTP session starts a new thread for RTCP and names it + "rtpsession-rtcp-thread" which happens to be longer than the maximum 16B + allowed by pthread_setname_np and causes the naming to fail. + See docs for more details. + This commit simply shortens the thread's name so it can actually be set. + +2020-03-12 16:55:44 +0000 Tim-Philipp Müller <tim@centricular.com> + + * tests/check/elements/rtp-payloading.c: + tests: rtp-payloading: add minimal vp8/vp9 rtp payloading/depayloading test + +2018-10-19 16:17:17 +0200 Stian Selnes <stian@pexip.com> + + * gst/rtp/gstrtpvp8pay.c: + * gst/rtp/gstrtpvp9pay.c: + rtpvp8pay, rtpvp9pay: fix caps leak in set_caps() + +2020-03-12 11:22:56 +0100 Edward Hervey <edward@centricular.com> + + * gst/videomixer/videomixer2.c: + videomixer: Don't leak peer caps + +2020-02-07 10:03:49 +0100 Alexander Lapajne <alexander.lapajne@axis.com> + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: Fix for segmentation fault when handling set/get_parameter requests + gstrtspsrc uses a queue, set_get_param_q, to store set param and get + param requests. The requests are put on the queue by calling + get_parameters() and set_parameter(). A thread which executs in + gst_rtspsrc_thread() then pops requests from the queue and processes + them. The crash occured because the queue became empty and a NULL + request object was then used. The reason that the queue became empty + is that it was popped even when the thread was NOT processing a get + parameter or set parameter command. The fix is to make sure that the + queue is ONLY popped when the command being processed is a set + parameter or get parameter command. + +2020-02-05 12:48:45 +0530 Guillaume Desmottes <guillaume.desmottes@collabora.com> + + * sys/v4l2/gstv4l2object.c: + v4l2: map GST_VIDEO_FORMAT_BGR15 + The GstVideoFormat to v4l2 conversion was missing for BGR15. + +2020-02-05 12:00:00 +0530 Guillaume Desmottes <guillaume.desmottes@collabora.com> + + * sys/v4l2/gstv4l2object.c: + v4l2: fix crash on invalid caps + gst_v4l2_object_set_format_full() was returning FALSE without setting + an error. Caller code (gst_v4l2src_fixate()) was then derefing a + NULL pointer when trying to handle the error. + +2020-01-27 15:17:27 -0800 Julien Isorce <jisorce@oblong.com> + + * ext/vpx/gstvpxenc.c: + vp8enc/vp8enc: set 1 for the default value of VP8E_SET_STATIC_THRESHOLD + In Google webrtc, the setting VP8E_SET_STATIC_THRESHOLD is set to 1 + (except when the content is known to be static very often in which + case it is set to 100, i.e. when sharing screen with Google Hangouts). + The cpu usage drops a lot when using 1 for above setting because it + allows the encoder to skip static/low content blocks. The current + 0 default value uses too much cpu and confuses the user regarding + the cpu usage expectations. User expects vp8enc to use low cpu by + default. + Documentation of VP8E_SET_STATIC_THRESHOLD: + https://github.com/webmproject/libvpx/blob/master/vpx/vp8cx.h#L188 + chromium/webrtc: + https://chromium.googlesource.com/external/webrtc/+/b484ec0082948ae086c2ba4142b4d2bf8bc4dd4b/modules/video_coding/codecs/vp8/libvpx_vp8_encoder.cc#822 + Closes #58 + +2020-01-27 17:16:02 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * ext/jpeg/gstjpegdec.c: + jpegdec: Check return value of gst_buffer_map() + Without this check, the element will crash instead of returning an + error. + +2020-01-13 20:07:01 +0200 Sebastian Dröge <sebastian@centricular.com> + + * gst/wavenc/gstwavenc.c: + wavenc: Fix writing of the channel mask with >2 channels + The channel position is an enum but the conversion code assumed it's a + mask. Convert accordingly. + +2020-01-03 15:16:02 +0100 Daniel Molkentin <daniel@molkentin.de> + + * gst/videocrop/gstvideocrop.c: + videocrop: allow properties to be animated by GstController + +2019-12-04 01:03:49 +0000 Tim-Philipp Müller <tim@centricular.com> + + * gst/rtp/gstrtpjpegdepay.c: + rtpjpegdepay: outputs framed jpeg + Add parsed=true to output caps, as we always output + whole frames, timestamped and all. Means also that + the output can be decoded by avdec_mjpeg wihout + plugging an extra parser (which has no rank). + +2019-09-03 16:46:30 -0400 Thibault Saunier <tsaunier@igalia.com> + + * gst/isomp4/qtdemux.c: + * gst/isomp4/qtdemux.h: + qtdemux: Specify REDIRECT information in error message + There are in the wild (mp4) streams that basically contain no tracks + but do have a redirect info[0], in which case, we won't be able + to expose any pad (there are no tracks) so we can't post anything but + an error on the bus, as: + - it can't send EOS downstream, it has no pad, + - posting an EOS message will be useless as PAUSED state can't be + reached and there is no sink in the pipeline meaning GstBin will + simply ignore it + The approach here is to to add details to the ERROR message with a + `redirect-location` field which elements like playbin handle and use right + away. + [0]: http://movietrailers.apple.com/movies/paramount/terminator-dark-fate/terminator-dark-fate-trailer-2_480p.mov + === release 1.16.2 === 2019-12-03 11:06:36 +0000 Tim-Philipp Müller <tim@centricular.com> |