=== release 1.18.5 ===

2021-09-08 20:02:20 +0100  Tim-Philipp Müller <tim@centricular.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* gst-plugins-base.doap:
	* meson.build:
	  Release 1.18.5

2021-03-15 19:05:44 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* gst-libs/gst/rtsp/gstrtspconnection.c:
	  rtspconnection: Consistently translate GIOError to GstRTSPResult
	  The users of this API need to be able to differentiate between EINTR
	  and ERROR. For example, in rtspsrc, gst_rtsp_conninfo_connect()
	  behaves differently when gst_rtsp_connection_connect_with_response_usec()
	  returns an ERROR or EINTR. The former is an element error while the
	  latter is simple a GST_ERROR since it was a user cancellation of the
	  connection attempt.
	  Due to this, rtspsrc was incorrectly emitting element errors while
	  going to NULL, which would or would not reach the application in
	  a racy manner.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1271>

2021-06-11 09:27:46 -0600  Scott Moreau <oreaus@gmail.com>

	* gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.c:
	  gl/wayland: Use consistent wl_display when creating work queue for proxy wrapper
	  Without this, glimagesink since wayland 727c7903 fails with
	  gst-launch-1.0: ../src/wayland-client.c:2181: wl_proxy_set_queue:
	  Assertion 'proxy->display == queue->display' failed.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1247>

2021-07-09 09:49:15 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/audio/gstaudioaggregator.c:
	* tests/check/elements/audiomixer.c:
	  audioaggregator: Resync on the next buffer when dropping a buffer on discont resyncing
	  If a buffer is dropped during resyncing on a discont because either its
	  end offset is already before the current output offset of the
	  aggregator or because it fully overlaps with the part of the current
	  output buffer that was already filled, then don't just assume that the
	  next buffer is going to start at exactly the expected offset. It might
	  still require some more dropping of samples.
	  This caused the input to be mixed with an offset to its actual position
	  in the output stream, causing additional latency and wrong
	  synchronization between the different input streams.
	  Instead consider each buffer after a discont as a discont until the
	  aggregator actually resynced and starts mixing samples from the input
	  again.
	  Also update the start output offset of a new input buffer if samples
	  have to be dropped at the beginning. Otherwise it might be mixed too
	  early into the output and overwrite part of the output buffer that
	  already took samples from this input into account.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/912
	  which is a regression introduced by https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1180/
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1228>

2021-05-06 19:01:41 +0200  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* gst-libs/gst/video/video-converter.c:
	  video-converter: Set up gamma tables only once
	  When the video converter is using multiple threads, the gamma tables
	  were created multiple times, leaking the tables set up for the previous
	  thread.
	  Only calculate the tables once.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1217>

2021-05-06 18:22:45 +0200  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* gst-libs/gst/audio/audio-converter.c:
	  audio-converter: Free config when gst_audio_converter_new fails
	  The config got leaked when parameter validation fails.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1217>

2021-06-25 23:42:34 +1000  Jan Schmidt <jan@centricular.com>

	* gst-libs/gst/video/video-converter.c:
	  video-converter: Set up matrix tables only once.
	  When configuring a multi-thread converter, only allocate the
	  shared colour conversion matrices once for the first thread,
	  to avoid allocating multiple times and leaking memory.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1220>

2021-04-23 18:03:20 +0200  Per Förlin <perfn@axis.com>

	* gst-libs/gst/rtsp/gstrtspconnection.c:
	  gstrtspconnection: Add IPv6 support for tunneled mode
	  An IPv6 address must be specified within [] brackets.
	  Add brackets for IPv6 address used for tunneled mode,
	  for non-tunneled this is already supported.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1214>

2021-06-21 14:06:14 +0000  Sergei Kovalev <sergei@pexip.com>

	* gst-libs/gst/audio/gstaudiobasesink.c:
	  audiobasesink: Fix of double lock release
	  Add missing "return;" which prevents double lock release.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1210>

2021-05-31 09:14:53 +0200  Daniel Knobe <daniel-knobe@web.de>

	* gst/rawparse/gstrawbaseparse.c:
	  rawbaseparse: check destination format correctly
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1186>

2021-05-26 22:50:22 -0400  Olivier Crête <olivier.crete@collabora.com>

	* tests/check/elements/audiomixer.c:
	  audiomixer: Add test for discont going backwards
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1185>

2021-05-27 16:05:04 -0400  Olivier Crête <olivier.crete@collabora.com>

	* gst-libs/gst/audio/gstaudioaggregator.c:
	  audioaggregator: Don't overwrite already written samples
	  On re-sync, don't forget what has already been written. Instead, just
	  drop any samples that overlap with parts that were already filled.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1185>

2021-05-27 16:20:09 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/audio/gstaudiobasesrc.c:
	  audiobasesrc: Fix divide by zero assertion
	  GstAudioRingBufferSpec can be cleared from other thread, then
	  rate value will be zero
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1183>

