summaryrefslogtreecommitdiff
path: root/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog463
1 files changed, 463 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index ad9153367..008ba7488 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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>