+=== release 1.21.2 ===
+
+2022-11-07 23:53:59 +0000 Tim-Philipp Müller <tim@centricular.com>
+
+ * NEWS:
+ * RELEASE:
+ * gst-libav.doap:
+ * meson.build:
+ Release 1.21.2
+
+2022-11-07 23:53:57 +0000 Tim-Philipp Müller <tim@centricular.com>
+
+ * ChangeLog:
+ Update ChangeLogs for 1.21.2
+
+2022-11-04 14:17:39 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * docs/gst_plugins_cache.json:
+ * ext/libav/gstavutils.c:
+ avutils: Add missing space in doc
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3330>
+
+2022-11-04 14:15:34 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * docs/gst_plugins_cache.json:
+ * ext/libav/gstavviddec.c:
+ avviddec: Initialize std_compliance to default
+ This was missed in the initial patch.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3330>
+
+2022-11-04 08:00:03 +0100 Edward Hervey <edward@centricular.com>
+
+ * ext/libav/gstavcfg.c:
+ libav: avcfg: Avoid brittle comparision
+ Subtracting a gint from another (or a guint from another) has no guarantees that
+ it will result in a gint.
+ Therefore do the actual comparision instead.
+ Also use the *actual* type for comparing flags (the field value types are different)
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3319>
+
+2022-11-04 07:59:10 +0100 Edward Hervey <edward@centricular.com>
+
+ * ext/libav/gstavcfg.c:
+ libav: avcfg: Don't leak duplicate enumvalue entries
+ If we discard the duplicates, we also need to free the allocated strings.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3319>
+
+2022-11-02 11:09:17 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * docs/gst_plugins_cache.json:
+ doc: avviddec: Update plugin cache
+ This is to add std-compliance property and GstFFMpegVidDec base class.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3311>
+
+2022-11-01 11:13:23 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * ext/libav/gstav.c:
+ * ext/libav/gstav.h:
+ * ext/libav/gstavcodecmap.c:
+ * ext/libav/gstavcodecmap.h:
+ * ext/libav/gstavutils.h:
+ * ext/libav/gstavviddec.c:
+ * ext/libav/gstavviddec.h:
+ avviddec: Introduce a class for shared properties
+ Without a parent class,the documentation would need to be duplicated for
+ every CODECs. This patch adds an abstract class in between GstVideoDecoder
+ and the element.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3311>
+
+2022-11-01 09:35:11 -0400 Seungha Yang <seungha@centricular.com>
+
+ * ext/libav/gstavutils.c:
+ * ext/libav/gstavutils.h:
+ * ext/libav/gstavviddec.c:
+ * ext/libav/gstavviddec.h:
+ avviddec: Expose std-compliance option
+ Default compliance mode (i.e., FF_COMPLIANCE_NORMAL) might not
+ strictly follow specification. This property will allow user
+ to specifiy expected compliance mode.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3311>
+
+2022-10-26 16:30:31 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * ext/libav/gstavviddec.c:
+ avdec_h265: Fix endless renegoation with alternate interlacing
+ The picture parameter picture->top_field_first is reused in this mode
+ to signal the TOP fields. As a side effect, it will change every frame
+ and current code assumed that if this changes then a renegotiation is
+ needed. Fixed this by ignoring that change whenever we are decoding one field
+ only.
+ Fixes #1523
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3276>
+
+2022-10-26 10:44:01 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * ext/libav/gstavviddec.c:
+ avviddec: Avoid flushing on framerate changes
+ A framerate change does not require flushing the decoder and causes
+ issues with some specific fragmented files if the two fragments have
+ different framerate.
+ Fixes #1522
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3270>
+
+2022-10-18 11:37:30 +0000 Devin Anderson <danderson@microsoft.com>
+
+ * ext/libav/gstavdemux.c:
+ gst-libav: Fix synchronization issues and errors created by the forwarding of segment events by demuxer.
+ In order to play nicely with `ffmpeg`, demuxers in `gst-libav` have to make
+ buffers available to `ffmpeg` while taking the blocking I/O model in `ffmpeg`
+ into account, which results in buffers not being sent downstream until `ffmpeg`
+ has processed them in its separate thread.
+ In constrast, many `gstreamer` events are simply forwarded downstream.
+ Currently `GST_EVENT_SEGMENT` events are forwarded downstream without any
+ processing, which can potentially result in:
+ * `GST_EVENT_SEGMENT` events being out of sync with buffers
+ * `GST_EVENT_SEGMENT` events going out that are incorrect because they apply
+ to data seen by the demuxer, but not necessarily seen by downstream elements
+ I came across this bug when I was attempting to enable G723.1 demuxing/decoding
+ using the G723.1 demuxer and decoder provided by `ffmpeg`. I wrote tests to
+ verify support for the functionality, and found that, in push mode,
+ `GST_EVENT_SEGMENT` events pushed to the demuxer by the upstream `filesrc`
+ element would be forwarded to the decoder without modification, resulting in
+ an internal data streaming error. With this patch, tests work in both push and
+ pull mode.
+ This patch solves the problem by disabling the forwarding of
+ `GST_EVENT_SEGMENT` events downstream (an initial `GST_EVENT_SEGMENT` event is
+ still pushed downstream by the demuxer). It's possible there's a better way to
+ do this, but, having looked at how a few different `gstreamer` demuxers deal
+ with `GST_EVENT_SEGMENT` events, it seems like the processing is somewhat
+ specific to the demuxer implementation, whereas `gst-libav` has one general way
+ of handling the situation for any `ffmpeg` demuxer. Perhaps there's a better
+ way to solve this using the `ffmpeg` API to take advantage of specific demuxer
+ details. IDK.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3218>
+
+2022-10-04 21:27:36 +0200 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * ext/libav/gstavauddec.c:
+ avauddec: address regression with WMA files ..
+ By outputting lead-in samples that FFmpeg now would like us to ignore,
+ and discarding trailing samples that it would now like us to output.
+ See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1474
+ Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1348
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3117>
+
+2022-10-04 03:57:31 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * meson.build:
+ Back to development
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3115>
+
+=== release 1.21.1 ===
+
+2022-10-04 01:14:01 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * ChangeLog:
+ * NEWS:
+ * RELEASE:
+ * gst-libav.doap:
+ * meson.build:
+ Release 1.21.1
+
+2022-10-04 01:13:59 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * ChangeLog:
+ Update ChangeLogs for 1.21.1
+
+2022-09-29 12:42:21 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * ext/libav/gstavauddec.c:
+ avauddec: fix unnecessary reconfiguration if the audio layout isn't specified
+ It would constantly want to renegotiate (and spam the debug log) even
+ though the channel layout hasn't actually changed. We use the same
+ fallback in gst_ffmpegauddec_negotiate() already.
+ This happens with WMA files for example.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3103>
+
+2022-09-21 19:19:45 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * meson.build:
+ meson: Use implicit builtin dirs in pkgconfig generation
+ Starting with Meson 0.62, meson automatically populates the variables
+ list in the pkgconfig file if you reference builtin directories in the
+ pkgconfig file (whether via a custom pkgconfig variable or elsewhere).
+ We need this, because ${prefix}/libexec is a hard-coded value which is
+ incorrect on, for example, Debian.
+ Bump requirement to 0.62, and remove version compares that retained
+ support for older Meson versions.
+ Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1245
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3061>
+
+2022-08-26 08:43:34 -0400 Thibault Saunier <tsaunier@igalia.com>
+
+ * docs/gst_plugins_cache.json:
+ Build documentation for rust plugins
+ - Update the docker image we use, starting using the standard one adding
+ `gtk4-doc` as required by rust plugins
+ - Update the plugins_doc_caches as required, some more plugins are built
+ with the new image
+ - Install ninja from pip as the version from F31 is too old
+ - Avoid buildings all GSreamer plugins when building the doc as it takes
+ time and resources for no good reason
+ - Stop linking to `GInstanceInitFunc` as it is not present in latest GLib
+ documentation, leading to warnings in hotdoc.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2954>
+
+2022-08-29 10:17:45 -0400 Thibault Saunier <tsaunier@igalia.com>
+
+ * docs/meson.build:
+ doc: Do not build plugins to build the doc
+ It is not actually necessary
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2954>
+
+2021-03-24 14:20:18 -0500 Zebediah Figura <z.figura12@gmail.com>
+
+ * meson.build:
+ meson: Build with -Wl,-z,nodelete to prevent unloading of dynamic libraries and plugins
+ GLib made the unfortunate decision to prevent libgobject from ever being
+ unloaded, which means that now any library which registers a static type
+ can't ever be unloaded either (and any library that depends on those,
+ ad nauseam).
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/778>
+
+2022-09-01 15:11:31 -0400 Thibault Saunier <tsaunier@igalia.com>
+
+ * ext/libav/meson.build:
+ meson: Call pkgconfig.generate in the loop where we declare plugins dependencies
+ Removing some copy pasted code
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2970>
+
+2022-09-01 11:51:48 -0400 Thibault Saunier <tsaunier@igalia.com>
+
+ * docs/meson.build:
+ meson: Namespace the plugins_doc_dep/libraries variables
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2970>
+
+2022-08-31 18:44:14 -0400 Thibault Saunier <tsaunier@igalia.com>
+
+ * meson.build:
+ meson: Rename plugins list and make them "dependency" objects
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2970>
+
+2022-05-31 15:18:03 +0200 Stéphane Cerveau <scerveau@collabora.com>
+
+ * docs/meson.build:
+ * meson.build:
+ docs: disable in static build
+ Following gst-plugins-base, disable docs if static_build
+ in:
+ - gstreamer
+ - gst-plugins-good
+ - gst-plugins-ugly
+ - gst-libav
+ - gstreamer-vaapi
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2529>
+
+2022-07-07 22:16:30 +0900 Seungha Yang <seungha@centricular.com>
+
+ * ext/libav/gstavcfg.c:
+ libav: Fix for APNG encoder property registration
+ The AVClass name of Animated PNG in FFmpeg 5.x is "(A)PNG"
+ and it will be converted to "-a-png" through
+ g_ascii_strdown() and g_strcanon(). But GLib disallow leading '-'
+ character for a GType name. Strip leading '-' to workaround it.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2724>
+
+2022-06-29 10:55:13 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * meson.build:
+ coding style: allow declarations after statement
+ See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1243/
+ and https://gitlab.freedesktop.org/gstreamer/gstreamer-project/-/issues/78
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2683>
+
+2022-06-08 19:18:48 +0300 Vivia Nikolaidou <vivia@ahiru.eu>
+
+ * ext/libav/gstavviddec.c:
+ avviddec, video.c, h265parse: Workaround for broken field-based interlaced encoders
+ Some encoders (e.g. Makito) have H265 field-based interlacing, but then
+ also specify an 1:2 pixel aspect ratio. That makes it kind-of work with
+ decoders that don't properly support field-based decoding, but makes us
+ end up with the wrong aspect ratio if we implement everything properly.
+ As a workaround, detect 1:2 pixel aspect ratio for field-based
+ interlacing, and check if making that 1:1 would make the new display
+ aspect ratio common. In that case, we override it with 1:1.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2577>
+
+2022-04-15 16:38:46 +0200 Guillaume Desmottes <guillaume.desmottes@onestream.live>
+
+ * ext/libav/gstavviddec.c:
+ libav: fix frame leak on negotiation error
+ The function owns a reference on the frame. Drop it if negotiation
+ failed as we are already doing for the other error cases.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2196>
+
+2022-04-04 23:32:56 +0200 Fabrice Fontaine <fontaine.fabrice@gmail.com>
+
+ * meson.build:
+ gst-libav: fix build on systems without C++ compiler
+ Fix the following build failure on systems without C++ compiler:
+ The following exception(s) were encountered:
+ Running "/nvmedata/autobuild/instance-9/output-1/host/bin/or1k-buildroot-linux-musl-g++ --version" gave "[Errno 2] No such file or directory: '/nvmedata/autobuild/instance-9/output-1/host/bin/or1k-buildroot-linux-musl-g++'"
+ Fixes:
+ - http://autobuild.buildroot.org/results/8ac0ba5eaaf7571857b4d8cfabf1488d640dc59a
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2112>
+
+2022-03-29 09:36:06 +0200 Edward Hervey <edward@centricular.com>
+
+ * ext/libav/gstavviddec.c:
+ avviddec: Remove vc1/wmv3 override
+ FFMPEG 5+ doesn't allow overriding the codec anymore (causes a segfault if you
+ attempt to do that). But the best part is ... that with the current caps
+ implementation in pad template and gst_ffmpeg_caps_to_codecid() we would never
+ replace it by anything different than the existing codec id.
+ Fixes #1054
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2052>
+
+2022-03-18 13:42:27 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * meson.build:
+ meson: Bump all meson requirements to 0.60
+ Lots of new warnings ever since
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1934
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1977>
+
+2021-10-05 13:43:50 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * ext/libav/gstavaudenc.c:
+ avaudenc: Add support for AV_PKT_DATA_SKIP_SAMPLES side data
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1028>
+
+2019-09-10 17:30:07 +0200 Carlos Rafael Giani <crg7475@mailbox.org>
+
+ * ext/libav/gstavauddec.c:
+ avauddec: Add clipping meta support for gapless playback
+ Co-authored-by: Sebastian Dröge <sebastian@centricular.com>
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1028>
+
+2021-10-01 20:27:28 +0900 Seungha Yang <seungha@centricular.com>
+
+ * meson.build:
+ meson: Do hard build error for some MSVC warnings
+ Handle various MSVC warnings as errors for development version.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1006>
+
+2022-02-04 11:15:47 +0000 Tim-Philipp Müller <tim@centricular.com>
+
+ * meson.build:
+ Back to development
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1635>
+
+=== release 1.20.0 ===
+
+2022-02-03 19:53:25 +0000 Tim-Philipp Müller <tim@centricular.com>
+
+ * ChangeLog:
+ * NEWS:
+ * RELEASE:
+ * gst-libav.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-01-28 19:58:55 +0100 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * docs/gst_plugins_cache.json:
+ docs: gst-libav: update cache and symbol index for FFmpeg 4.4
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1597>
+
+=== release 1.19.90 ===
+
+2022-01-28 14:28:35 +0000 Tim-Philipp Müller <tim@centricular.com>
+
+ * ChangeLog:
+ * NEWS:
+ * RELEASE:
+ * gst-libav.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-17 01:33:47 +0800 Xi Ruoyao <xry111@mengyan1223.wang>
+
+ * ext/libav/gstavauddec.c:
+ * ext/libav/gstavaudenc.c:
+ * ext/libav/gstavcodecmap.c:
+ * ext/libav/gstavutils.c:
+ * ext/libav/gstavviddec.c:
+ * ext/libav/gstavvidenc.c:
+ gst-libav: fix build with ffmpeg-5.0.0
+ Latest ffmpeg has removed avcodec_get_context_defaults(), and its
+ documentation says a new AVCodecContext should be allocated for this
+ purpose. The pointer returned by avcodec_find_decoder() is now
+ const-qualified so we also need to adjust for it. And, AVCOL_RANGE_MPEG
+ is now rejected with strict_std_compliance > FF_COMPLIANCE_UNOFFICIAL.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1531>
+
+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-11-03 18:44:03 +0000 Tim-Philipp Müller <tim@centricular.com>
+
+ * 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:
+ * gst-libav.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-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-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:
+ * 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-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-09-28 10:11:15 +1000 Brad Hards <bradh@frogmouth.net>
+
+ * 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>
+
+ * meson.build:
+ Back to development
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/925>
+