2021-05-26 23:22:45 +0200  Marijn Suijten <marijns95@gmail.com>

	* gst-libs/gst/audio/audio-format.c:
	* gst-libs/gst/video/video-format.c:
	  audio,video-format: Make generate_raw_formats idempotent for assertions
	  When compiling without assertions `g_assert` and its contents disappear
	  resulting in no list being deserialized at all and the
	  `gst_{audio,video}_formats_raw` functions to return an empty collection.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1182>

2021-05-20 11:58:58 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst/compositor/blend.c:
	  compositor: Fix NV12 blend operation
	  The full src_height/width was being used instead of the remaining
	  width/height for the current band. As a side effect, that value would
	  get erroneously reset and would cause overrun.
	  Fixes #887
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1163>

2021-05-02 20:45:01 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/app/gstappsrc.c:
	  appsrc: Don't leak buffer list while wrongly unreffing buffer on EOS/flushing
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1135>

2021-05-02 20:45:36 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/app/meson.build:
	  app: Add gstappsrc.h to the enum headers in meson.build
	  It's already indirectly included but let's better be explicit here.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1135>

2021-04-30 20:42:55 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* gst/videotestsrc/gstvideotestsrc.c:
	  videotestsrc: Fix a leak when computing alpha caps
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1132>

2021-04-26 14:25:03 -0400  Xavier Claessens <xavier.claessens@collabora.com>

	* gst-libs/gst/gl/meson.build:
	  gstgl: Fix build when Meson >= 0.58.0rc1
	  "implicit_include_directories: false" now also means that current build
	  directory is not added to include paths by default any more. We have to
	  add it manually because we have some custom_target() that generate
	  headers in current build directory.
	  See https://github.com/mesonbuild/meson/issues/8700.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1127>

2021-04-21 02:05:36 +0900  Seungha Yang <seungha@centricular.com>

	* gst/playback/gsturidecodebin.c:
	  uridecodebin: Don't force floating reference for future reusable decodebin
	  uridecodebin assumes that refcount of decodebins stored in pending_decodebins
	  are floating but it might not be true in case that refcount of the decodebin
	  was touched in other places. To avoid the floating refcount issue,
	  hold strong reference.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1119>

2021-04-21 02:02:48 +0900  Seungha Yang <seungha@centricular.com>

	* gst/playback/gsturidecodebin.c:
	  uridecodebin: Use gst_object_ref instead of g_object_ref
	  It's more debugging friendly (tracer for example)
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1119>

2021-04-12 14:02:46 +0200  Mathieu Duponchelle <mathieu@centricular.com>

	* gst/playback/gstplaybin2.c:
	* gst/playback/gstplaybin3.c:
	  playbin{2,3}: fix base_time selection when flush seeking live
	  This is a direct translation of
	  <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/429>,
	  as playbin{2,3} insulates its sub groups state changes from the pipeline
	  base class, it needs to track whether the subgroup is live itself,
	  and handle RESET_TIME the same way GstPipeline does.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1110>

2021-04-06 13:22:15 +0200  Robin Burchell <robin.burchell@crimson.no>

	* gst/gio/gstgiobasesink.c:
	  gstgiobasesink: Handle incomplete writes in gst_gio_base_sink_render()
	  As the comment asked, yes, incomplete writes can happen.
	  I have encountered this with an sshfs mount, for example.
	  It seems like g_output_stream_write_all() is designed to handle this case,
	  by not returning until the requested buffer has been completely written,
	  or an error occurs, which seems to match up with the desired behaviour.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/885
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1108>

2021-04-05 00:34:21 +0900  Seungha Yang <seungha@centricular.com>

	* ext/pango/gstclockoverlay.c:
	* ext/pango/gstclockoverlay.h:
	  clockoverlay: Fix broken string formatting by strftime() on Windows
	  Like other foobarA variant APIs on Windows, formatted string
	  by strftime() is ANSI string, not unicode encoded one.
	  It would be problematic for non-english locale systems.
	  We should use unicode version API (wcsftime in this case)
	  whenever it's possible on Windows.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1107>

