+=== release 1.20.0 ===
+
+2022-02-03 19:53:25 +0000 Tim-Philipp Müller <tim@centricular.com>
+
+ * NEWS:
+ * README:
+ * RELEASE:
+ * docs/gst_plugins_cache.json:
+ * gst-plugins-good.doap:
+ * meson.build:
+ Release 1.20.0
+
+2022-02-03 19:53:18 +0000 Tim-Philipp Müller <tim@centricular.com>
+
+ * ChangeLog:
+ Update ChangeLogs for 1.20.0
+
+2022-02-01 05:07:04 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * docs/meson.build:
+ * sys/osxvideo/osxvideosink.m:
+ docs: Add objc and objcpp files to hotdoc gst_c_sources
+ Hotdoc should be able to extract and parse comments out of these. Just
+ need to be careful to only add the glob in directories that actually
+ contain *.m (objc) and *.mm (objcpp) files.
+ Also fix some doc comments and remove redundant ones.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1614>
+
+2022-01-30 19:06:29 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * sys/osxaudio/gstosxaudiosink.c:
+ * sys/osxaudio/gstosxaudiosrc.c:
+ * sys/osxvideo/osxvideosink.m:
+ docs: Rename "OS X" to "macOS" in some documentation
+ No one uses the term "Mac OS X" anymore, it's "macOS". "OS X" is even
+ worse, because people will usually start the search with "mac".
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1607>
+
+2022-01-30 03:56:14 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * docs/gst_plugins_cache.json:
+ * sys/osxaudio/gstosxaudioelement.c:
+ osxaudio: Document GstOsxAudioElement interface
+ This is listed as a public interface implemented by osxaudio, so we
+ need to mark it as a plugin API so that it's listed in the
+ documentation correctly.
+ This is an ancient symbol, so add it to the symbol index too.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1601>
+
+2022-01-28 23:15:28 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * docs/gst_plugins_cache.json:
+ applemedia: Document vtenc / vtdec elements
+ Also preserve-alpha property should only be exposed on the
+ vtenc_prores element since h264 does not support transparency.
+ Fixes https://gitlab.freedesktop.org/gstreamer/gst-docs/-/issues/94
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1601>
+
+2022-01-29 12:56:22 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * ext/soup/gstsouputils.c:
+ soup: Don't store a strong reference to the logging object
+ Otherwise this causes a reference cycle between the session, the logger
+ and the logging object (i.e. the sink element or session wrapper).
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1603>
+
+2022-01-29 12:55:30 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * ext/soup/gstsouphttpsrc.c:
+ souphttpsrc: Always abort the session once its last user is gone
+ And wait until there are no pending GSources on the main context anymore
+ afterwards.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1603>
+
+2022-01-29 12:54:23 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * ext/soup/gstsouphttpsrc.c:
+ souphttpsrc: Post context message after setting up the context from the source's thread
+ This simplifies the code and especially the locking a bit, and makes
+ sure we only export the session after it is fully set up.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1603>
+
+=== release 1.19.90 ===
+
+2022-01-28 14:28:35 +0000 Tim-Philipp Müller <tim@centricular.com>
+
+ * ChangeLog:
+ * NEWS:
+ * RELEASE:
+ * docs/gst_plugins_cache.json:
+ * gst-plugins-good.doap:
+ * meson.build:
+ Release 1.19.90
+
+2022-01-28 14:28:28 +0000 Tim-Philipp Müller <tim@centricular.com>
+
+ * ChangeLog:
+ Update ChangeLogs for 1.19.90
+
+2022-01-28 15:47:44 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * ext/soup/gstsouphttpclientsink.c:
+ souphttpsink: Protect against spurious wakeups during startup
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1594>
+
+2022-01-28 15:33:04 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * ext/soup/gstsouphttpclientsink.c:
+ * ext/soup/gstsouphttpsrc.c:
+ * ext/soup/gstsouputils.c:
+ * ext/soup/gstsouputils.h:
+ souphttpsrc: Don't use the source element after setup from the session thread
+ The source element might be gone already if the session is shared with
+ other source elements.
+ As a consequence, do all logging via the session object instead of using
+ the source element.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1594>
+
+2022-01-28 15:31:55 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * ext/soup/gstsouphttpsrc.c:
+ souphttpsrc: Don't abort all pending operations on the session if shutting down a source with a shared session
+ Only do it for a non-shared session. Other sources would otherwise get
+ their requests cancelled unexpectedly.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1594>
+
+2022-01-28 15:31:25 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * ext/soup/gstsouphttpsrc.c:
+ souphttpsrc: Don't set boolean to FALSE right after checking that it is FALSE
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1594>
+
+2022-01-28 15:30:56 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * ext/soup/gstsouphttpsrc.c:
+ souphttpsrc: soup_session_new_with_options() can't fail with NULL
+ So don't check for it.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1594>
+
+2022-01-27 16:28:48 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/autodetect/gstautodetect.h:
+ autodetect: fix debug init category
+ Since the split of elements, the debug category
+ was default for autodetect.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1590>
+
+2022-01-21 16:09:30 +0100 Daniel Kolesa <dkolesa@igalia.com>
+
+ * ext/soup/gstsouphttpsrc.c:
+ * ext/soup/gstsouphttpsrc.h:
+ * ext/soup/gstsouploader.c:
+ * ext/soup/gstsouploader.h:
+ soup: move libsoup session into its own thread
+ Starting with libsoup3, there is no attempt to handle thread safety
+ inside the library, and it was never considered fully safe before
+ either. Therefore, move all session handling into its own thread.
+ The libsoup thread has its own context and main loop. When some
+ request is made or a response needs to be read, an idle source
+ is created to issue that; the gstreamer thread issuing that waits
+ for that to be complete. There is a per-src condition variable to
+ deal with that.
+ Since the thread/loop needs to be longer-lived than the soup
+ session itself, a wrapper object is provided to contain them. The
+ soup session only has a single reference, owned by the wrapper
+ object.
+ It is no longer possible to force an external session, since this
+ does not seem to be used anywhere within gstreamer and would be
+ tricky to implement; this is because one would not have to provide
+ just a session, but also the complete thread arrangement made in
+ the same way as the system currently does internally, in order to
+ be safe.
+ Messages are still built gstreamer-side. It is safe to do so until
+ the message is sent on the session. Headers are also processed on
+ the gstreamer side, which should likewise be safe.
+ All requests as well as reads on the libsoup thread are issued
+ asynchronously. That allows libsoup to schedule things with as
+ little blocking as possible, and means that concurrent access
+ to the session is possible, when sharing the session.
+ Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/947
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1555>
+
+2022-01-27 01:38:39 +0000 Tim-Philipp Müller <tim@centricular.com>
+
+ * po/de.po:
+ * po/fr.po:
+ * po/ro.po:
+ gst-plugins-good: update translations
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1579>
+
+2022-01-26 11:22:31 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * gst/rtsp/gstrtspsrc.c:
+ rtspsrc: Fix critical while serializing timeout element message
+ The "cause" field wasn't registered as a GEnumValue, so do that.
+ Fixes this critical in gst_structure_to_string():
+ `gst_value_serialize: assertion 'G_IS_VALUE (value)' failed`
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1573>
+
+2022-01-24 10:45:33 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/multifile/gstsplitmuxsink.c:
+ splitmuxsink: Warn when calculating the next fragment time in timecode mode fails
+ But only if timecode mode is enabled as it will fail all the time
+ otherwise.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1557>
+
+2022-01-25 15:05:47 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * tests/examples/qt/qmlsink-multisink/videoitem/videoitem.cpp:
+ qt: Retain compatibility with Qt 5.9
+ QSharedPointer.get() was added in Qt 5.11, and it does the same thing
+ as .data()
+ https://doc.qt.io/qt-5/qsharedpointer.html#get
+ Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/867
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1565>
+
+2022-01-21 14:13:12 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/ext/types-compat.h:
+ * sys/v4l2/ext/v4l2-common.h:
+ * sys/v4l2/ext/v4l2-controls.h:
+ * sys/v4l2/ext/videodev2.h:
+ video4linux2: Sync kernel headers against 5.16.0
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/965>
+
+2022-01-17 11:44:47 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/gstv4l2videodec.c:
+ v4l2videdec: Fix race condition between drain and state changes
+ This is due to an unsafe usage of the pad task. We didn't ensure proper
+ ownership of the task. That race involved the task being released too early,
+ and was detected, luckily, by the glib mutex implementationt that
+ reported the mutex being disposed while being locked.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1478>
+
+2022-01-16 14:41:41 +0000 Philippe Normand <philn@igalia.com>
+
+ * ext/soup/gstsoup.c:
+ * ext/soup/gstsouploader.c:
+ * ext/soup/gstsouploader.h:
+ * ext/soup/gstsouputils.h:
+ * ext/soup/meson.build:
+ soup: Reintroduce compile-time libsoup dependency for static builds
+ On Android (especially) and for static builds in general it is safer to link
+ against libsoup and have the dynamic custom loading disabled. For those cases we
+ can safely assume the application will use either libsoup2 or libsoup3 and not
+ both.
+ Fixes #939
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1536>
+
+2022-01-16 14:40:11 +0000 Philippe Normand <philn@igalia.com>
+
+ * ext/soup/gstsoupelement.c:
+ soup: Initialize debug category before use
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1536>
+
+2022-01-16 14:39:42 +0000 Philippe Normand <philn@igalia.com>
+
+ * ext/soup/gstsouploader.c:
+ soup: Fix return types for a couple VTable functions
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1536>
+
+2022-01-14 19:53:29 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * ext/cairo/meson.build:
+ meson: Build cairo subproject when unavailable on the system
+ Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/952
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1523>
+
+2022-01-20 17:59:30 +0100 Aleksandar Topic <aleks@qtec.com>
+
+ * gst/imagefreeze/gstimagefreeze.c:
+ imagefreeze: Fix example launch line format issue
+ The currently shown example launch line will not run, because it
+ cannot handle png images.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1547>
+
+2021-05-07 18:22:06 +0200 Bastien Nocera <hadess@hadess.net>
+
+ * docs/gst_plugins_cache.json:
+ * ext/gtk/gstgtkbasesink.c:
+ * ext/gtk/gstgtkbasesink.h:
+ * ext/gtk/gtkgstbasewidget.c:
+ * ext/gtk/gtkgstbasewidget.h:
+ gtk: Add "video-aspect-ratio-override" property
+ Allow front-ends to override the pixel aspect ratio found inside the
+ video file itself, or most likely, missing from the video file.
+ This is a long-standing feature of totem.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1137>
+
+2021-10-13 15:33:14 +0200 Bastien Nocera <hadess@hadess.net>
+
+ * ext/gtk/gtkgstbasewidget.c:
+ gtk: Remove _update_par() forward declaration
+ No functional changes.
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1137/diffs#note_1102782
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1137>
+
+2021-10-13 15:38:52 +0200 Bastien Nocera <hadess@hadess.net>
+
+ * ext/gtk/gtkgstbasewidget.c:
+ gtk: Mark properties as changeable in the PLAYING state
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1137#note_1102789
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1137>
+
+2021-05-11 11:28:57 +0200 Bastien Nocera <hadess@hadess.net>
+
+ * docs/gst_plugins_cache.json:
+ * ext/gtk/gstgtkbasesink.c:
+ * ext/gtk/gtkgstbasewidget.c:
+ gtk: Fix "pixel-aspect-ratio" property range
+ Fix the arguments passed to gst_param_spec_fraction in the incorrect
+ order.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1137>
+
+2021-05-07 18:19:55 +0200 Bastien Nocera <hadess@hadess.net>
+
+ * ext/gtk/gstgtkbasesink.c:
+ * ext/gtk/gtkgstbasewidget.c:
+ gtk: Rename display pixel aspect ratio related constants
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1137>
+
+2021-05-07 18:16:30 +0200 Bastien Nocera <hadess@hadess.net>
+
+ * ext/gtk/gtkgstbasewidget.c:
+ gtk: Make "pixel-aspect-ratio" changes immediate
+ Schedule a resize when the display's pixel aspect ratio has changed, if
+ one isn't already scheduled.
+ Closes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/883
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1137>
+
+2022-01-05 02:07:59 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * docs/meson.build:
+ * meson.build:
+ meson: Add explicit check: kwarg to all run_command() calls
+ This is required since Meson 0.61.0, and causes a warning to be
+ emitted otherwise:
+ https://github.com/mesonbuild/meson/commit/2c079d855ed87488bdcc6c5c06f59abdb9b85b6c
+ https://github.com/mesonbuild/meson/issues/9300
+ This exposed a bunch of places where we had broken run_command()
+ calls, unnecessary run_command() calls, and places where check: true
+ should be used.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1507>
+
+2021-12-30 16:31:33 +0000 Heinrich Kruger <heinrich.kruger@sohonet.com>
+
+ * gst/rtp/gstrtphdrext-colorspace.c:
+ rtp-hdrext-colorspace: Fix color range encoding
+ The color space RTP header extension encodes color range as specified in
+ https://www.webmproject.org/docs/container/#Range. In other words:
+ 0: Unspecified,
+ 1: Broadcast Range,
+ 2: Full range,
+ 3: Defined by matrix coefficients and transfer characteristic.
+ This does not match the values of GstVideoColorRange, so it is not
+ correct to just write the colorimetry.range value to the header
+ extension.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1482>
+
+2021-12-24 14:52:38 +0900 Jeongki Kim <jeongki.kim@jeongki.kim>
+
+ * gst/rtp/gstrtpg726depay.c:
+ rtpg726depay: fix endian conversion
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1469>
+
+2021-12-23 14:29:55 +0000 Corentin Damman <c.damman@intopix.com>
+
+ * tests/check/elements/rtpjitterbuffer.c:
+ rtpjitterbuffer: fix typo in tests
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1466>
+
+2021-12-20 09:28:50 +0000 Florian Zwoch <fzwoch@gmail.com>
+
+ * ext/aalib/gstaatv.c:
+ aatv: Fixes for rain-mode
+ Some rain-mode properties tried to read float from int value.
+ Initialize rain after setting rain-mode. Rain was non-functional if
+ width/height were left at default values.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1459>
+
+2021-12-07 23:48:39 +0100 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * docs/gst_plugins_cache.json:
+ * gst/rtp/gstrtpreddec.c:
+ * gst/rtp/gstrtpreddec.h:
+ reddec: implement support for the BUNDLE case
+ When multiple streams are bundled together, there may be more
+ than one red payload type to handle.
+ In addition, as the red decoder works by filling in gaps in
+ the seqnums, there needs to be one rtp_history queue per sequence
+ domain.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1429>
+
+2021-12-07 23:43:21 +0100 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * docs/gst_plugins_cache.json:
+ * gst/rtpmanager/gstrtpbin.c:
+ rtpbin: add new request-fec-decoder-full signal for BUNDLE
+ When multiple streams are bundled together, the application needs
+ to know about the payload type in order to instantiate the appropriate
+ FEC decoder.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1429>
+
+2021-12-03 02:52:06 +0100 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * gst/rtp/gstrtpredenc.c:
+ * gst/rtp/gstrtpredenc.h:
+ * gst/rtp/gstrtpulpfecenc.c:
+ * gst/rtp/gstrtpulpfecenc.h:
+ * tests/check/elements/rtpred.c:
+ rtp/redenc|ulpfecenc: add support for TWCC
+ In redenc, when input buffers have a header for the TWCC extension,
+ we now add one to our wrapper buffers.
+ In ulpfecenc we add one in that case to our protection buffers.
+ This makes TWCC functional when UlpRed is used in webrtcbin.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1414>
+
+2021-12-02 13:32:33 +0000 Thibault Saunier <tsaunier@igalia.com>
+
+ * gst/rtp/gstrtph264pay.c:
+ * gst/rtp/gstrtph264pay.h:
+ rtph264pay: Handle 'profile' field
+ In order to allow "level-asymmetry-allowed" we now handle a new
+ "profile" field, which as the same semantics as the "profile" field in
+ H.264 stream so that we can force payloaded stream to have the right
+ format when using the `gst_sdp_media_get_caps_from_media` to set caps
+ filter after the payloader. This allows a simple negotiation in standard
+ RTP negotiation based on SDPs (like webrtc) for that particular case,
+ closely respecting the specs.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1410>
+
+2021-12-10 16:08:27 +0100 Jakub Adam <jakub.adam@collabora.com>
+
+ * sys/ximage/gstximagesrc.c:
+ ximagesrc: avoid blocking wait for X events
+ XNextEvent() blocks indefinitely in absence of X11 events, which can
+ prevent the pipeline from stopping.
+ This can cause problems when ximagesrc is used in "remote desktop"
+ scenarios and the GStreamer application itself, through which the user
+ is viewing and controlling the machine, is the only source of input
+ events.
+ Replace the call with non-blocking XCheckTypedEvent().
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1438>
+
+2021-12-10 17:36:30 +0100 Célestin Marot <marotcelestin@gmail.com>
+
+ * gst/multifile/gstmultifilesrc.c:
+ multifilesrc: fix caps leak
+ since `gst_caps_replace()` and `gst_pad_set_caps()` both ref the caps and neither of them takes the ownership of the caps -> it must be unreffed in `gst_multi_file_src_set_property()`
+ to test the leak (on Unix): `echo coucou > /tmp/file.txt && GST_TRACERS=leaks GST_DEBUG="GST_TRACER:7" gst-launch-1.0 multifilesrc location=/tmp/file.txt caps='txt' ! fakesink`
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1436>
+
+2021-12-06 15:37:06 +0100 Guillaume Desmottes <guillaume.desmottes@onestream.live>
+
+ * ext/jpeg/gstjpegdec.c:
+ jpegdec: only allow conversions from RGB
+ libjpeg-turbo only supports converting from RGB to other RGB formats.
+ Fix runtime error when trying to convert from a YUV format for example.
+ Fix #916
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1421>
+
+2021-11-29 15:35:36 +0100 Wim Taymans <wtaymans@redhat.com>
+
+ * sys/v4l2/gstv4l2object.c:
+ v4l2: handle 0x0 sizes gracefully
+ Also ignore 0x0 sizes in the fallback case and assume the size can be
+ anything between 1x1 and MAXxMAX.
+ This fixes the case where a width=0, height=0 caps are created. Whith
+ this patch the caps will contain width=[1,MAX], height=[1,MAX].
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1396>
+
+2021-11-23 20:54:57 +0100 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * gst/rtpmanager/gstrtpfunnel.c:
+ * tests/check/elements/rtpfunnel.c:
+ rtpfunnel: fix extmap handling on accept-caps
+ Follow-up on 97d83056b315c56834eaa6776ae4c6a0848b5ef9, only check
+ for intersection with the current srccaps when checking if a sinkpad
+ can accept caps.
+ I must have been lucky in my firefox testing then, and always entered
+ the code path with audio getting negotiated first, thus not failing
+ the is_subset check when srccaps had been negotiated as
+ application/x-rtp, and an accept-caps query was made for the video
+ caps with a defined extmap.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1384>
+
+2021-11-12 13:54:59 +0100 Jean Felder <jean.felder@gmail.com>
+
+ * ext/taglib/gstid3v2mux.cc:
+ id3v2mux: Map GST_TAG_MUSICBRAINZ_RELEASETRACKID
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1342>
+
+2021-11-12 13:51:56 +0100 Jean Felder <jean.felder@gmail.com>
+
+ * ext/taglib/gstid3v2mux.cc:
+ id3v2mux: Map GST_TAG_MUSICBRAINZ_RELEASEGROUPID
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1342>
+
+2021-11-18 16:27:17 +0000 Tobias Reineke <tobi@g3th.net>
+
+ * ext/shout2/gstshout2.c:
+ shout2: Add compatibility for libshout >= 2.4.2
+ In libshout >=2.4.2 shout_open() can return SHOUTERR_RETRY in addition
+ to SHOUTERR_BUSY.
+ The nonblocking example in libshout fixes the problem in a similar
+ way, as mentioned by the author in this issue:
+ https://gitlab.xiph.org/xiph/icecast-libshout/-/issues/2316
+ Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/848
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1363>
+
+2021-11-15 14:39:14 +1100 Matthew Waters <matthew@centricular.com>
+
+ * ext/qt/qtitem.cc:
+ qmlglsink: fix another resize case
+ If qt asks us to redraw before we have both set a buffer and caps we
+ would attempt to use the new caps with the old buffer which could result
+ in bad things happening.
+ Only update caps from new_caps once the buffer has actually been set.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1346>
+
+2021-11-01 10:08:32 +0700 Trung Do <trung1.dothanh@toshiba.co.jp>
+
+ * sys/v4l2/gstv4l2object.c:
+ v4l2: Update fmt if padded height is greater than fmt height
+ If padded height is greater, buffer bytesused could be larger than plane length,
+ and cause VIDIOC_QBUF failure.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1355>
+
+2021-11-09 19:41:14 +0100 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * gst/rtpmanager/gstrtpfunnel.c:
+ * tests/check/elements/rtpfunnel.c:
+ rtpfunnel: don't enforce twcc during upstream negotiation
+ A previous patch has caused rtpfunnel to output twcc-related
+ information downstream, however this leaked into upstream
+ negotiation (through funnel->srccaps), causing payloader to
+ negotiate twcc caps even when not prompted to do so by the user.
+ Fix this by only enforcing that upstream sends us application/x-rtp
+ caps as was the case originally.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1278>
+
+2021-10-30 01:18:18 +0200 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * gst/rtpmanager/rtptwcc.c:
+ rtptwcc: complete bufferlist fix
+ When dealing with bufferlists, we need to store one "SentPacket"
+ structure per buffer, not one per buffer list!
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1278>
+
+2021-11-12 17:59:22 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Log cslg_shift that was determined
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1294>
+
+2021-11-12 13:00:56 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Use a composition time offset of 0 for "no decode samples" for the time being
+ This needs codec-specific handling, but using 0 instead of G_MININT32 at
+ least gives somewhat reasonable behaviour.
+ See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/883
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1294>
+
+2021-11-12 12:46:56 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Always check ctts for unreasonably large offsets
+ If this happens then ignore the whole ctts. Previously we only did this
+ if the PTS/DTS shift was determined from the ctts instead of the cslg.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1294>
+
+2021-11-12 12:39:17 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/isomp4/qtdemux_dump.c:
+ qtdemux: Dump composition time offsets in trun as signed integers
+ Just like we do for ctts without regard of the version of the box.
+ Huge offsets are interpreted as negative offsets by qtdemux so this
+ works.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1294>
+
+2021-11-12 11:36:31 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/isomp4/qtdemux.h:
+ qtdemux: Add a comment why only positive cslg shifts are considered
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1294>
+
+2021-11-02 18:38:39 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Only adjust segment.stop by cslg_shift if stop is not -1
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1294>
+
+2021-11-02 18:29:53 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Handle negative composition offsets in the trun box the same way as for non-fragmented streams
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1294>
+
+2021-11-02 17:43:17 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Parse ctts version
+ Negative composition time offsets are only allowed with version 1 of the
+ box, however we parse it as a signed value also for version 0 boxes as
+ unfortunately there are such files out there and it's unlikely to have
+ (valid) huge composition offsets.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1294>
+
+2021-11-02 17:41:01 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/isomp4/qtdemux.c:
+ * gst/isomp4/qtdemux.h:
+ * gst/isomp4/qtdemux_dump.c:
+ qtdemux: Add support for version 1 cslg boxes
+ They use 64 bit fields instead of 32 bit.
+ Also parse offset as a signed integer (in both versions) and clamp it to
+ a positive value as negative values don't really interest us here.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1294>
+
+2021-11-02 17:54:46 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Don't free cslg data that we don't own on corrupt files
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1294>
+
+2021-05-07 10:44:15 +0200 Rafał Dzięgiel <rafostar.github@gmail.com>
+
+ * gst/matroska/matroska-demux.c:
+ * gst/matroska/matroska-read-common.c:
+ matroska: Ref index table when updating track info
+ Track index table array was being lost during track info update.
+ Ref it over to updated info, so it can be used for finding
+ nearest seek points.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1203>
+
+2021-11-12 11:28:23 +0100 Rafał Dzięgiel <rafostar.github@gmail.com>
+
+ * gst/matroska/ebml-read.c:
+ * gst/matroska/matroska-demux.c:
+ * gst/matroska/matroska-ids.c:
+ * gst/matroska/matroska-read-common.c:
+ matroska: Use g_array_unref everywhere
+ Instead of using g_array_free which is not thread safe use g_array_unref instead
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1203>
+
+2021-11-11 19:11:25 +0000 Tim-Philipp Müller <tim@centricular.com>
+
+ * ext/cairo/gstcairooverlay.c:
+ * gst/equalizer/gstiirequalizernbands.c:
+ docs: fix unnecessary ampersand, < and > escaping in code blocks
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1340>
+
+2021-11-12 03:17:44 +0100 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * gst/rtpmanager/gstrtpst2022-1-fecdec.c:
+ st2022-1-fecdec: fix packet trimming
+ g_sequence_remove_range's end iter is exclusive, so if one
+ wants to remove that item as well, it should be called with
+ the next iter.
+ This could in theory fix an issue where:
+ * The sequence isn't entirely trimmed, with an old item lingering
+ * Following FEC packets are immediately discarded because they
+ arrived later than corresponding media packets, long enough for
+ seqnums to wrap around
+ * We now try to reconstruct a media packet with a completely obsolete
+ FEC packet, chaos ensues.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1341>
+
+2021-11-11 15:49:19 +1100 Matthew Waters <matthew@centricular.com>
+
+ * ext/qt/qtitem.cc:
+ qmlsink: support caps changes better
+ We need to hold onto the last buffer until the next buffer arrives.
+ Before, if a caps change comes we would remove the currently rendering
+ buffer. if Qt asks use to render something, we would render the dummy
+ black texture.
+ Fixes a period of black output when upstream is e.g. changing resolution
+ as in hls adaptive bitrate scenarios.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1338>
+
+2021-09-27 16:52:22 +0100 James Cowgill <james.cowgill@blaize.com>
+
+ * sys/v4l2/gstv4l2bufferpool.c:
+ * sys/v4l2/gstv4l2bufferpool.h:
+ v4l2: Record buffer states in pool to fix dequeue race
+ The `gst_v4l2_buffer_pool_dqbuf` function contains this ominous comment:
+ /* get our GstBuffer with that index from the pool, if the buffer was
+ * outstanding we have a serious problem.
+ */
+ outbuf = pool->buffers[group->buffer.index];
+ Unfortunately it is common for buffers in _output_ buffer pools to be
+ both queued and outstanding at the same time. This can happen if the
+ upstream element keeps a reference to the buffer, or in an encoder
+ element itself when it keeps a reference to the input buffer for each
+ frame.
+ Since the current code doesn't handle this case properly we can end up
+ with crashes in other elements such as:
+ (gst-launch-1.0:32559): CRITICAL **: 17:33:35.740: gst_video_frame_map_id: assertion 'GST_IS_BUFFER (buffer)' failed
+ and:
+ (gst-launch-1.0:231): GStreamer-CRITICAL **: 00:16:20.882: write map requested on non-writable buffer
+ Both these crashes are caused by a race condition related to releasing
+ the same buffer twice from two different threads. If a buffer is queued
+ and outstanding this situation is possible:
+ **Thread 1**
+ - Calls `gst_buffer_unref` decrementing the reference count to zero.
+ - The core GstBufferPool object marks the buffer non-outstanding.
+ - Calls the V4L2 release buffer function.
+ - If the buffer is _not_ queued:
+ - Release it back to the free pool (containing non-queued buffers).
+ **Thread 2**
+ - Dequeues the queued output buffer.
+ - Marks the buffer as not queued.
+ - If the buffer is _not_ outstanding:
+ - Calls the V4L2 release buffer function.
+ - Release it back to the free pool (containing non-queued buffers).
+ If both of these threads run at exactly the same time there is a small
+ window where the buffer is marked both not outstanding and not queued
+ but before it has been released. In this case the buffer will be freed
+ twice causing the above crashes.
+ Unfortunately the variable recording whether a buffer is outstanding is
+ part of the core `GstBuffer` object and is managed by `GstBufferPool` so
+ it's not as straightforward as adding a mutex. Instead we can fix this
+ by additionally recording the buffer state in `GstV4l2BufferPool`, and
+ handle "internal" and "external" buffer release separately so we can
+ detect when a buffer becomes not outstanding.
+ In the new solution:
+ - The "external" buffer pool release and the "dqbuf" functions
+ atomically update the buffer state and determine if a buffer is still
+ queued or outstanding.
+ - Subsequent code and a new
+ `gst_v4l2_buffer_pool_complete_release_buffer` function can proceed to
+ release (or not) a buffer knowing that it's not racing with another
+ thread.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1010>
+
+2021-11-09 15:10:06 +1100 Matthew Waters <matthew@centricular.com>
+
+ * gst/rtpmanager/gstrtpbin.c:
+ rtpbin: separate out the two fec decoder locations
+ The pipeline flow for receiving looks like this:
+ rtpsession ! rtpssrcdemux ! session_fec_decoder ! rtpjitterbuffer ! \
+ rtpptdemux ! stream_fec_decoder ! ...
+ There are two places where a fec decoder could be placed.
+ 1. As requested from the 'request-fec-decoder' signal: after rtpptdemux
+ for each ssrc/pt produced
+ 2. after rtpssrcdemux but before rtpjitterbuffer: added for the
+ rtpst2022-1-fecenc/dec elements,
+ However, there was some cross-contamination of the elements involved and
+ the request-fec-decoder signal was also being used to request the fec
+ decoder for the session_fec_decoder which would then be cached and
+ re-used for subsequent fec decoder requests. This would cause the same
+ element to be attempted to be linked to multiple elements in different
+ places in the pipeline. This would fail and cause all kinds of havoc
+ usually resulting in a not-linked error being returned upstream and an
+ error message being posted by the source.
+ Fix by not using the request-fec-decoder signal for requesting the
+ session_fec_decoder and instead solely rely on the added properties for
+ that case.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1300>
+
+2021-11-09 21:20:19 +0800 Zhao, Gang <gang.zhao.42@gmail.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Fix can not demux Opus track made by qtmux
+ Opus stream info is read from dOps box [1]. The offset of dOps box in Opus box is different in mp4a version 1 and 0 [2]. Calculate the offset of dOps box according to mp4a version.
+ [1] https://opus-codec.org/docs/opus_in_isobmff.html
+ [2] subprojects/gst-plugins-good/gst/isomp4/atoms.c:sample_entry_mp4a_copy_data:2146
+ Fixed: https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/918
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1329>
+
+2021-11-09 13:36:28 +0800 Haihua Hu <jared.hu@nxp.com>
+
+ * sys/v4l2/gstv4l2bufferpool.c:
+ v4l2bufferpool: set video alignment of video meta
+ need apply video alignment info on video meta, downstream
+ element can get buffer alignment from video meta
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1326>
+
+2021-11-06 16:48:20 +0800 Zhao, Gang <gang.zhao.42@gmail.com>
+
+ * ext/vpx/gstvpxdec.c:
+ vpxdec: Skip check of key frame when open GOP
+ Valid stream [1] might has no key frame.
+ Fixed: https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/890
+ [1] https://storage.googleapis.com/downloads.webmproject.org/test_data/libvpx/vp90-2-16-intra-only.webm
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1316>
+
+2021-10-05 18:07:06 +0100 Joe Todd <joextodd@gmail.com>
+
+ * sys/osxaudio/gstosxcoreaudio.h:
+ osxaudio: Increase max channels to 64
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1059>
+
+2021-11-05 15:17:20 +0530 Sanchayan Maity <sanchayan@asymptotic.io>
+
+ * gst/imagefreeze/gstimagefreeze.c:
+ imagefreeze: Only set caps if they do not match current caps
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1311>
+
+2021-11-04 16:04:30 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * sys/v4l2/v4l2_calls.c:
+ v4l2: Support bools for setting extra-controls
+ They're just mapped to 0 / 1 and can already be set as integers, but
+ being able to set them as booleans seems useful.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1308>
+
+2021-11-03 18:44:03 +0000 Tim-Philipp Müller <tim@centricular.com>
+
+ * docs/gst_plugins_cache.json:
+ * meson.build:
+ Back to development
+
+=== release 1.19.3 ===
+
+2021-11-03 15:43:36 +0000 Tim-Philipp Müller <tim@centricular.com>
+
+ * ChangeLog:
+ * NEWS:
+ * RELEASE:
+ * docs/gst_plugins_cache.json:
+ * gst-plugins-good.doap:
+ * meson.build:
+ Release 1.19.3
+
+2021-11-03 15:43:32 +0000 Tim-Philipp Müller <tim@centricular.com>
+
+ * ChangeLog:
+ Update ChangeLogs for 1.19.3
+
+2021-11-02 16:46:08 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * docs/gst_plugins_cache.json:
+ * gst/multifile/gstmultifilesink.c:
+ * gst/multifile/gstmultifilesink.h:
+ multifilesink: Make minimum distance between keyframes in next-file=key-frame mode configurable
+ Previously this was hardcoded to 10s, which is not necessarily the
+ desired behaviour.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1292>
+
+2021-11-01 16:32:10 +0100 Erlend Eriksen <erlend_ne@hotmail.com>
+
+ * gst/isomp4/gstqtmux.c:
+ qtmux: Fix deadlock in gst_qt_mux_prepare_moov_recovery
+ Regression from 5766731bd4200c3a374522a749386f740347661a
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1288>
+
+2021-10-30 16:22:39 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * docs/gst_plugins_cache.json:
+ video: Fix order of new video formats
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1282>
+
+2021-10-30 00:58:55 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * tests/check/elements/rtphdrext-colorspace.c:
+ Couple more g_memdup() -> g_memdup2() fixes
+ Fixes deprecation warnings with newer GLib versions.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1279>
+
+2021-10-23 00:44:57 +0200 Piotrek Brzeziński <piotr@centricular.com>
+
+ * docs/gst_plugins_cache.json:
+ video-format: Add support for ARGB64 LE/BE and similar variants
+ Co-authored-by: Sebastian Dröge <sebastian@centricular.com>
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1247>
+
+2021-10-29 03:46:25 +0200 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * gst/rtpmanager/rtptwcc.c:
+ rtptwcc: don't assume all PacketInfo->data are buffers
+ They can also be buffer lists
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1268>
+
+2021-10-25 11:37:45 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * meson.build:
+ meson: require matching GStreamer dep versions for unstable development releases
+ Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/929
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1244>
+
+2021-10-28 21:37:47 +1100 Jan Schmidt <jan@centricular.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Fix text and closed-caption handling.
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1182
+ broke text and and closed caption extraction when introducing WebVTT
+ support, by making the output buffers not have timestamps any more.
+ Fix that by making the process functions copy buffer metadata
+ when generating new output buffers.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1262>
+
+2021-10-25 01:02:07 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * po/af.po:
+ * po/az.po:
+ * po/bg.po:
+ * po/ca.po:
+ * po/cs.po:
+ * po/da.po:
+ * po/de.po:
+ * po/el.po:
+ * po/en_GB.po:
+ * po/eo.po:
+ * po/es.po:
+ * po/eu.po:
+ * po/fi.po:
+ * po/fr.po:
+ * po/fur.po:
+ * po/gl.po:
+ * po/hr.po:
+ * po/hu.po:
+ * po/id.po:
+ * po/it.po:
+ * po/ja.po:
+ * po/ky.po:
+ * po/lt.po:
+ * po/lv.po:
+ * po/mt.po:
+ * po/nb.po:
+ * po/nl.po:
+ * po/or.po:
+ * po/pl.po:
+ * po/pt_BR.po:
+ * po/ro.po:
+ * po/ru.po:
+ * po/sk.po:
+ * po/sl.po:
+ * po/sq.po:
+ * po/sr.po:
+ * po/sv.po:
+ * po/tr.po:
+ * po/uk.po:
+ * po/vi.po:
+ * po/zh_CN.po:
+ * po/zh_HK.po:
+ * po/zh_TW.po:
+ gst-plugins-good: update translations
+ Fixes #656
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1240>
+
+2021-10-23 14:38:06 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/isomp4/qtdemux_types.c:
+ qtdemux: Add pasp box to the list of known boxes
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1235>
+
+2021-01-20 11:53:51 +0100 Rafał Dzięgiel <rafostar.github@gmail.com>
+
+ * gst/matroska/matroska-read-common.c:
+ matroska: Set image/attachment structure mimetype
+ Set structure mimetype to fix data detection by mimetype in other plugins.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1205>
+
+2021-01-20 11:33:39 +0100 Rafał Dzięgiel <rafostar.github@gmail.com>
+
+ * gst/matroska/matroska-read-common.c:
+ matroska: Treat non-image structure as attachment
+ Otherwise each structure is named as GstTagImageInfo even if
+ it does not contain any images which is misleading.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1205>
+
+2021-10-21 20:32:05 +1100 Matthew Waters <matthew@centricular.com>
+
+ * gst/rtpmanager/gstrtpbin.c:
+ rtpbin: fix leak of pad when a fec encoder and aux sender a created
+ The ghost sink pad retrieved by rtpbin from the aux sender was not freed
+ when there was a previous element (fec encoder) in the chain.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1222>
+
+2021-10-18 15:47:00 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * tests/check/meson.build:
+ meson: update for meson.build_root() and .build_source() deprecation
+ -> use meson.project_build_root() or .global_build_root() instead.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1183>
+
+2021-10-18 00:40:14 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * docs/meson.build:
+ * meson.build:
+ * tests/check/meson.build:
+ meson: update for dep.get_pkgconfig_variable() deprecation
+ ... in favour of dep.get_variable('foo', ..) which in some
+ cases allows for further cleanups in future since we can
+ extract variables from pkg-config dependencies as well as
+ internal dependencies using this mechanism.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1183>
+
+2021-10-18 00:03:47 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * meson.build:
+ meson: clean up conditional paths after version bump
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1183>
+
+2021-09-15 14:19:06 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * docs/gst_plugins_cache.json:
+ * gst/rtpmanager/gstrtphdrext-clientaudiolevel.c:
+ * gst/rtpmanager/gstrtphdrext-clientaudiolevel.h:
+ * gst/rtpmanager/gstrtpmanager.c:
+ * gst/rtpmanager/meson.build:
+ * tests/check/elements/rtphdrextclientaudiolevel.c:
+ * tests/check/meson.build:
+ rtphdrext-clientaudiolevel: Rename RFC 6464 element
+ Multiplying elements named after RFC numbers is confusing,
+ so let's give them meaningful names.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1125>
+
+2021-06-05 03:13:52 +1000 Jan Schmidt <jan@centricular.com>
+
+ * gst/isomp4/fourcc.h:
+ * gst/isomp4/meson.build:
+ * gst/isomp4/qtdemux-webvtt.c:
+ * gst/isomp4/qtdemux-webvtt.h:
+ * gst/isomp4/qtdemux.c:
+ * gst/isomp4/qtdemux_types.c:
+ qtdemux: Add support for wvtt (WebVTT) subtitles.
+ WebVTT in ISO MP4 is specified in ISO 14496-30,
+ and needed for DASH support. It's stored in an
+ mp4 specific format. To handle it compatibly,
+ the wvtt boxes are converted back into WebVTT text
+ and pushed as application/x-subtitle-vtt
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1182>
+
+2021-08-27 22:45:18 +1000 Jan Schmidt <jan@centricular.com>
+
+ * gst/isomp4/qtdemux.c:
+ isomp4: Split buffer process functions.
+ Split the different handling for closed captions, VobSub subpicture
+ and timed text samples into separate simplified process functions.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1182>
+
+2021-08-27 21:58:25 +1000 Jan Schmidt <jan@centricular.com>
+
+ * gst/isomp4/qtdemux.c:
+ * gst/isomp4/qtdemux.h:
+ isomp4: Use a function pointer for buffer splitting.
+ Swap the `need_process` boolean check on qtdemux streams
+ for a direct function pointer to the splitting function,
+ so we can stop adding extra cases to the single growing
+ `gst_qtdemux_process_buffer()` function.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1182>
+
+2021-10-14 18:38:26 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * meson.build:
+ meson: bump meson requirement to >= 0.59
+ For monorepo build and ugly/bad, for advanced feature
+ option API like get_option('xyz').required(..) which
+ we use in combination with the 'gpl' option.
+ For rest of modules for consistency (people will likely
+ use newer features based on the top-level requirement).
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1084>
+
+2021-10-05 12:28:22 -0300 Thibault Saunier <tsaunier@igalia.com>
+
+ * gst/isomp4/gstqtmux.c:
+ qtmux: Allow more fields changes renegotiating h264
+ And consider interlace-mode=progress as equivalent to the field not
+ being specified.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1062>
+
+2021-10-05 10:50:32 -0300 Thibault Saunier <tsaunier@igalia.com>
+
+ * gst/matroska/matroska-mux.c:
+ matroskamux: Ignore some fields when renegotiating
+ Those values are never used in the muxer so we should not fail the
+ negotiation if those are changing.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1062>
+
+2021-10-17 01:59:35 -0300 Thibault Saunier <tsaunier@igalia.com>
+
+ * ext/lame/meson.build:
+ lame:meson: Avoid using fallback when we could use system install
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1176>
+
+2021-10-05 11:38:33 -0300 Thibault Saunier <tsaunier@igalia.com>
+
+ * ext/lame/gstlamemp3enc.h:
+ * ext/lame/meson.build:
+ meson: Support building lame as subproject
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1068>
+
+2021-10-12 15:52:48 -0300 Thibault Saunier <tsaunier@igalia.com>
+
+ * docs/meson.build:
+ meson: Streamline the way we detect when to build documentation
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1093>
+
+2021-10-13 14:42:15 +0100 Philippe Normand <philn@igalia.com>
+
+ * ext/soup/stub/soup.h:
+ soup-stub: Gate G_URI_FLAGS_SCHEME_NORMALIZE behind glib version check
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1138>
+
+2021-10-13 10:38:07 +0200 Bastien Nocera <hadess@hadess.net>
+
+ * ext/gtk/gtkgstglwidget.c:
+ gtkglsink: Avoid assertion when applying "auto" rotation method
+ Guard against the orientation not coming from an inexistant tag, nor
+ from the application (rotation set to "auto") which caused an assertion.
+ When the application requests the auto rotation method, make sure it is
+ resolved to a rotation that's applicable.
+ ERROR:gstreamer/subprojects/gst-plugins-good/ext/gtk/gtkgstglwidget.c:745:gtk_gst_gl_widget_set_rotate_method: code should not be reached
+ Fixes: 103ceb853a5f7dade07a1ac4aa517e9df6ed5ded
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1134>
+
+2021-10-04 09:31:02 +0100 Philippe Normand <philn@igalia.com>
+
+ * ext/soup/gstsoup.c:
+ * ext/soup/gstsouphttpclientsink.c:
+ * ext/soup/gstsouphttpclientsink.h:
+ * ext/soup/gstsouphttpsrc.c:
+ * ext/soup/gstsouphttpsrc.h:
+ * ext/soup/gstsouploader.c:
+ * ext/soup/gstsouploader.h:
+ * ext/soup/gstsouputils.c:
+ * ext/soup/gstsouputils.h:
+ * ext/soup/meson.build:
+ * ext/soup/stub/soup.h:
+ * meson.build:
+ * tests/check/elements/souphttpsrc.c:
+ * tests/check/meson.build:
+ soup: Runtime compatibility support for libsoup2 and libsoup3
+ The src and sink elements no longer link against libsoup. It is now loaded at
+ runtime. If any version is resident already, it is used. Otherwise we first try
+ to load libsoup3 and if it's not found we fallback to libsoup2.
+ For the unit-tests, we now build one version of the test unit file per libsoup
+ version found. So if both libsoup2 and libsoup3 are available on the host, the
+ CI will cover them both.
+ Based on initial patch by Daniel Kolesa <dkolesa@igalia.com> and
+ Patrick Griffis <pgriffis@igalia.com>.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1044>
+
+2021-09-10 18:03:55 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * gst/rtp/gstrtpopuspay.c:
+ rtopuspay: Set marker bit inside RTP packet too
+ At the end of a talk spurt, not only set the marker flag on the
+ GstBuffer, but also set the bit inside the RTP header as recommended
+ by the RFC.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1124>
+
+2021-10-11 14:27:24 +0200 Bastien Nocera <hadess@hadess.net>
+
+ * ext/gtk/gstgtkbasesink.c:
+ gtksink: Fetch the default "widget" value in the docs
+ There's really no interesting "widget" value that could be shown in the
+ docs, so use the GST_PARAM_DOC_SHOW_DEFAULT flag to avoid showing
+ another value.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1088>
+
+2021-10-11 10:22:41 +0200 Bastien Nocera <hadess@hadess.net>
+
+ * ext/gtk/gstgtkbasesink.c:
+ * ext/gtk/gstgtkglsink.c:
+ gtksink: Avoid errors fetching widget property
+ Avoid errors when fetching the "widget" property and GTK initialisation
+ fails, such as when running in a non-graphical environment.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1088>
+
+2021-05-04 13:27:30 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/gtk/gstgtkbasesink.c:
+ * ext/gtk/gstgtkglsink.c:
+ gtksink: Return reference to GtkWidget in the acquire function
+ This should ensure thread safety.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1088>
+
+2020-09-03 18:27:19 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * docs/gst_plugins_cache.json:
+ * ext/gtk/gstgtkbasesink.c:
+ * ext/gtk/gstgtkbasesink.h:
+ * ext/gtk/gstgtkglsink.c:
+ * ext/gtk/gtkgstglwidget.c:
+ * ext/gtk/gtkgstglwidget.h:
+ gtkglsink: Add rotate-method property
+ This mostly just takes code out of glimagesink and applies it here.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1088>
+
+2021-10-12 19:01:37 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/multifile/gstsplitmuxsink.c:
+ splitmuxsink: Don't assert on the input side if no GOP is available when shutting down
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1119>
+
+2021-10-12 11:43:16 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * ext/soup/meson.build:
+ libsoup: Bump to 2.74 to fix gssapi build failure on macOS
+ See: https://gitlab.gnome.org/GNOME/libsoup/-/merge_requests/255
+ We also need to disable sysprof by default because it only builds on
+ native Linux. If someone really wants it, they can enable the option
+ on the command-line by passing -Dlibsoup:sysprof=enabled
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1114>
+
+2020-06-05 16:20:18 +0200 Marek Vasut <marex@denx.de>
+
+ * ext/jpeg/gstjpegdec.c:
+ * ext/jpeg/gstjpegdec.h:
+ jpegdec: Support libjpeg-turbo colorspace conversion
+ The libjpeg-turbo has a built-in support for performing colorspace
+ conversion. The performance of this conversion is much better than
+ doing the same separately using videoconvert. Implement support for
+ this conversion to RGBx/xRGB/BGRx/xBGR formats. Other formats can
+ be easily added later.
+ - The decoding of various pixel formats can be tested and compared to
+ non-libjpeg-turbo decoding as follows:
+ for gfmt in {RGB,BGR}{,x} x{RGB,BGR} ; do
+ echo "$gfmt"
+ gst-launch-1.0 -q \
+ videotestsrc pattern=colors ! \
+ video/x-raw,format=${gfmt} ! \
+ fakesink dump=true | \
+ head -n 200 | tail -n 1
+ gst-launch-1.0 -q --gst-plugin-path=build/ext/jpeg/ \
+ videotestsrc pattern=colors ! \
+ video/x-raw,format=${gfmt} ! \
+ jpegenc ! \
+ jpegdec ! \
+ video/x-raw,format=${gfmt} ! \
+ fakesink dump=true | \
+ head -n 200 | tail -n 1
+ done
+ Result looks as follows, i.e. comparable:
+ RGB
+ 00000c70 (0x7f7736fbdd10): 05 33 19 05 33 26 05 33 33 05 33 40 05 33 4c 05 .3..3&.33.3@.3L.
+ 00000c70 (0x7f389e8f7d10): 05 32 17 04 32 22 04 32 31 04 32 3e 04 32 4a 04 .2..2".21.2>.2J.
+ RGBx
+ 00000c70 (0x7f79efd0ad10): cc 07 22 ff d9 07 22 ff e6 07 22 ff f3 07 22 ff .."..."..."...".
+ 00000c70 (0x7fb6989f3d10): cd 06 22 00 d9 06 22 00 e6 06 22 00 f4 06 22 00 .."..."..."...".
+ BGR
+ 00000c70 (0x7fa0a6c42d10): 05 0c 33 05 19 33 05 26 33 05 33 33 05 40 33 05 ..3..3.&3.33.@3.
+ 00000c70 (0x7fc74165fd10): 05 08 32 04 17 32 04 22 32 04 31 32 04 3e 32 04 ..2..2."2.12.>2.
+ BGRx
+ 00000c70 (0x7fbf399f1d10): 22 07 cc ff 22 07 d9 ff 22 07 e6 ff 22 07 f3 ff "..."..."..."...
+ 00000c70 (0x7f50e3d1cd10): 22 06 cd 00 22 06 d9 00 22 06 e6 00 22 06 f4 00 "..."..."..."...
+ xRGB
+ 00000c70 (0x7f0b950a2d10): ff cc 07 22 ff d9 07 22 ff e6 07 22 ff f3 07 22 ..."..."..."..."
+ 00000c70 (0x7f4416b8dd10): 00 cd 06 22 00 d9 06 22 00 e6 06 22 00 f4 06 22 ..."..."..."..."
+ xBGR
+ 00000c70 (0x7f237d74dd10): ff 22 07 cc ff 22 07 d9 ff 22 07 e6 ff 22 07 f3 ."..."..."..."..
+ 00000c70 (0x7f095547dd10): 00 22 06 cd 00 22 06 d9 00 22 06 e6 00 22 06 f4 ."..."..."..."..
+ ^^ ^^ ^^ ^^
+ Notice how the alpha channel is set to arbitrary value in case of the
+ libjpeg-turbo decoding into RGBx/BGRx/xRGB/xBGR pixel formats. This is
+ documented in libjpeg-turbo README.md as follows:
+ "
+ When using the RGBX, BGRX, XBGR, and XRGB colorspaces during decompression, the
+ X byte is undefined, and in order to ensure the best performance, libjpeg-turbo
+ can set that byte to whatever value it wishes.
+ "
+ - The interlaced num_fields=2 mjpeg stream can be generated and
+ tested as follows (this does require mjpegtools):
+ $ gst-launch-1.0 videotestsrc num-buffers=10 ! jpegenc ! multifilesink location=in%04d.jpg
+ $ jpeg2yuv -f 25 -I t -L 0 -j in%04d.jpg | yuv2lav -f avi -o result.avi
+ ...
+ $ gst-launch-1.0 --gst-plugin-path=build/ext/jpeg/ filesrc location=result.avi ! \
+ avidemux ! jpegdec ! video/x-raw,format=RGBx ! videoconvert ! autovideosink
+ Signed-off-by: Marek Vasut <marex@denx.de>
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1091>
+
+2021-09-21 13:37:35 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/multifile/gstsplitmuxsink.c:
+ * gst/multifile/gstsplitmuxsink.h:
+ splitmuxsink: Keep track of the pending input GOPs in a queue
+ This cleans up input GOP handling and makes it possible to handle more
+ than 2 pending GOPs, which could happen before if keyframes are arriving
+ with too short of a distance between them.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1005>
+
+2021-09-16 19:36:27 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/multifile/gstsplitmuxsink.c:
+ * gst/multifile/gstsplitmuxsink.h:
+ splitmuxsink: Handle frame reordering due to B frames better
+ Instead of assuming that the PTS of a keyframe is the lowest PTS of a
+ GOP, wait until the DTS has passed this PTS and take the minimum PTS up
+ to that point. That way the minimum PTS of a GOP can be determined, at
+ least for closed GOP streams. Open GOP streams still can't be handled
+ properly.
+ By knowing the minimum PTS of each GOP, keyframes can be requested at
+ the correct time relative to the GOP (and thus fragment) start and
+ fragment overflow calculations can calculate the correct durations of
+ the GOPs.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1005>
+
+2021-09-16 14:07:27 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/multifile/gstsplitmuxsink.c:
+ splitmuxsink: Reset timecodes when resetting the sink
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1005>
+
+2021-09-16 13:11:20 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/multifile/gstsplitmuxsink.c:
+ splitmuxsink: Use GST_CLOCK_STIME_NONE instead of 0 to initialize max out running time
+ Otherwise streams with only DTS would misbehave while it is negative.
+ For outputting everything immediately at EOS, use G_MAXINT64 instead
+ which is bigger-or-equal to any other running time.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1005>
+
+2021-09-16 13:02:29 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/multifile/gstsplitmuxsink.c:
+ splitmuxsink: Only update max in/out running time if it's actually bigger
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1005>
+
+2021-09-16 12:53:12 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/multifile/gstsplitmuxsink.c:
+ splitmuxsink: Only count keyframes for the reference context, consistently
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1005>
+
+2021-09-24 13:38:39 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * gst/rtpmanager/gstrtphdrext-rfc6464.c:
+ rtphdrext: Pass just the attributes to the subclass
+ Since the base class now does the parsing, there is no need
+ to reproduce that code in all the subclasses, just pass the attributes
+ which are the only relevant bit anyway.
+ Also, only store the direction if the subclass accepted the caps
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/906>
+
+2021-09-24 12:52:37 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * gst/rtpmanager/gstrtphdrext-rfc6464.c:
+ rtphdrext-rfc6464: Use helper function to set caps field
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/906>
+
+2021-09-23 16:01:40 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * gst/rtp/gstrtphdrext-colorspace.c:
+ * gst/rtpmanager/gstrtphdrext-twcc.c:
+ rtphdrext: Set caps without attributes as the default
+ Most subclasses just use the simple function, so just let the base class
+ do it. It makes less code in subclasses.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/906>
+
+2021-09-23 15:36:00 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * gst/rtp/gstrtphdrext-colorspace.c:
+ * gst/rtpmanager/gstrtphdrext-rfc6464.c:
+ * gst/rtpmanager/gstrtphdrext-twcc.c:
+ rtphdrext: Put simple caps generation as the base class default
+ Instead of having a helper function that gets called by almost every
+ subclass, just let the base class set the caps fields automatically.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/906>
+
+2021-09-28 10:11:15 +1000 Brad Hards <bradh@frogmouth.net>
+
+ * README:
+ * RELEASE:
+ doc: update IRC links to OFTC
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/945>
+
+2021-09-26 01:07:02 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * docs/gst_plugins_cache.json:
+ * meson.build:
+ Back to development
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/925>
+
=== release 1.19.2 ===
2021-09-23 01:33:39 +0100 Tim-Philipp Müller <tim@centricular.com>
* ChangeLog:
* NEWS:
* RELEASE:
+ * docs/gst_plugins_cache.json:
* gst-plugins-good.doap:
* meson.build:
Release 1.19.2