2021-03-18 19:18:36 +1100  Matthew Waters <matthew@centricular.com>

	* ext/gl/gstgleffects.c:
	* ext/gl/gstglimagesink.h:
	* ext/opus/gstopusenc.c:
	* gst-libs/gst/audio/gstaudiodecoder.c:
	* gst-libs/gst/audio/gstaudiometa.c:
	* gst-libs/gst/audio/streamvolume.c:
	* gst-libs/gst/gl/cocoa/gstglcaopengllayer.m:
	* gst-libs/gst/gl/egl/gstgldisplay_egl.c:
	* gst-libs/gst/gl/egl/gstglmemoryegl.c:
	* gst-libs/gst/gl/gbm/gstgldisplay_gbm.c:
	* gst-libs/gst/gl/gl_mkenum.py:
	* gst-libs/gst/gl/gstglbasememory.c:
	* gst-libs/gst/gl/gstglbuffer.c:
	* gst-libs/gst/gl/gstglcontext.c:
	* gst-libs/gst/gl/gstgldebug.c:
	* gst-libs/gst/gl/gstgldisplay.c:
	* gst-libs/gst/gl/gstglfeature.c:
	* gst-libs/gst/gl/gstglmemory.c:
	* gst-libs/gst/gl/gstglmemorypbo.c:
	* gst-libs/gst/gl/gstglquery.c:
	* gst-libs/gst/gl/gstglrenderbuffer.c:
	* gst-libs/gst/gl/gstglsl.c:
	* gst-libs/gst/gl/gstglsyncmeta.c:
	* gst-libs/gst/gl/gstglutils.c:
	* gst-libs/gst/gl/gstglwindow.c:
	* gst-libs/gst/gl/wayland/wayland_event_source.c:
	* gst-libs/gst/pbutils/encoding-profile.c:
	* gst-libs/gst/pbutils/gstaudiovisualizer.c:
	* gst-libs/gst/rtp/gstrtpmeta.c:
	* gst-libs/gst/rtsp/gstrtspextension.c:
	* gst-libs/gst/tag/gsttagmux.c:
	* gst-libs/gst/tag/xmpwriter.c:
	* gst-libs/gst/video/gstvideoaffinetransformationmeta.c:
	* gst-libs/gst/video/gstvideoaggregator.c:
	* gst-libs/gst/video/gstvideodecoder.c:
	* gst-libs/gst/video/gstvideoencoder.c:
	* gst-libs/gst/video/gstvideometa.c:
	* gst-libs/gst/video/video-anc.c:
	* gst-libs/gst/video/video-multiview.c:
	* gst-libs/gst/video/video-overlay-composition.c:
	* gst/adder/gstadder.h:
	* gst/encoding/gstencodebin.c:
	* gst/playback/gstplay-enum.c:
	* gst/videorate/gstvideorate.h:
	* gst/videoscale/gstvideoscale.c:
	  gst: don't use volatile to mean atomic
	  volatile is not sufficient to provide atomic guarantees and real atomics
	  should be used instead.  GCC 11 has started warning about using volatile
	  with atomic operations.
	  https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719
	  Discovered in https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/868
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1106>

2021-04-04 21:18:59 +0700  Binh Truong <crziter@gmail.com>

	* gst-libs/gst/gl/gl_mkenum.py:
	  Fix build issue on MinGW64
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1098>

2020-12-11 10:15:32 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstparsebin.c:
	  parsebin: Put stream flags in GstStream
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1086>

2021-03-22 13:59:39 +1100  Matthew Waters <matthew@centricular.com>

	* gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.c:
	  gl/wayland: provide a dummy global_remove function
	  Even if we don't care about any global objects being removed, wayland
	  will still error if globals are removed without a corresponding listener
	  set up for them.  e.g. wl_output hotplugging
	  Discovered by: Matthias Clasen
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1085>

2021-03-21 16:46:54 +1100  Jan Schmidt <jan@centricular.com>

	* gst/gio/gstgiosrc.c:
	  gstgiosrc: Don't leak scheme string in gst_gio_src_query()
	  Add a g_free() in the code path that forwards the query to the parent
	  handler.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1084>

2021-03-15 19:48:54 +0000  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development

=== release 1.18.4 ===

2021-03-15 17:47:59 +0000  Tim-Philipp Müller <tim@centricular.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* gst-plugins-base.doap:
	* meson.build:
	  Release 1.18.4

2021-03-03 01:08:25 +0000  Tim-Philipp Müller <tim@centricular.com>

	* gst-libs/gst/tag/id3v2frames.c:
	  tag: id3v2: fix frame size check and potential invalid reads
	  Check the right variable when checking if there's
	  enough data left to read the frame size.
	  Closes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/876
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1066>

2021-03-10 14:26:22 +0100  Guillaume Desmottes <guillaume.desmottes@collabora.com>

	* gst-libs/gst/audio/gstaudioaggregator.c:
	  audioaggregator: fix input_buffer ownership
	  The way pad->priv->input_buffer reference was managed was pretty
	  spurious:
	  - it was overridden without unrefing it, which could potentially lead to
	  leaks.
	  - we were unreffing it while keeping the pointer around, which could
	  potentially lead to use-after-free or double-free.
	  As priv->input_buffer is actually no longer used outside of the
	  aggregate() method, remove it from pad->priv to simplify the code and
	  prevent the issues desribed above.
	  Fix a single buffer leak when shutting down the pipeline as the buffer
	  returned from gst_aggregator_pad_drop_buffer() was never unreffed.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1062>

2021-03-10 16:22:14 +0100  Guillaume Desmottes <guillaume.desmottes@collabora.com>

	* gst-libs/gst/audio/gstaudioaggregator.c:
	  audioaggregator: fix input buffer when converting
	  This code path is meant to convert the current buffer to the new format
	  on update. It was using priv->input_buffer as input which is either
	  priv->buffer or a converted version of it.
	  Use priv->buffer instead as priv->input_buffer may no longer be a valid
	  reference.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1062>

2021-02-19 16:44:35 +0200  Vivia Nikolaidou <vivia@ahiru.eu>

	* gst-libs/gst/video/video-converter.c:
	  video-converter: Don't upsample/downsample/dither invalid lines
	  This is a fallout from the conversion to support multiple threads.
	  convert->upsample_p is never NULL now, it's always an allocated array of
	  n_threads potentially-null pointers.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1054>

2021-02-25 11:03:31 +0100  Kristofer Björkström <kristofb@axis.com>

	* gst-libs/gst/rtsp/gstrtspconnection.c:
	  gstrtspconnection: correct data_size when tunneled mode
	  gst_rtsp_connection_send_messages_usec in tunneled mode does base64
	  encode messages. When calculating data_size 1 bytes is added, which
	  results in ending the base64 with a NULL.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1053>

2021-02-24 19:51:40 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/audio/gstaudioaggregator.c:
	  audioaggregator: Log if the sample rate of one sinkpad is not accepted
	  Otherwise this can silently cause not-negotiated errors without any
	  direct hint about what went wrong.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1052>

2021-02-22 15:36:53 +0900  Jeongki Kim <jeongki.kim@jeongki.kim>

	* gst/audioresample/gstaudioresample.c:
	  audioresample: Respect buffer layout when drain
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1050>

2021-01-19 15:56:18 +0100  Stéphane Cerveau <scerveau@collabora.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: change stream selection message owner
	  In order to select the streams on GST_MESSAGE_STREAM_COLLECTION,
	  the app needs to send the select-streams event
	  to the decodebin and not to the parsebin.
	  The message should be always owned by the decodebin.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1044>

2021-02-15 16:05:30 +0000  Tim-Philipp Müller <tim@centricular.com>

	* gst/playback/gsturidecodebin3.c:
	  uridecodebin3: make caps property work
	  The caps set on uridecodebin3 via the "caps" property
	  were never passed to the internal decodebin3, so did
	  absolutely nothing.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/837
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1038>

2021-02-13 00:27:04 +0100  Alicia Boya García <ntrrgc@gmail.com>

	* gst-libs/gst/video/gstvideodecoder.c:
	  videodecoder: Fix racy critical when pool negotiation occurs during flush
	  I found a rather reproducible race in a WebKit LayoutTest when a player
	  was intantiated and a VP8/9 video was loaded, then torn down after
	  getting the video dimensions from the caps.
	  The crash occurs during the handling of the first frame by gstvpxdec.
	  The following actions happen sequentially leading to a crash.
	  (MT=Main Thread, ST=Streaming Thread)
	  MT: Sets pipeline state to NULL, which deactivates vpxdec's srcpad,
	  which in turn sets its FLUSHING flag.
	  ST: gst_vpx_dec_handle_frame() -- which is still running -- calls
	  gst_video_decoder_allocate_output_frame(); this in turn calls
	  gst_video_decoder_negotiate_unlocked() which fails because the
	  srcpad is FLUSHING. As a direct consequence of the negotiation
	  failure, a pool is NOT set.
	  gst_video_decoder_negotiate_unlocked() still assumes there is a
	  pool, crashing in a critical in gst_buffer_pool_acquire_buffer()
	  a couple statements later.
	  This patch fixes the bug by returning != GST_FLOW_OK when the
	  negotiation fails. If the srcpad is FLUSHING, GST_FLOW_FLUSHING is
	  returned, otherwise GST_FLOW_ERROR is used.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1037>

2021-02-15 17:22:47 +0100  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* gst-libs/gst/audio/audio.c:
	  libs: audio: Fix gst_audio_buffer_truncate meta handling
	  In the non-interleaved case, it made `buffer` writable but then changed
	  the meta of the non-writable buffer.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1036>

2021-01-26 14:05:48 +0100  Knobe, Daniel <daniel.knobe@miele.com>

	* tests/examples/overlay/meson.build:
	  overlay/example: added qt core dependency for qt overlay example
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1026>

2021-01-12 10:36:34 +0100  Marijn Suijten <marijns95@gmail.com>

	* gst-libs/gst/video/video-info.c:
	* gst-libs/gst/video/video-info.h:
	  video: Convert info_to_caps to take self as const ptr
	  This requires a slight modification to the function itself because it
	  was overwriting a member locally.
	  However, now this side-effect cannot be observed outside the function
	  anymore.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1024>

2021-01-14 02:16:57 +0000  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development

=== release 1.18.3 ===

2021-01-13 21:07:11 +0000  Tim-Philipp Müller <tim@centricular.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* gst-plugins-base.doap:
	* meson.build:
	  Release 1.18.3

2020-12-07 11:23:49 -0300  Thibault Saunier <tsaunier@igalia.com>

	* gst/encoding/gstencodebin.c:
	  encodebin: Ensure that parsers are compatible with selected encoders
	  See https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/845
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1007>

2020-12-24 11:44:27 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: When reconfiguring a slot make sure that the ghostpad is unlinked
	  This was only taken care of previously if there was a decoder before.
	  However if previously a decoder was not needed then the ghostpad
	  would've been linked directly to the slot's srcpad.
	  Reconfiguring the slot requires this to be undone so that linking can
	  happen normally.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/987>

2020-07-14 20:44:18 +0200  Jakub Adam <jakub.adam@collabora.com>

	* gst-libs/gst/video/video-blend.c:
	  video-blend: fix blending 8-bit and 16-bit frames together
	  Replace hardcoded 255s with the correct max value for the given color
	  depth. Use 64-bit integer in calculations where overflow may occur.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1006>

2021-01-05 20:18:24 +1100  Matthew Waters <matthew@centricular.com>

	* gst-libs/gst/gl/gstgl_enums.h:
	* gst-libs/gst/gl/gstglmemory.c:
	* gst-libs/gst/gl/gstglutils.c:
	  gl: document some GL caps specifics
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/854
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/998>

2021-01-04 13:40:20 +0000  Tim-Philipp Müller <tim@centricular.com>

	* gst-libs/gst/tag/gsttagdemux.c:
	  tagdemux: resize and trim buffer in place to fix interaction with oggdemux
	  Elements operating in pull mode may optionally pass a buffer to
	  pull_range that should be filled with the data. The only element
	  that does that at the moment is oggdemux operating in pull mode.
	  tagdemux currently creates a sub-buffer whenever a buffer pulled
	  from upstream (filesrc, usually) needs to be trimmed. This creates
	  a new buffer, however, so disregards any passed-in buffer from a
	  downstream oggdemux.
	  This would cause assertion failures and playback problems for
	  ogg files that contain ID3 tags at the end.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/848
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/995>

2020-12-29 20:24:51 +0100  Mathieu Duponchelle <mathieu@centricular.com>

	* gst/compositor/blend.c:
	  compositor/blend: fix blending of subsampled components
	  The correct way to determine the byte offset at a certain yoffset
	  in a subsampled component is to shift the yoffset by the component's
	  hsub
	  This fixes out-of-bounds memory accesses and visible artefacts,
	  example pipeline with the samples from #802:
	  gst-launch-1.0 compositor name=vmixer sink_1::xpos=1910 sink_1::ypos=1080 ! \
	  videoconvert ! videorate ! xvimagesink \
	  filesrc location=VID_20200723_203606.mp4 ! decodebin name=demux1 ! \
	  queue ! videoflip method=vertical-flip ! vmixer. \
	  filesrc location=bridgeoverstubbledwater.mp4 ! decodebin name=demux2 ! \
	  queue ! vmixer.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/989>

2020-12-31 17:25:40 +0100  Mathieu Duponchelle <mathieu@centricular.com>

	* gst-libs/gst/app/gstappsrc.c:
	  appsrc: fix signal documentation
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/993>

2020-12-30 14:56:54 +0100  Edward Hervey <edward@centricular.com>

	* gst-libs/gst/video/gstvideoaggregator.c:
	  videoaggregator: Pop out old buffers on timeout
	  This situation happens in the situation where an input stream has a framerate
	  exceeding the timeout latency (Ex: 1fps with a latency of 500ms) and an input
	  stream greater than output framerate (ex: 60fps in, 30 fps out).
	  The problem that would happen is that we would timeout, but then buffers from
	  the fast input stream would only be popped out one by one.... until a buffer
	  reaches the low-framerate input stream at which point they would quickly be
	  popped out/used. The resulting output would be "slow ... fast ... slow ... fast"
	  of that input fast stream.
	  In order to avoid this situation, whenever we detect a late buffer, check if
	  there's a next one and re-check with that one.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/991>

2020-12-15 15:07:31 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/audiorate/gstaudiorate.c:
	  audiorate: Make buffer writable before changing its metadata
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/978>

2020-12-10 19:06:00 +0200  Jordan Petridis <jordan@centricular.com>

	* ext/libvisual/plugin.c:
	  libvisual: workaround clang warning
	  libvisual api expects a priv data pointer to be passed, though we know its
	  going to be `GstDebugLevel`.
	  ```
	  ../subprojects/gst-plugins-base/ext/libvisual/plugin.c:33:39: error: cast to smaller integer type 'GstDebugLevel' from 'void *' [-Werror,-Wvoid-pointer-to-enum-cast]
	  GST_CAT_LEVEL_LOG (libvisual_debug, (GstDebugLevel) (priv), NULL, "%s - %s",
	  ```
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/976>

2020-12-11 10:13:59 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3-parse.c:
	  decodebin3: Release selection lock when pushing EOS
	  We can't keep the lock otherwise this would lock other actions. In order to keep
	  it safe, we grab a list of peer pads to send EOS to with the lock taken, then
	  send to the peer pads with the lock released.
	  Also make sure the selection lock is taken for another call to this function
	  Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/847
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/973>

2020-12-06 23:56:42 +0000  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development

=== release 1.18.2 ===

2020-12-06 13:22:08 +0000  Tim-Philipp Müller <tim@centricular.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* gst-plugins-base.doap:
	* meson.build:
	  Release 1.18.2

2020-11-06 14:05:39 +0800  He Junyan <junyan.he@intel.com>

	* ext/gl/gstglimagesink.c:
	  glimagesink: Avoid assert in query.
	  The sink_query just uses context, other_context and display to query info.
	  But all these objects can be changed or distroyed in state_change() func
	  and other places.
	  This patch is not very perfect. The condition race still exists in other
	  places in this element. All the functions directly access these objects
	  without protection. Most of them are executed when the data is pushing and
	  draw context/window have already been established, so they should not have
	  problems. But the sink_query and propose_allocation functions are the query
	  -like functions and executed in query context, which can be called in any
	  state of the element. So it can cause some crash issues because of destroyed
	  context object.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/962>

2020-11-06 16:18:14 +0800  He Junyan <junyan.he@intel.com>

	* ext/gl/gstglcolorconvertelement.c:
	  glcolorconver: Return empty caps in transform_caps if fails.
	  We should not return a NULL in transform_caps() function. The NULL
	  will generate a assert of:
	  "transform_caps returned caps which are not a real subset of the
	  filter caps"
	  in transform base class.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/962>

2020-11-06 15:36:01 +0800  He Junyan <junyan.he@intel.com>

	* gst-libs/gst/gl/gstglbasefilter.c:
	  glbasefilter: Need to check the display before lock it.
	  In find_gl_context_unlocked(), the display of filter may be NULL
	  and can cause crash if we directly access and lock it.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/962>

2020-11-06 15:36:21 +0800  He Junyan <junyan.he@intel.com>

	* gst-libs/gst/gl/gstglbasefilter.c:
	  glbasefilter: Delete the un-paired unlock in change_state().
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/962>

2020-12-03 06:50:07 -0500  Arun Raghavan <arun@asymptotic.io>

	* gst-libs/gst/audio/gstaudioencoder.c:
	  audioencoder: Fix incorrect GST_LOG_OBJECT usage
	  GstBuffer is not a GstObject, so this causes a warning to be emitted.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/961>

2020-11-26 14:52:26 +0200  Mart Raudsepp <mart@leio.tech>

	* gst-libs/gst/gl/eagl/gstglwindow_eagl.m:
	  gl/eagl: Fix automatic resize behaviour
	  https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/681
	  added a layoutSubViews, which never gets called, because it should have been
	  called layoutSubviews (non-capital "v"). However after fixing that, it still
	  doesn't work correctly, because window_width/height values are immediately
	  updated and then draw_cb will never trigger the resize path, because the
	  values are already up to date.
	  Update the values inside the resize path again instead, so the check for
	  entering the resize path is logically always correct.
	  This makes the layoutSubviews unnecessary, as it only updated the internal
	  size values prematurely, so it is deleted instead of method naming fixed.
	  These changes were originally done to avoid accessing UIKit objects on the
	  main thread, but no additional accesses are added here, only internal
	  private variable assignments under the same draw_lock, so there should be
	  no threading issues reintroduced.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/960>

2020-11-26 14:45:05 +0200  Mart Raudsepp <mart@leio.tech>

	* gst-libs/gst/gl/eagl/gstglwindow_eagl.m:
	  gl/eagl: Fix resize condition check in draw_cb to not get called unnecessarily
	  A CGSize contains CGFloat values (a typedef to double or float), which means
	  that the values aren't equal, despite it being equal after they are cast to
	  int by assigning them to window_height/width private members. This leads to
	  excessive gst_gl_window_resize calls on each frame, at least if the CGFloat
	  value has a .5 decimal value, e.g. 103.5.
	  Fix it by storing them as CGFloat instead of gint.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/960>

2020-11-20 16:51:09 +1100  Matthew Waters <matthew@centricular.com>

	* gst-libs/gst/video/video-converter.c:
	  video/converter: increase the number of cache lines for resampling
	  The exising hardcoded max default does not account for the possible
	  -1 offset when retrieving lines for resampling.  As a result, when
	  another chain has the same number of cache lines (4), the resample
	  operation would be attempting to generate 5 lines with a cache size
	  of 4 and would overwrite the first cache line.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/821
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/959>

2020-11-04 17:02:13 +0800  He Junyan <junyan.he@intel.com>

	* ext/gl/gstgluploadelement.c:
	  gluploadelement: Avoid race condition of base class' context.
	  The base class' context may change, we should use the common API
	  with lock to access it, rather than the just directly access the
	  struct field.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/921>

2020-11-04 23:05:27 +0800  He Junyan <junyan.he@intel.com>

	* ext/gl/gstgluploadelement.c:
	  gluploadelement: Avoid race condition in propose_allocation().
	  The inside upload and context may have race condition in the function
	  of propose_allocation(). They may be destroyed while this function is
	  stilling using it.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/921>

2020-12-01 13:13:40 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/compositor/compositor.c:
	  compositor: Don't crash in prepare_frame() if the pad was just removed
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/955>

2020-12-01 09:31:48 +0100  Guillaume Desmottes <guillaume.desmottes@collabora.com>

	* gst-libs/gst/video/gstvideometa.c:
	  videometa: gir annotate the size of plane array in new API
	  Fix #838
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/954>

2020-11-27 11:41:36 +0530  Sanchayan Maity <sanchayan@asymptotic.io>

	* gst-libs/gst/audio/gstaudiodecoder.c:
	  audiodecoder: Move max_errors out of GstAudioDecoderContext
	  Currently max-errors gets set during init to default or via property.
	  However, if a decoder element calls gst_audio_decoder_reset with 'full'
	  argument set to TRUE, it would result in all the fields of context being
	  zeroed with memset. This effectively results in max-errors getting a
	  value of 0 overriding the default or user requested value set during
	  init.
	  This would result in calls to GST_AUDIO_DECODER_ERROR which track error
	  counts and allow max-errors, to be ineffective.
	  To fix this move max-errors out of GstAudioDecoderContext, as changes to
	  context should not affect this. The error_count is anyways also in
	  GstAudioDecoderPrivate and not in context.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/953>

2020-11-19 14:35:32 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3-parse.c:
	  decodebin3: Don't leak filter caps
	  Introduced by previous commit
	  See https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/933
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/935>

2020-11-14 09:43:59 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3-parse.c:
	  decodebin3: Properly handle caps query with no filter
	  There's no guarantee that upstream elements will do queries with specified
	  filter caps. If that's the case, just return GST_CAPS_ANY
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/935>

2020-11-10 23:26:39 +0100  David Keijser <keijser@gmail.com>

	* gst-libs/gst/pbutils/encoding-profile.c:
	  Fix segfault when using invalid encoding profile
	  Trying to use gst_encoding_profile_get_file_extension on a
	  GstEncodingProfile with a cap containing a typo would result in strcmp
	  being called with NULL. Instead use g_strcmp0 that handles this case.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/930>

2020-10-30 13:56:16 -0300  Thibault Saunier <tsaunier@igalia.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst-libs/gst/video/gstvideoaggregator.c:
	* gst/compositor/compositor.c:
	* tests/check/elements/compositor.c:
	* tests/validate/compositor/renogotiate_failing_unsupported_src_format.validatetest:
	* tests/validate/meson.build:
	  videoaggregator: Guarantee that the output format is supported
	  In the case `videoaggregator` is set as allowing format conversions,
	  and as we convert only on the sinkpads, we should ensure that the
	  chosen format is usable by the subclass. This in turns implies
	  that the format is usable on the srcpad.
	  When doing conversion *any* format can be used on the sinkpads, and this
	  is the only way that we can avoid race conditions during renegotiations
	  so we can not change that fact, we just need to ensure that the chosen
	  intermediary format is usable, which was not actually ensured before
	  that patch.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/834
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/928>

2020-10-29 16:38:44 -0300  Thibault Saunier <tsaunier@igalia.com>

	* gst-libs/gst/video/gstvideoaggregator.c:
	  video-aggregator: Fix renegotiation when using convert pads
	  Since 23189c60f4cff998c7880e1768cee2f6d1b719d0 we started using the
	  useless result of `modified_caps` which, was never used since it was
	  introduced 7 years ago (in videomixer2). The intersection is useless and
	  we should just avoid doing it at all (which was always the case before)
	  as it can end up failing renegotiation for bad reasons.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/907>

2020-11-09 18:00:48 +0100  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* gst-libs/gst/video/gstvideoaggregator.c:
	  videoaggregator: Use local var instead of reloading vagg->info
	  `gst_video_aggregator_default_negotiated_src_caps` races with
	  `gst_video_aggregator_reset` called by
	  `gst_video_aggregator_release_pad` of the last sinkpad. It can happen
	  that `latency = gst_util_uint64_scale (...` gets called with a zero
	  framerate.
	  There doesn't seem to be any reason not to use the local `info` instead
	  of `vagg->info`, so do that.
	  Cherry-picked changes from b3fe2d3623722ebf9dfe5c3dc198764ce17cba38.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/926>

2020-11-09 17:58:09 +0100  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* gst-libs/gst/video/gstvideoaggregator.c:
	  videoaggregator: Take object lock for writing vagg->info
	  Take `GST_OBJECT_LOCK` when writing `vagg->info`, so that reading in
	  subclasses is protected against races, as documented in the struct.
	  /*< public >*/
	  /* read-only, with OBJECT_LOCK */
	  GstVideoInfo                  info;
	  Cherry-picked changes from b3fe2d3623722ebf9dfe5c3dc198764ce17cba38.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/926>

2020-10-26 08:59:34 +0100  Guillaume Desmottes <guillaume.desmottes@collabora.com>

	* gst-libs/gst/video/gstvideodecoder.h:
	  video: fix doc warning
	  @mode has been renamed to
	  gst_video_decoder_set_interlaced_output_state() but not in the header
	  file, raising a doc warning.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/925>

2020-11-03 20:19:16 +0800  He Junyan <junyan.he@intel.com>

	* ext/gl/gstgluploadelement.c:
	  gluploadelement: Avoid race condition of inside upload creation.
	  The operations for the inside GstGLUploadElement->upload have race
	  condition. The _transform_caps() will creates this object if it does
	  not exist, while the _stop() and change_state() can destroy this object.
	  The _transform_caps() is called by the gst_base_transform_query(),
	  so it does not hold the stream lock. It may use the upload while the
	  _stop() and change_state() has already destroy that object, and then
	  crash.
	  Fix: #645
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/920>

2020-11-03 16:40:38 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/gl/glprototypes/sync.h:
	  gl: Fix prototype of glGetSynciv()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/917>

2020-10-30 13:52:29 +0100  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* gst/tcp/gsttcpserversink.c:
	  tcpserversink: Don't assume g_socket_get_remote_address succeeds
	  When the client disconnects immediately after connecting, the remote
	  address is no longer available.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/912>

2020-10-20 12:44:21 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/audio/gstaudiodecoder.c:
	* gst-libs/gst/video/gstvideodecoder.c:
	  audio/videodecoder: Initialize max_errors in instance_init()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/903>

2020-10-09 17:15:37 +0200  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* tests/examples/gl/gtk/meson.build:
	  examples/gl/gtk: Add missing dependency on gstgl
	  Occasionally, a clean build would fail like this:
	  In file included from ../subprojects/gst-plugins-base/tests/examples/gl/gtk/gstgtk.c:24:
	  ../subprojects/gst-plugins-base/gst-libs/gst/gl/gl.h:25:10: fatal error: gst/gl/gl-enumtypes.h: No such file or directory
	  25 | #include <gst/gl/gl-enumtypes.h>
	  |          ^~~~~~~~~~~~~~~~~~~~~~~
	  Add the missing dependency so that the headers are generated beforehand.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/906>

2020-10-28 01:19:37 +0100  Mathieu Duponchelle <mathieu@centricular.com>

	* gst-libs/gst/video/gstvideoaggregator.c:
	  videoaggregator: document and fix locking in convert pad
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/904>

2020-10-20 11:51:08 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/audio/gstaudiodecoder.c:
	* gst-libs/gst/video/gstvideodecoder.c:
	  audio/videodecoder: Don't reset max-errors in reset()
	  Otherwise setting the property on the elements has no effect at all
	  because it's immediately reset during startup.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/902>

2020-10-27 12:34:07 +0000  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development

=== release 1.18.1 ===

2020-10-26 11:10:30 +0000  Tim-Philipp Müller <tim@centricular.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* gst-plugins-base.doap:
	* meson.build:
	  Release 1.18.1

2020-10-21 14:55:40 -0500  Zebediah Figura <z.figura12@gmail.com>

	* ext/theora/gsttheoradec.c:
	  theoradec: Set telemetry options only if they are nonzero
	  Setting telemetry options, even to zero, causes libtheora to enable an expensive code path. For large enough videos (e.g. 1920x1080) this can increase the time to decode each frame by 30-40 ms, which can be enough to cause noticeable stutter.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/892>

2020-10-21 11:42:54 +0200  Michael Tretter <m.tretter@pengutronix.de>

	* gst-libs/gst/gl/gstglslstage.c:
	  glslstage: delete shader on finalize of stage
	  GLSLstage creates the glShader using glCreateShader, but never calls
	  glDeleteShader if the glShader is not used anymore. This forces the GL
	  library to keep the compiled shader around, because it might be used in
	  the future. Therefore, the glShader is leaked whenever a GLSLStage is
	  destroyed.
	  Fix the leak by deleting the glShader when finishing the GLSLStage.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/891>

2020-10-22 19:16:42 +0900  Seungha Yang <seungha@centricular.com>

	* gst/playback/gsturisourcebin.c:
	  urisourcebin: Fix crash caused by use after free
	  OutputSlotInfo doesn't hold ref of queue, so gst_bin_remove()
	  will free the queue memory.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/890>

2020-10-13 03:34:07 +0900  Seungha Yang <seungha@centricular.com>

	* tests/examples/decodebin_next/meson.build:
	* tests/examples/decodebin_next/uridecodebin3-select-all.c:
	  examples: Add an uridecodebin3 example
	  Demonstrate a way to select multiple streams
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/889>

2020-10-19 20:03:40 +0900  Seungha Yang <seungha@centricular.com>

	* gst/playback/gstdecodebin3.c:
	* gst/playback/gsturidecodebin3.c:
	  decodebin3: Store stream-start event on output pad before exposing it
	  It's required for users to be able to figure out associated GstStream
	  object with a pad on pad-added callback.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/889>

2020-10-17 12:35:16 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/app/gstappsink.c:
	* gst-libs/gst/app/gstappsrc.c:
	  Add some missing nullable annotations
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/878>

2020-10-17 10:42:49 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/typefind/gsttypefindfunctions.c:
	  typefind/xdgmime: Validate mimetypes to be valid GstStructure names before using them
	  On macOS, for example, "text/*" can be returned as mimetype for
	  plaintext files but we don't allow '*' in structure names and this would
	  cause critical warnings.
	  It's a valid mimetype but not a valid structure name.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/616
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/877>

2020-10-13 17:57:53 +0900  Seungha Yang <seungha@centricular.com>

	* gst/playback/gsturidecodebin3.c:
