+=== release 1.21.2 ===
+
+2022-11-07 23:53:59 +0000 Tim-Philipp Müller <tim@centricular.com>
+
+ * NEWS:
+ * RELEASE:
+ * docs/gst_plugins_cache.json:
+ * gst-plugins-good.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
+
+2020-09-02 10:49:40 +0100 Justin Chadwell <me@jedevc.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: use unsigned int types to store result of QT_UINT32
+ In a few cases throughout qtdemux, the results of QT_UINT32 were being
+ stored in a signed integer, which could cause subtle bugs in the case of
+ an integer overflow, even allowing the the result to equal a negative
+ number!
+ This patch prevents this by simply storing the results of this function
+ call properly in an unsigned integer type. Additionally, we fix up the
+ length checking with stsd parsing to prevent cases of child atoms
+ exceeding their parent atom sizes.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3344>
+
+2022-11-04 17:48:01 +0000 Tim-Philipp Müller <tim@centricular.com>
+
+ * ext/qt/gstqtglutility.cc:
+ qt: initialize GError properly in gst_qt_get_gl_wrapcontext()
+ Spotted by Claus Stovgaard.
+ Fixes #1545
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3327>
+
+2022-11-04 11:10:52 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/isomp4/gstqtmux.c:
+ qtmux: Add durations to raw audio buffers from the raw audio adapter in prefill mode
+ This ensures that a duration can also be calculated and stored for the
+ last buffer at EOS.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3321>
+
+2022-11-04 10:49:31 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/isomp4/gstqtmux.c:
+ qtmux: Release object lock before posting an error message
+ GST_ELEMENT_ERROR() also takes the object lock and this would then
+ deadlock.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3321>
+
+2022-11-03 14:08:57 +0100 Edward Hervey <edward@centricular.com>
+
+ * gst/multifile/gstimagesequencesrc.c:
+ imagesequencesrc; Fix leaks
+ * The path was leaked
+ * The custom buffer was never freed
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3319>
+
+2022-11-03 14:08:02 +0100 Edward Hervey <edward@centricular.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Fix cenc-related leaks
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3319>
+
+2022-11-03 14:06:58 +0100 Edward Hervey <edward@centricular.com>
+
+ * gst/deinterlace/gstdeinterlace.c:
+ deinterlace: Don't leak metas
+ There is no correlation between the frame being NULL and the metas not being
+ present.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3319>
+
+2022-10-31 16:08:23 +0100 Edward Hervey <edward@centricular.com>
+
+ * ext/adaptivedemux2/gstadaptivedemux-period.c:
+ * ext/adaptivedemux2/gstadaptivedemux.c:
+ adaptivedemux2: Fix collection leaks
+ * The collection on the period was never unreffed
+ * The collection in the message handler was never unreffed
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3319>
+
+2022-11-05 03:23:43 +1100 Jan Schmidt <jan@centricular.com>
+
+ * ext/adaptivedemux2/mss/gstmssdemux.c:
+ mssdemux2: Update for adaptivedemux2 refactoring
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3314>
+
+2022-11-03 01:48:08 +1100 Jan Schmidt <jan@centricular.com>
+
+ * ext/adaptivedemux2/dash/gstdashdemux.c:
+ * ext/adaptivedemux2/gstadaptivedemux-private.h:
+ * ext/adaptivedemux2/gstadaptivedemux-stream.c:
+ * ext/adaptivedemux2/gstadaptivedemux-stream.h:
+ * ext/adaptivedemux2/gstadaptivedemux.c:
+ * ext/adaptivedemux2/gstadaptivedemux.h:
+ * ext/adaptivedemux2/hls/gsthlsdemux.c:
+ adaptivedemux2: Move stream_seek() to the Stream class
+ Move the last stream specific vfunc from the demux
+ class to the stream class.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3314>
+
+2022-08-21 04:31:53 +1000 Jan Schmidt <jan@centricular.com>
+
+ * ext/adaptivedemux2/dash/gstdashdemux.c:
+ * ext/adaptivedemux2/gstadaptivedemux-private.h:
+ * ext/adaptivedemux2/gstadaptivedemux-stream.c:
+ * ext/adaptivedemux2/gstadaptivedemux-stream.h:
+ * ext/adaptivedemux2/gstadaptivedemux-types.h:
+ * ext/adaptivedemux2/gstadaptivedemux.c:
+ * ext/adaptivedemux2/gstadaptivedemux.h:
+ * ext/adaptivedemux2/hls/gsthlsdemux.c:
+ adaptivedemux2: Refactor stream methods into the stream
+ Unlike the legacy elements, GstAdaptiveDemuxStream is a GObject now,
+ so a bunch of things that were actually stream methods on the
+ parent demux object can directly become stream methods now.
+ Move the stream class out to a header of its own.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3314>
+
+2022-06-07 14:36:24 +1000 Jan Schmidt <jan@centricular.com>
+
+ * ext/adaptivedemux2/hls/m3u8.c:
+ * ext/adaptivedemux2/hls/m3u8.h:
+ hlsdemux2/m3u8: Implement EXT-X-GAP parsing
+ Read the EXT-X-GAP tag and set is_gap on the segment.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3314>
+
+2022-06-07 14:13:39 +1000 Jan Schmidt <jan@centricular.com>
+
+ * ext/adaptivedemux2/hls/m3u8.c:
+ hlsdemux2/m3u8: Refactor parsing for readability
+ Small readability improvements in the parsing code
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3314>
+
+2022-10-14 06:21:41 +1100 Jan Schmidt <jan@centricular.com>
+
+ * ext/adaptivedemux2/downloadrequest.c:
+ * ext/adaptivedemux2/downloadrequest.h:
+ adaptivedemux2/downloadhelper: Remove return val for download_request_add_buffer()
+ The function can't actually fail, and the only caller
+ was ignoring the result anyway, so remove the return value.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3314>
+
+2022-10-14 06:20:06 +1100 Jan Schmidt <jan@centricular.com>
+
+ * ext/adaptivedemux2/downloadhelper.c:
+ adaptivedemux2/downloadhelper: Add debug output of response headers
+ Dump the HTTP response headers at TRACE level
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3314>
+
+2022-10-14 06:19:11 +1100 Jan Schmidt <jan@centricular.com>
+
+ * ext/adaptivedemux2/downloadhelper.c:
+ adaptivedemux2/downloadhelper: Don't mark transfer as complete/error if cancelled.
+ If the state of the download request was reset to UNSENT,
+ it was cancelled. Don't update the state to COMPLETE or ERRORED
+ in on_read_ready().
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3314>
+
+2022-10-14 06:17:00 +1100 Jan Schmidt <jan@centricular.com>
+
+ * ext/adaptivedemux2/downloadhelper.c:
+ adaptivedemux2/downloadhelper: Ignore spurious read failure
+ Sometimes g_input_stream_read_all_finish() can return
+ 0 bytes, but still succeed (return TRUE) and have more
+ data available later. Only finish the transfer
+ if it returns 0 bytes *and* FALSE with no error.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3314>
+
+2022-10-14 06:15:45 +1100 Jan Schmidt <jan@centricular.com>
+
+ * ext/adaptivedemux2/downloadhelper.c:
+ * ext/adaptivedemux2/downloadrequest.c:
+ * ext/adaptivedemux2/downloadrequest.h:
+ adaptivedemux2/downloadhelper: Fix function name
+ Fix a typo in the name of function download_request_despatch_progress()
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3314>
+
+2022-10-12 02:14:32 +1100 Jan Schmidt <jan@centricular.com>
+
+ * ext/adaptivedemux2/gstadaptivedemux-private.h:
+ * ext/adaptivedemux2/gstadaptivedemux.c:
+ adaptivedemux2: Remove scheduler_lock mutex
+ Remove the old unused scheduler_lock
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3314>
+
+2022-10-11 03:20:11 +1100 Jan Schmidt <jan@centricular.com>
+
+ * ext/adaptivedemux2/gstadaptivedemux.c:
+ adaptivedemux2: Hold tracks lock accessing input_period
+ The input_period is protected by the TRACKS_LOCK,
+ so make sure to hold that when accessing it.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3314>
+
+2022-08-16 23:01:46 +1000 Jan Schmidt <jan@centricular.com>
+
+ * ext/adaptivedemux2/gstadaptivedemux-stream.c:
+ * ext/adaptivedemux2/gstadaptivedemux.h:
+ adaptivedemux2: Add state checks and clean up obsolete variables
+ The cancelled flag was only set in the stream finalize()
+ method, after all activity on the stream has stopped anyway.
+ Replace uses of cancelled with checks on the stream state.
+ Remove the replaced flag, which was checked but never set
+ to TRUE anywhere any more.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3314>
+
+2022-10-30 20:28:25 +0900 Seungha Yang <seungha@centricular.com>
+
+ * docs/gst_plugins_cache.json:
+ * ext/vpx/gstvp9dec.c:
+ * ext/vpx/gstvp9enc.c:
+ * ext/vpx/gstvpxenc.c:
+ vpx: Complete high bitdepth vp9 en/decoding support
+ Adding 12bits variant formats to en/decoder, and high bitdepth
+ 4:4:4 (except for GBR) encoding support
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3298>
+
+2022-10-30 20:03:10 +0900 Seungha Yang <seungha@centricular.com>
+
+ * ext/vpx/gstvp9dec.c:
+ * ext/vpx/gstvp9enc.c:
+ * ext/vpx/gstvpxcompat.h:
+ * ext/vpx/gstvpxdec.h:
+ * ext/vpx/gstvpxenc.h:
+ vpx: Define formats for compatibility
+ ifdef for enum values never work. Instead, define new enum type
+ and use it
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3298>
+
+2022-10-27 23:57:58 +1100 Jan Schmidt <jan@centricular.com>
+
+ * ext/adaptivedemux2/hls/m3u8.c:
+ hlsdemux2: m3u8: Use PDT to offset stream time when aligning playlist
+ When matching segments across playlists with Program-Date-Times,
+ use the difference in segment PDTs to adjust the stream time
+ that's being transferred. This can fix cases where the
+ segment boundaries don't align across different streams
+ and the first download gets thrown away once the PTS
+ is seen and found not to match.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3309>
+
+2022-11-01 02:17:46 +1100 Jan Schmidt <jan@centricular.com>
+
+ * ext/adaptivedemux2/hls/gsthlsdemux.c:
+ * ext/adaptivedemux2/hls/gsthlsdemux.h:
+ hlsdemux2: Download new header when it changes
+ Check whether the init file / MAP data for a segment
+ is different to the current data and trigger an
+ update if so. Previously, the header would only
+ be checked in HLS after switching bitrate or
+ after a seek / first download.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3307>
+
+2022-11-01 01:41:35 +1100 Jan Schmidt <jan@centricular.com>
+
+ * ext/adaptivedemux2/hls/m3u8.c:
+ * ext/adaptivedemux2/hls/m3u8.h:
+ m3u8: Expose GstM3U8InitFile methods
+ Exposure ref/unref methods for the GstM3U8InitFile type,
+ and add a gst_m3u8_init_file_equal() comparison method.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3307>
+
+2022-10-21 17:24:41 +0200 Edward Hervey <edward@centricular.com>
+
+ * docs/gst_plugins_cache.json:
+ * ext/adaptivedemux2/gstadaptivedemux-stream.c:
+ * ext/adaptivedemux2/gstadaptivedemux.c:
+ * ext/adaptivedemux2/gstadaptivedemux.h:
+ * ext/adaptivedemux2/hls/gsthlsdemux.c:
+ * ext/adaptivedemux2/hls/m3u8.c:
+ * ext/adaptivedemux2/hls/m3u8.h:
+ adaptivedemux2: Improve minimum buffering threshold
+ Previously the minimum buffering threshold was hardcoded to a specific
+ value (10s). This is suboptimal this an actual value will depend on the actual
+ stream being played.
+ This commit sets the low watermark threshold in time to 0, which is an automatic
+ mode. Subclasses can provide a stream `recommended_buffering_threshold` when
+ update_stream_info() is called.
+ Currently implemented for HLS, where we recommended 1.5 average segment
+ duration. This will result in buffering being at 100% when the 2nd segment has
+ been downloaded (minus a bit already being consumed downstream)
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3240>
+
+2022-10-28 18:57:44 +0530 Sanchayan Maity <sanchayan@asymptotic.io>
+
+ * gst/wavparse/gstwavparse.c:
+ wavparse: Speed up type finding for DTS
+ In order to figure out if the "raw" audio contained within the wav
+ container is actually DTS, right now we call the typefinder helper
+ which runs all typefinders.
+ Speed up this type finding process by specifying the extension.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3294>
+
+2022-10-25 13:30:15 +1100 Matthew Waters <matthew@centricular.com>
+
+ * docs/gst_plugins_cache.json:
+ * gst/isomp4/gstqtmuxmap.c:
+ mp4mux: enable muxing VP9 streams
+ As specified in https://www.webmproject.org/vp9/mp4/
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3260>
+
+2022-10-25 13:28:26 +1100 Matthew Waters <matthew@centricular.com>
+
+ * docs/gst_plugins_cache.json:
+ * gst/isomp4/atoms.c:
+ * gst/isomp4/atoms.h:
+ * gst/isomp4/gstqtmux.c:
+ * gst/isomp4/gstqtmuxmap.c:
+ qtmux: add support for writing vpcC box for VP9
+ Increases compatibility for VP9 in .mov in at least VLC.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3260>
+
+2022-10-04 18:21:15 -0300 Thibault Saunier <tsaunier@igalia.com>
+
+ * ext/adaptivedemux2/dash/gstdashdemux.c:
+ * ext/adaptivedemux2/gstadaptivedemux.c:
+ dashdemux2: Fix the way we determine current_position after seeks
+ Without that the current_position was off after seeks, potentially
+ leading to not properly push a last fragment when a `.stop` time was
+ set.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3159>
+
+2022-09-20 15:32:52 -0300 Thibault Saunier <tsaunier@igalia.com>
+
+ * ext/adaptivedemux2/dash/gstmpdclient.c:
+ dash: Fix computing `repeat_index` when seeking in stream with a start !=0 on the first fragment
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3159>
+
+2022-09-22 11:20:55 -0300 Thibault Saunier <tsaunier@igalia.com>
+
+ * gst/matroska/matroska-demux.c:
+ matroskademux: Let upstream handle seeking/duration query in time if possible
+ So proper response are given for dash streams
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3159>
+
+2022-09-21 15:01:39 -0300 Thibault Saunier <tsaunier@igalia.com>
+
+ * gst/matroska/matroska-demux.c:
+ * gst/matroska/matroska-demux.h:
+ matroskademux: Start support for upstream segments in TIME format
+ So we can use matroskademux for dash webm dash streams.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3159>
+
+2022-01-24 16:49:52 +0100 Jakub Adam <jakub.adam@collabora.com>
+
+ * sys/ximage/gstximagesrc.c:
+ ximagesrc: grab the server while capturing screen image
+ Makes sure screen resolution doesn't change in the middle of the
+ process.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1562>
+
+2021-12-17 14:57:57 +0100 Jakub Adam <jakub.adam@collabora.com>
+
+ * sys/ximage/gstximagesrc.c:
+ * sys/ximage/gstximagesrc.h:
+ ximagesrc: change video resolution when X11 screen gets resized
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1562>
+
+2022-10-23 20:32:35 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * docs/gst_plugins_cache.json:
+ * gst/meson.build:
+ * gst/xingmux/gstxingmux.c:
+ * gst/xingmux/gstxingmux.h:
+ * gst/xingmux/meson.build:
+ * gst/xingmux/plugin.c:
+ * meson_options.txt:
+ * tests/check/elements/xingmux.c:
+ * tests/check/elements/xingmux_testdata.h:
+ * tests/check/meson.build:
+ xingmux: move from gst-plugins-ugly to gst-plugins-good
+ Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/415
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3251>
+
+2022-10-21 16:23:08 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/rtsp/gstrtspsrc.c:
+ rtspsrc: Only EOS on timeout if all streams are timed out/EOS
+ Otherwise a stream that is just temporarily inactive might time out and
+ then can never become active again because the EOS event was sent
+ already.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3238>
+
+2022-10-18 16:51:39 +1100 Matthew Waters <matthew@centricular.com>
+
+ * docs/gst_plugins_cache.json:
+ * gst/rtp/gstrtpulpfecdec.c:
+ * gst/rtp/gstrtpulpfecdec.h:
+ rtpulpfecdec: add property for passthrough
+ Support for enabling and disabling decoding of FEC data decoding on
+ packet loss events and unconditional seqnum rewriting of packets.
+ See
+ https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/581
+ for background.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3212>
+
+2022-10-14 01:23:04 +0000 Devin Anderson <danderson@microsoft.com>
+
+ * gst/wavparse/gstwavparse.c:
+ wavparse: Avoid occasional crash due to referencing freed buffer.
+ We've seen occasional crashes in the `wavparse` module associated with
+ referencing a buffer in `gst_wavparse_chain` that's already been freed. The
+ reference is stolen when the buffer is transferred to the adapter with
+ `gst_adapter_push` and, IIUC, assuming the source doesn't hold a reference to
+ the buffer, the buffer could be freed during interaction with the adapter in
+ `gst_wavparse_stream_headers`.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3179>
+
+2022-10-13 11:21:42 -0400 Julian Bouzas <julian.bouzas@collabora.com>
+
+ * docs/gst_plugins_cache.json:
+ riff: Mark jpeg as parsed
+ This is needed so that autoplugging works with avidemux and JPEG decoders that
+ need parsed sink caps (eg rockchip 'mppjpegdec' decoder). It also works fine
+ with 'jpegdec' decoder regardless.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3175>
+
+2022-10-13 00:20:45 +0000 Devin Anderson <danderson@microsoft.com>
+
+ * gst/wavparse/gstwavparse.c:
+ * tests/check/elements/wavparse.c:
+ * tests/files/corruptheadertestsrc.wav:
+ wavparse: Fix crash that occurs in push mode when header chunks are corrupted in certain ways.
+ In the case that a test is provided for, the size of the `fmt ` chunk is
+ changed from 16 bytes to 18 bytes (bytes 17 - 20 below):
+ ```
+ $ hexdump -C corruptheadertestsrc.wav
+ 00000000 52 49 46 46 e4 fd 00 00 57 41 56 45 66 6d 74 20 |RIFF....WAVEfmt |
+ 00000010 12 00 00 00 01 00 01 00 80 3e 00 00 00 7d 00 00 |.........>...}..|
+ 00000020 02 00 10 00 64 61 74 61 |....data|
+ 00000028
+ ```
+ (Note that the original file is much larger. This was the smallest sub-file
+ I could find that would generate the crash.)
+ Note that, while the same issue doesn't cause a crash in pull mode, there's a
+ different issue in that the file is processed successfully as if it was a .wav
+ file with zero samples.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3173>
+
+2022-10-11 15:00:37 +0200 Edward Hervey <edward@centricular.com>
+
+ * sys/oss4/oss4-sink.c:
+ * sys/oss4/oss4-source.c:
+ oss4: Fix debug category initialization
+ Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1456
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3158>
+
+2022-10-08 01:03:13 +0200 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * gst/multifile/gstsplitmuxpartreader.c:
+ splitmuxsrc: don't queue data on unlinked pads
+ Once a pad has returned NOT_LINKED, the part reader shouldn't let its
+ corresponding data queue run full and eventually (after 20 seconds)
+ stall playback.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3145>
+
+2022-10-03 20:28:47 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/rtpmanager/gstrtpsession.c:
+ * gst/rtpmanager/rtpsession.c:
+ * gst/rtpmanager/rtpsession.h:
+ * gst/rtpmanager/rtpsource.c:
+ * gst/rtpmanager/rtpsource.h:
+ rtpsource: Don't do probation for RTX sources
+ Disable probation for RTX sources as packets will arrive very
+ irregularly and waiting for a second packet usually exceeds the deadline
+ of the retransmission.
+ Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/181
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3112>
+
+2022-10-03 19:58:38 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * tests/examples/rtp/client-rtpaux.c:
+ rtp: examples: client-rtpaux: Provide correct caps by payload type and RTX pt map by session
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3112>
+
+2019-01-25 17:04:50 -0500 George Kiagiadakis <george.kiagiadakis@collabora.com>
+
+ * tests/check/elements/rtpsession.c:
+ tests/check/rtpsession: extend test_internal_sources_timeout
+ to verify that rtx SSRCs do not BYE after timeout
+ See https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/360
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3112>
+
+2022-10-03 19:12:55 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/rtpmanager/rtpsession.c:
+ * gst/rtpmanager/rtpsource.c:
+ * gst/rtpmanager/rtpsource.h:
+ rtpsession: Remember the corresponding media SSRC for RTX sources
+ This allows timing out the RTX source and sending BYE for it when the
+ actual media source belonging to it is timed out.
+ This change only applies to sending sources from this session.
+ Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/360
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3112>
+
+2022-10-03 19:20:14 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/rtpmanager/rtpsession.c:
+ * gst/rtpmanager/rtpsource.c:
+ * gst/rtpmanager/rtpsource.h:
+ rtpsource: Rename rtp_source_update_caps to rtp_source_update_send_caps
+ To make it clear that this is only used for sending RTP sources.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3112>
+
+2022-10-03 13:48:36 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/rtpmanager/gstrtpsession.c:
+ rtpsession: Rename gst_rtp_session_sink_setcaps to gst_rtp_session_setcaps_recv_rtp
+ to make it clearer that this is for setting receiver caps and to make it
+ more consistent with gst_rtp_session_setcaps_send_rtp.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3112>
+
+2022-10-06 15:02:22 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/rtsp/gstrtspsrc.c:
+ rtspsrc: Retry SETUP with non-compliant URL resolution on "Bad Request" and "Not found"
+ Various RTSP servers/cameras assume base and control URL to be simply
+ appended instead of being resolved according to the relative URL
+ resolution algorithm as mandated by the RTSP specification.
+ To work around this, try using such a non-compliant control URL if the
+ server didn't like the URL used in the first SETUP request.
+ Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1447
+ Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/922
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3127>
+
+2022-10-04 03:57:31 +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/3115>
+
+=== release 1.21.1 ===
+
+2022-10-04 01:14:01 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * ChangeLog:
+ * NEWS:
+ * RELEASE:
+ * docs/gst_plugins_cache.json:
+ * gst-plugins-good.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-07-27 11:19:50 +0200 Edward Hervey <edward@centricular.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Don't stop task when resetting
+ This is a regression that was introduced in
+ cca2f555d14b5751f7f9d466b66127544dad5138 (yes, 9 years ago).
+ The only place where a demuxer streaming thread should be stopped is when the
+ sinkpad is deactivated from pull mode (i.e. PAUSED->READY).
+ Attempting to stop the task in this function would cause this to happen when a
+ FLUSH_STOP or STREAM_START event is received... which can cause deadlocks.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3109>
+
+2022-09-30 18:57:01 +0200 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * gst/multifile/gstsplitmuxpartreader.c:
+ splitmuxsrc: don't consider unlinked pads when deactivating part
+ If splitmuxsrc exposes multiple pads, but only one is linked, part pads
+ will never see an EOS event. This shouldn't prevent the part from being
+ eventually deactivated.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3099>
+
+2022-03-01 16:30:10 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * gst/rtsp/gstrtspsrc.c:
+ rtspsrc: Fix usage of IPv6 connections in SETUP
+ If the SETUP request returns an IPv6 server address in the Transport
+ field, we would generate an incorrect URI, and multiudpsink would fail
+ to initialize:
+ ```
+ rtspsrc gstrtspsrc.c:9780:dump_key_value:<source> key: 'Transport', value: 'RTP/AVP;unicast;source=fe80::dc27:25ff:fe5e:bd13:8080;client_port=62696-62697;server_port=4000-4001'
+ ...
+ rtspsrc gstrtspsrc.c:4595:gst_rtspsrc_stream_configure_udp_sinks:<source> configure RTP UDP sink for fe80::dc27:25ff:fe5e:bd13:8080:4000
+ ...
+ multiudpsink gstmultiudpsink.c:1229:gst_multiudpsink_configure_client:<udpsink0> error: Invalid address family (got 23)
+ ```
+ We can't look at stream->is_ipv6 because we can't rely on the server
+ returning the right value there. In the issue reported about this,
+ server reported itself as `KuP RTSP Server/0.1`, and the SDP was:
+ ```
+ c=IN IP4
+ m=video 54608 RTP/AVP 96
+ a=rtpmap:96 H264/90000
+ ```
+ So we need to parse the string value and figure out the family
+ ourselves.
+ Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1058
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1819>
+
+2022-09-27 13:56:54 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: guard against timestamp calculation overflow in gap event loop
+ Could possibly cause an endless loop.
+ Fixes #1400.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3084>
+
+2022-09-27 00:08:41 +1000 Jan Schmidt <jan@centricular.com>
+
+ * tests/check/elements/dash_mpd.c:
+ dashdemux2: fix mpd unit test expectations
+ Update unit test for some mpd cases that were reporting
+ timestamps including the period start time, while
+ dashdemux2 expects that it needs to add the period
+ start time itself.
+ Fix the tests to not expect the period start time
+ to be included.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3025>
+
+2022-08-23 23:12:44 +0900 Junsoo Park <junsoo81.park@lge.com>
+
+ * ext/adaptivedemux2/dash/gstmpdclient.c:
+ dashdemux2: Set timestamp relative to period start
+ These values will be referred to as timestamp relative to period start
+ so need to subtract period start time from the values.
+ Fixes a problem with determining the start position when playing Live content
+ with SegmentTimeline, presentationTimeOffset and a non-0 period start time.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3025>
+
+2022-09-22 19:02:10 +0200 Jakub Adam <jakub.adam@collabora.com>
+
+ * ext/vpx/gstvp9dec.c:
+ * ext/vpx/gstvp9enc.c:
+ vp9: check if libvpx supports high bit depth
+ Detect at runtime if libvpx is compiled with --enable-vp9-highbitdepth
+ and enable 10bit video formats in element caps accordingly.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3067>
+
+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-09-21 00:26:38 +0900 Seungha Yang <seungha@centricular.com>
+
+ * ext/adaptivedemux2/gstadaptivedemuxutils.c:
+ adaptivedemux2: Always wake up loop thread on unpause
+ Otherwise loop thread will sleep forever because
+ GstAdaptiveDemuxLoop.paused flag update is not signalled
+ when loop was marked as stopped already from other thread.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3057>
+
+2022-09-16 02:01:58 +1000 Jan Schmidt <jan@centricular.com>
+
+ * ext/adaptivedemux2/gstadaptivedemux-period.c:
+ * ext/adaptivedemux2/gstadaptivedemux-private.h:
+ * ext/adaptivedemux2/gstadaptivedemux-stream.c:
+ * ext/adaptivedemux2/gstadaptivedemux-track.c:
+ * ext/adaptivedemux2/gstadaptivedemux.c:
+ * ext/adaptivedemux2/gstadaptivedemux.h:
+ adaptivedemux2: Rework input download wakeups
+ Change the way streams are woken up to download more data.
+ Instead of checking the level on tracks that are being
+ output as data is dequeued, calculate a 'wakeup time'
+ at which it should download more data, and wake up
+ the stream when the global output position crosses
+ that threshold.
+ For efficiency, compute the earliest wakeup time
+ for all streams and store it on the period, so the
+ output loop can quickly check only a single value
+ to decide if something needs waking up.
+ Does the same buffering as the previous method,
+ but ensures that as we approach the end of
+ one period, the next period continues incrementally
+ downloading data so that it is fully buffered when
+ the period starts.
+ Fixes issues with multi-period VOD content where
+ download of the second period resumes only after
+ the first period is completely drained.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3055>
+
+2022-09-15 09:04:10 +0200 Edward Hervey <edward@centricular.com>
+
+ * ext/adaptivedemux2/hls/gsthlsdemux.c:
+ hlsdemux2: Handle negative time mappings
+ Some servers can return playlists with "old" media playlists and different
+ Discont Sequence.
+ In those cases, the segment stream times would be negative when creating a new
+ time mapping. In order to properly handle such scenarios, shift the values to
+ stored accordingly to end up with non-negative reference stream time.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3054>
+
+2022-09-19 20:48:01 +0300 Mart Raudsepp <mart@leio.tech>
+
+ * ext/shout2/meson.build:
+ shout: fix minimum requirement to libshout >= 2.4.3
+ commit e64c6f0b93ced added usage of the SHOUT_USAGE_UNKNOWN symbol, but this
+ became available in the Icecast-libshout 2.4.3 release, not 2.4.2
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3048>
+
+2022-08-31 11:13:06 +0800 Elliot Chen <elliot.chen@nxp.com>
+
+ * sys/v4l2/gstv4l2videodec.c:
+ v4l2videodec: add cap negotiation fail check in the capture configuration change
+ The capture configuration change may cause negotiation fail.
+ Need to check it to avoid enter the endless loop.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2960>
+
+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>
+
+2022-09-15 12:14:56 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * tests/check/meson.build:
+ tests: add a few more orc tests
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3029>
+
+2022-09-14 10:15:41 +0200 Edward Hervey <edward@centricular.com>
+
+ * ext/adaptivedemux2/hls/m3u8.c:
+ hlsdemux2: Fix crash on live playlist with single entry
+ If there is a single entry, we would end up computing a minimum distance of 0,
+ and would therefore read entries from after the segment array
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3024>
+
+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-13 00:56:53 +1000 Jan Schmidt <jan@centricular.com>
+
+ * ext/adaptivedemux2/gstadaptivedemux.c:
+ adaptivedemux2: Always check bitrate in live
+ When advancing fragment in live, it's normal to return
+ GST_FLOW_EOS when playing at the live edge of the available
+ fragments. In that case, we still want to adjust bitrate
+ dynamically.
+ Fixes issue with dashdemux2 where the current bitrate of
+ each adaptation set is changed to the lowest one when
+ updating the mpd for a live stream.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3020>
+
+2022-09-12 14:18:47 -0400 Matt Crane <matt@standard.ai>
+
+ * gst/rtpmanager/gstrtpjitterbuffer.c:
+ rtpjitterbuffer: Fix calculation of reference timestamp metadata
+ Add support for RTCP SRs that contain RTP timestamps later than the
+ current timestamps in the RTP stream packet buffers.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3019>
+
+2022-09-08 17:06:26 +0000 Filip Hanes <filip@hanes.tech>
+
+ * docs/gst_plugins_cache.json:
+ * ext/libpng/gstpngenc.c:
+ pngenc: lower minimum width and height to 1x1
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3003>
+
+2022-08-30 11:45:05 +0200 Edward Hervey <edward@centricular.com>
+
+ * ext/adaptivedemux2/dash/gstxmlhelper.c:
+ * tests/check/elements/dash_mpd.c:
+ dashdemux2: Remove bogus limitation checks for duration fields
+ Just like for the seconds field, there are no limitations on the hours and
+ minutes fields. The specification for xml schema duration fields doesn't forbid
+ specifying durations with only (huge) minutes or hours values.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2951>
+
+2022-08-21 03:37:40 +1000 Jan Schmidt <jan@centricular.com>
+
+ * ext/adaptivedemux2/dash/gstdashdemux.c:
+ * ext/adaptivedemux2/dash/gstdashdemux.h:
+ * ext/adaptivedemux2/dash/gstmpdclient.c:
+ * ext/adaptivedemux2/dash/gstmpdclient.h:
+ dashdemux2: Preserve current representation on live manifest updates
+ When updating a manifest during live playback, preserve the current
+ representation for each stream.
+ During update_fragment_info, if the current representation changed
+ because it couldn't be matched, trigger a caps change and new
+ header download.
+ This reverts commit e0e1db212fd0df2239583b9099fc4361adeded05
+ and reapplies "dashdemux: Fix issue when manifest update sets slow start
+ without passing necessary header & caps changes downstream" with
+ changes.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2920>
+
+2022-09-02 17:21:43 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * tests/check/elements/rtpjitterbuffer.c:
+ rtpjitterbuffer: Add test for crash caused by removing timers twice
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2973>
+
+2022-09-02 12:20:58 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/rtpmanager/gstrtpjitterbuffer.c:
+ rtpjitterbuffer: Make it more explicit that update_rtx_timers() takes ownership of the passed in timer
+ It is not valid anymore afterwards and must not be used, otherwise an
+ already freed pointer might be used.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2973>
+
+2022-09-02 12:20:30 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/rtpmanager/gstrtpjitterbuffer.c:
+ rtpjitterbuffer: Don't shadow variable
+ While this didn't cause any problems in this context it is simply
+ confusing.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2973>
+
+2022-09-02 12:19:26 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/rtpmanager/gstrtpjitterbuffer.c:
+ rtpjitterbuffer: Change RTX timer availability checks to assertions
+ It's impossible to end up in the corresponding code without a timer for
+ RTX packets because otherwise it would be an unsolicited RTX packet and
+ we would've already returned early.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2973>
+
+2022-09-02 12:17:39 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/rtpmanager/gstrtpjitterbuffer.c:
+ rtpjitterbuffer: Only unschedule timers for late packets if they're not RTX packets and only once
+ Timers for RTX packets are dealt with later in update_rtx_timers(), and
+ timers for non-RTX packets would potentially also be unscheduled a
+ second time from there so avoid that.
+ Also don't shadow the timer variable from the outer scope but instead
+ make use of it directly.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2973>
+
+2022-07-05 16:15:19 +0200 Patricia Muscalu <patricia@axis.com>
+
+ * gst/rtp/gstrtph265pay.c:
+ * gst/rtp/gstrtph265pay.h:
+ * tests/check/elements/rtph265.c:
+ rtph265: keep delta unit flag
+ Without this patch all buffers that pass the payloader
+ are marked as non-delta-unit buffers.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2969>
+
+2022-09-01 15:11:31 -0400 Thibault Saunier <tsaunier@igalia.com>
+
+ * ext/aalib/meson.build:
+ * ext/cairo/meson.build:
+ * ext/dv/meson.build:
+ * ext/flac/meson.build:
+ * ext/gdk_pixbuf/meson.build:
+ * ext/gtk/meson.build:
+ * ext/jack/meson.build:
+ * ext/jpeg/meson.build:
+ * ext/lame/meson.build:
+ * ext/libpng/meson.build:
+ * ext/mpg123/meson.build:
+ * ext/pulse/meson.build:
+ * ext/qt/meson.build:
+ * ext/shout2/meson.build:
+ * ext/speex/meson.build:
+ * ext/taglib/meson.build:
+ * ext/twolame/meson.build:
+ * ext/vpx/meson.build:
+ * ext/wavpack/meson.build:
+ * gst/alpha/meson.build:
+ * gst/apetag/meson.build:
+ * gst/audiofx/meson.build:
+ * gst/audioparsers/meson.build:
+ * gst/auparse/meson.build:
+ * gst/autodetect/meson.build:
+ * gst/avi/meson.build:
+ * gst/cutter/meson.build:
+ * gst/debugutils/meson.build:
+ * gst/deinterlace/meson.build:
+ * gst/dtmf/meson.build:
+ * gst/effectv/meson.build:
+ * gst/equalizer/meson.build:
+ * gst/flv/meson.build:
+ * gst/flx/meson.build:
+ * gst/goom/meson.build:
+ * gst/goom2k1/meson.build:
+ * gst/icydemux/meson.build:
+ * gst/id3demux/meson.build:
+ * gst/imagefreeze/meson.build:
+ * gst/interleave/meson.build:
+ * gst/isomp4/meson.build:
+ * gst/law/meson.build:
+ * gst/level/meson.build:
+ * gst/matroska/meson.build:
+ * gst/monoscope/meson.build:
+ * gst/multifile/meson.build:
+ * gst/multipart/meson.build:
+ * gst/replaygain/meson.build:
+ * gst/rtp/meson.build:
+ * gst/rtpmanager/meson.build:
+ * gst/rtsp/meson.build:
+ * gst/shapewipe/meson.build:
+ * gst/smpte/meson.build:
+ * gst/spectrum/meson.build:
+ * gst/udp/meson.build:
+ * gst/videobox/meson.build:
+ * gst/videocrop/meson.build:
+ * gst/videofilter/meson.build:
+ * gst/videomixer/meson.build:
+ * gst/wavenc/meson.build:
+ * gst/wavparse/meson.build:
+ * gst/y4m/meson.build:
+ * meson.build:
+ * sys/directsound/meson.build:
+ * sys/osxaudio/meson.build:
+ * sys/osxvideo/meson.build:
+ * sys/rpicamsrc/meson.build:
+ * sys/v4l2/meson.build:
+ * sys/waveform/meson.build:
+ * sys/ximage/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-08-18 17:08:51 +0300 Raul Tambre <raul@tambre.ee>
+
+ * gst/rtpmanager/gstrtpjitterbuffer.c:
+ * tests/check/elements/rtpjitterbuffer.c:
+ rtpjitterbuffer: remove lost timer for out of order packets
+ When receiving old packets remove the running lost timer if present.
+ This fixes incorrect reporting of a lost packet even if it arrived in time.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2922>
+
+2022-08-26 18:42:44 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/rtp/gstrtpvp8depay.c:
+ rtpvp8depay: If configured to wait for keyframes after packet loss, also do that if incomplete frames are detected
+ This can happen if the data inside the packets is incomplete without the
+ seqnums being discontinuous because of ULPFEC being used.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2947>
+
+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-08-24 17:30:34 +0800 Jianhui Dai <jianhui.j.dai@intel.com>
+
+ * sys/v4l2/gstv4l2allocator.c:
+ v4l2allocator: Fix invalid imported dmabuf fd
+ Fix a typo that set userptr to dmabuf fd. It leads to failure of
+ dmabuf-import io-mode.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2935>
+
+2022-07-22 13:41:17 +0200 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * gst/isomp4/qtdemux.c:
+ playback: add onvif metadata caps to raw caps
+ + remove encoding from x-onvif-metadata caps output by qtdemux
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2889>
+
+2022-08-23 10:28:30 +0000 zhiyuan.liu <zhiyuan.liu@seraphic-corp.com>
+
+ * gst/isomp4/gstisoff.c:
+ isoff: Fix earliest pts field parse issue
+ earliest pts will be covered by first_offset field on version 0 case.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2927>
+
+2022-08-18 16:36:45 +0200 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+ * ext/adaptivedemux2/downloadhelper.c:
+ adaptivedemux2: Fix download helper with libsoup 3.0.x
+ libsoup 3.0.x dispatches using a single source attached when the session
+ is created, so we need to create the session with the same context that
+ our download thread is later using.
+ 2.74 or 3.1 will dispatch a response using the context which sent the
+ request. However, for any context other than the one that created the
+ session, this will also create and destroy sources, so there's still
+ some slight performance benefit.
+ Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1384
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2913>
+
+2022-08-18 09:48:15 +1000 Jan Schmidt <jan@centricular.com>
+
+ * ext/adaptivedemux2/gstadaptivedemux.c:
+ adaptivedemux2: Implement send_event() vfunc
+ Handle select-streams and seek events in an element
+ level send_event() vfunc, so they can be received
+ before any source pads are created.
+ This allows preferred streams to be selected before
+ segment downloading starts.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2912>
+
+2022-08-17 09:11:52 +1000 Jan Schmidt <jan@centricular.com>
+
+ * gst/multifile/gstsplitmuxsrc.c:
+ splitmuxsrc: Stop pad task before cleanup
+ When stopping the element, make sure the pad task
+ is stopped before destroying the part readers.
+ Closes a race where the pad task might access
+ a freed pointer.
+ Also add a guard against this sort of thing
+ by holding a ref to the reader in the pad loop.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2901>
+
+2022-08-12 20:20:43 +1000 Jan Schmidt <jan@centricular.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Avoid crash on reconfiguring.
+ When reconfiguring a stream that never created
+ an output pad, don't access a NULL GstPad pointer.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2869>
+
+2022-08-16 19:01:19 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Set parsed=true on ONVIF Timed Metadata caps
+ Inside MP4 the metadata must be properly parsed into frames and in
+ order.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2897>
+
+2022-08-15 14:30:50 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/gstv4l2bufferpool.c:
+ v4l2bufferpool: Fix debug trace
+ The tracing of the buffer pointer was done on the secondary pointer, which
+ does not match with other traces of the same buffer. This made the trace
+ confusing and less useful.
+ Fixes #1379
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2893>
+
+2022-08-12 21:57:25 +1000 Jan Schmidt <jan@centricular.com>
+
+ * ext/adaptivedemux2/gstadaptivedemux-stream.c:
+ * ext/adaptivedemux2/gstadaptivedemux.c:
+ adaptivedemux2: Fix for period switching in live streams
+ When playing live, it's possible that one stream reaches
+ the end of the available playback window and goes to sleep
+ waiting for a manifest update, and the manifest update
+ introduces a new period. In that case, the sleeping
+ stream needs to wake up and go 'properly' EOS before we
+ can advance the input to the new period.
+ Accordingly, make sure that a stream's last_ret value
+ is not marked as EOS if it's just sleeping waiting for a live
+ manifest update.
+ Also fix the output loop to go back and re-check if it's
+ time to switch to the next period after dequeuing and
+ discarding an EOS event.
+ https://livesim.dashif.org/livesim/periods_20/testpic_2s/Manifest.mpd
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2895>
+
+2022-08-11 09:34:58 +0900 Hosang Lee <hosang10.lee@lge.com>
+
+ * ext/adaptivedemux2/mss/gstmssdemux.c:
+ mssdemux2: Use gsturi structure to form fragment urls
+ Utilize gsturi to form fragment url paths.
+ A token query may contain the string "manifest" and this would lead
+ to improper url creations.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2859>
+
+2022-08-12 13:20:01 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/rtsp/gstrtspsrc.c:
+ rtspsrc: Consider the actual control base URI also in case the connection URI contains a query string
+ That is, get rid of unnecessary and wrong special-casing.
+ This could always use gst_rtsp_url_get_request_uri_with_control() but as
+ we only have the control base URI as string it is easier to just call
+ gst_uri_join_strings().
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2868>
+
+2022-08-11 18:37:18 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/isomp4/fourcc.h:
+ * gst/isomp4/qtdemux.c:
+ * gst/isomp4/qtdemux.h:
+ * gst/isomp4/qtdemux_types.c:
+ qtdemux: Add reference timestamp meta with UTC times based on the ONVIF Export File Format CorrectStartTime box to outgoing buffers
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2525>
+
+2022-08-11 05:17:05 +1000 Jan Schmidt <jan@centricular.com>
+
+ * ext/adaptivedemux2/hls/gsthlsdemux.c:
+ hlsdemux2: Fix reference leak of variant stream
+ When switching back to the previous variant stream
+ in gst_hls_demux_change_playlist(), fix a couple of
+ paths that would leak a reference to the previous
+ variant.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2873>
+
+2022-08-11 05:07:10 +1000 Jan Schmidt <jan@centricular.com>
+
+ * ext/adaptivedemux2/hls/gsthlsdemux.c:
+ hlsdemux2: Don't leak the datetime in time map structs
+ Add a function to clean up GstHLSTimeMap structs
+ and free the ref on the optional associated GDateTime
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2873>
+
+2022-08-11 05:03:10 +1000 Jan Schmidt <jan@centricular.com>
+
+ * ext/adaptivedemux2/hls/gsthlsdemux.c:
+ hlsdemux2: Fix typefind leak and invalid memory access
+ When typefinding aggregates incoming data to a pending
+ typefind buffer and then succeeds in typefinding, it
+ leaks the aggregated buffer, and leaves the caller
+ accessing an unreffed buffer.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2873>
+
+2022-08-11 05:36:15 +1000 Jan Schmidt <jan@centricular.com>
+
+ * ext/adaptivedemux2/hls/m3u8.c:
+ hlsdemux2: m3u8: Fix memory leaks on parsing
+ Fix memory leaks when parsing of an m3u8 file is
+ incomplete, with EXTINF or EXT-X-PROGRAM-DATE-TIME
+ directives, but no segment url.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2873>
+
+2022-08-11 00:59:50 +1000 Jan Schmidt <jan@centricular.com>
+
+ * ext/adaptivedemux2/hls/m3u8.c:
+ hlsdemux2: m3u8: Fix memory leak
+ Clear the GValue holding intermediate GstStructure field
+ data.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2873>
+
+2022-08-11 01:01:07 +1000 Jan Schmidt <jan@centricular.com>
+
+ * ext/adaptivedemux2/gstadaptivedemuxutils.c:
+ adaptivedemux2: Fix uninitialised memory usage in debug
+ Fix printing uninitialised memory by clearing the
+ GstAdaptiveDemuxClock structure when allocating.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2873>
+
+2022-08-12 02:20:40 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * gst/rtpmanager/gstrtpst2022-1-fecenc.c:
+ rtpst2022-1-fecenc: Drain column packets on EOS
+ Otherwise we won't send the protection packets for the last few
+ packets when a stream ends.
+ Also send EOS on the FEC src row pad immediately, and on the FEC src
+ column pad after draining is complete. This makes it so that the FEC
+ src pads on rtpbin behave the same way as the RTCP src pads on rtpbin
+ when EOS is received on the send_rtp_sink pad.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2863>
+
+2022-08-11 08:48:08 +0200 Edward Hervey <edward@centricular.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Don't use invalid values from failed trex parsing
+ If parsing the fragment default values (`trex` atom) failed, don't try to
+ compute a bogus sample_description_id value.
+ Fixes #1369
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2860>
+
+2022-08-09 09:42:23 +0200 Piotr Brzeziński <piotr@centricular.com>
+
+ * docs/gst_plugins_cache.json:
+ * gst/videofilter/gstvideoflip.c:
+ videoflip: Add support for 10/12bit planar formats
+ Implements support for I420, I422 and Y444 in 10/12 bit LE/BE variants.
+ I422 is handled separately from the rest, as it needs to consider
+ the endianness of the current format during most transforms.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2788>
+
+2022-08-04 18:09:52 +0800 Haihua Hu <jared.hu@nxp.com>
+
+ * gst/alpha/gstalpha.c:
+ alpha: fix stride issue when out buffer has padding on right
+ if outbuf has padding on right, need jump to next line use stride,
+ otherwise downstream element will show a wrong picture when use the
+ same stride
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2842>
+
+2022-08-09 00:12:58 +1000 Jan Schmidt <jan@centricular.com>
+
+ * ext/adaptivedemux2/hls/gsthlsdemux.c:
+ hlsdemux2: Requeue header buffer when restarting fragment
+ When returning GST_ADAPTIVE_DEMUX_FLOW_RESTART_FRAGMENT
+ for the first segment data, we might need to requeue the
+ header.
+ This was leading to occasional prerolling stalls on
+ HLS live streams with renditions.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2849>
+
+2022-08-07 20:56:49 +1000 Jan Schmidt <jan@centricular.com>
+
+ * ext/adaptivedemux2/hls/gsthlsdemux.c:
+ hlsdemux2: Fix buffer leak when resynching
+ Unref the buffer in gst_hls_demux_handle_buffer() when
+ returning GST_ADAPTIVE_DEMUX_FLOW_LOST_SYNC
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2849>
+
+2022-08-04 23:54:27 +1000 Jan Schmidt <jan@centricular.com>
+
+ * ext/adaptivedemux2/gstadaptivedemuxutils.c:
+ adaptivedemux2: Fix a small race on shutdown
+ Make sure gst_adaptive_demux_loop_cancel_call()
+ never tries to operate on an invalidated main context. Make
+ sure to clear the main context pointer while holding the lock,
+ and to check it in gst_adaptive_demux_loop_cancel_call()
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2847>
+
+2022-07-22 03:32:39 +1000 Jan Schmidt <jan@centricular.com>
+
+ * ext/adaptivedemux2/gstadaptivedemux-stream.c:
+ adaptivedemux2-stream: Silence a compiler warning
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2839>
+
+2022-07-28 04:17:26 +1000 Jan Schmidt <jan@centricular.com>
+
+ * ext/adaptivedemux2/gstadaptivedemux-private.h:
+ adaptivedemux2: Move internal FLOW_SWITCH return value.
+ Move the internal-only FLOW_SWITCH custom return value
+ to GST_FLOW_CUSTOM_SUCCESS+2 to avoid collision with
+ GST_ADAPTIVE_DEMUX_FLOW_LOST_SYNC
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2839>
+
+2022-07-20 10:57:41 +0200 Edward Hervey <edward@centricular.com>
+
+ * ext/adaptivedemux2/gstadaptivedemux.h:
+ adaptivedemux2: Modify custom sync loss flow return
+ Make it a custom sucess and not an error
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2839>
+
+2022-07-12 10:44:51 +0200 Edward Hervey <edward@centricular.com>
+
+ * ext/adaptivedemux2/hls/m3u8.c:
+ hlsdemux2: Always check DSN if required
+ We don't want to consider the candidate as being before the playlist if the DSN
+ don't match
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2839>
+
+2022-07-11 10:31:42 +0200 Edward Hervey <edward@centricular.com>
+
+ * ext/adaptivedemux2/gstadaptivedemux-stream.c:
+ * ext/adaptivedemux2/hls/gsthlsdemux.c:
+ adaptivedemux2/hlsdemux2: Handle loss of sync when dowloading.
+ Media playlist updates and fragment downloads happen in an interleaved
+ fashion. When a media playlist update fails *while* a segment is being
+ downloaded, this means we lost synchronization.
+ Properly propagate and handle this
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2839>
+
+2022-07-08 10:48:05 +0200 Edward Hervey <edward@centricular.com>
+
+ * ext/adaptivedemux2/hls/gsthlsdemux.c:
+ hlsdemux2: Fix initial playlist setup.
+ There is now only a single case where we setup the initial playlist to 0, which
+ is for the very first variant stream.
+ Rendition streams will have the initial playlist "synchronized" against the
+ variant stream media playlist.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2839>
+
+2022-07-08 10:44:51 +0200 Edward Hervey <edward@centricular.com>
+
+ * ext/adaptivedemux2/hls/gsthlsdemux.c:
+ hlsdemux2: Handle loss of synchronization in live
+ Loss of synchronization happens when the updated media playlist has no
+ relationship to the previous ones. This could happen because of network issues,
+ server issues, etc...
+ When this happens, we take no chance and "reset" ourselves so that we can "seek
+ back to live" against the new updated playlists.
+ Since this happens at the "media playlist update" level, make sure the custom
+ flow return is propagated up.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2839>
+
+2022-07-08 10:40:33 +0200 Edward Hervey <edward@centricular.com>
+
+ * ext/adaptivedemux2/gstadaptivedemux-stream.c:
+ * ext/adaptivedemux2/gstadaptivedemux.c:
+ adaptivedemux2: Handle synchronously to lost sync
+ We are already in the main scheduler thread, therefore we can do the "seek back
+ to live" directly. This also avoids other pending actions to take place.
+ Also handle the loss of sync when doing manifest updates.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2839>
+
+2022-07-06 11:44:57 +0200 Edward Hervey <edward@centricular.com>
+
+ * ext/adaptivedemux2/hls/gsthlsdemux.c:
+ hlsdemux2: Prune time maps when possible
+ Add a new method to prune unused time mappings (i.e. which aren't used by any
+ current media playlist).
+ Do that when doing flushing seeks. Could be used in other places later too.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2839>
+
+2022-06-13 15:26:22 +0200 Edward Hervey <edward@centricular.com>
+
+ * ext/adaptivedemux2/hls/m3u8.c:
+ hlsdemux2: Allow DSN mismatches when re-syncing playlists
+ Some providers provide completely incompatible DSN across bitrates/renditions,
+ but do keep MSN consistent.
+ If we fail to synchronize playlist with DSN, retry without the DSN taken into
+ account.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2839>
+
+2022-07-12 01:58:30 +1000 Jan Schmidt <jan@centricular.com>
+
+ * ext/adaptivedemux2/gstadaptivedemux.c:
+ adaptivedemux2: Fixes for period switching in the output loop
+ Close some race conditions in switching to the next period,
+ by ensuring the tracks are completely drained first and by
+ not outputting EOS events to the output source pad
+ if there is another period pending.
+ Fixes Manifest_MultiPeriod_1080p.mpd some more.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2838>
+
+2022-07-12 01:55:54 +1000 Jan Schmidt <jan@centricular.com>
+
+ * ext/adaptivedemux2/gstadaptivedemux-stream.c:
+ adaptivedemux2: stream: Set period has_next_period flag before EOS
+ Before sending EOS, update the period's has_next_period
+ flag and/or create the next period. This closes a race
+ where the output loop might receive the EOS event
+ and either push it downstream (causing premature EOS),
+ or receive it and try and switch to the next period
+ before that period is completely set up.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2838>
+
+2022-07-12 01:24:31 +1000 Jan Schmidt <jan@centricular.com>
+
+ * ext/adaptivedemux2/gstadaptivedemux.c:
+ * ext/adaptivedemux2/gstadaptivedemux.h:
+ adaptivedemux2: period: Rename 'closed' flag to 'has_next_period'
+ The flag is used to tell the output loop that a
+ next period is present, since the output loop
+ can't call the gst_adaptive_demux_has_next_period()
+ method.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2838>
+
+2022-07-01 02:07:05 +1000 Jan Schmidt <jan@centricular.com>
+
+ * ext/adaptivedemux2/gstadaptivedemux.c:
+ adaptivedemux2: Recheck for a pending track on drain
+ When a track is completely drained and EOS, but
+ there's a pending track on the slot loop again
+ to switch to that track.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2838>
+
+2022-07-01 02:05:36 +1000 Jan Schmidt <jan@centricular.com>
+
+ * ext/adaptivedemux2/gstadaptivedemux-period.c:
+ adaptivedemux2: Check stream selected instead of state
+ When combining stream flows, ignore streams that
+ are not selected, instead of checking whether
+ the stream state has changed yet.
+ Fixes another issue with dashdemux2 where it fails to
+ change to the next period when playing content with
+ several video, audio and text streams, as with
+ Manifest_MultiPeriod_1080p.mpd when seeking to 730
+ just before the end of the first period.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2838>
+
+2022-05-25 18:40:30 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * gst/rtsp/gstrtspsrc.c:
+ rtsp+rtmp: Forward warning added to tls-validation-flags to our users
+ With the 2.72 release, glib-networking developers have decided that
+ TLS certificate validation cannot be implemented correctly by them, so
+ they've deprecated it.
+ In a nutshell: a cert can have several validation errors, but there
+ are no guarantees that the TLS backend will return all those errors,
+ and things are made even more complicated by the fact that the list of
+ errors might refer to certs that are added for backwards-compat and
+ won't actually be used by the TLS library.
+ Our best option is to ignore the deprecation and pass the warning onto
+ users so they can make an appropriate security decision regarding
+ this.
+ We can't deprecate the tls-validation-flags property because it is
+ very useful when connecting to RTSP cameras that will never get
+ updates to fix certificate errors.
+ Relevant upstream merge requests / issues:
+ https://gitlab.gnome.org/GNOME/glib/-/merge_requests/2214
+ https://gitlab.gnome.org/GNOME/glib-networking/-/issues/179
+ https://gitlab.gnome.org/GNOME/glib-networking/-/merge_requests/193
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2494>
+
+2022-07-22 14:51:11 +0200 Mark Nauwelaerts <mnauw@users.sourceforge.net>
+
+ * gst/videobox/gstvideobox.c:
+ videobox: avoid dropping caps fields for passthrough caps transform
+ Fixes potential negotiation failure in case downstream element
+ is a bit picky regarding the fields in question.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2786>
+
+2022-07-27 15:44:09 +0200 Adrian Fiergolski <adrian.fiergolski@fastree3d.com>
+
+ * gst/videofilter/gstvideoflip.c:
+ videoflip: Fix caps negotiation when method is selected
+ The caps negotiation should respect the selected method to the test pipeline below works properly.
+ gst-launch-1.0 videotestsrc ! video/x-raw,width=320,height=600 ! videoflip method=clockwise ! video/x-raw,width=600,height=320 ! fakesink
+ Signed-off-by: Adrian Fiergolski <adrian.fiergolski@fastree3d.com>
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2803>
+
+2022-07-24 23:44:10 -0400 fduncanh <fduncanh@gmail.com>
+
+ * sys/v4l2/gstv4l2object.c:
+ v4l2object.c: add support for Apple's full-range bt709 colorspace variant
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2793>
+
+2022-07-08 18:22:58 +0800 Elliot Chen <elliot.chen@nxp.com>
+
+ * sys/v4l2/gstv4l2bufferpool.c:
+ v4l2: fix the critical log when unreference the buffer with no data
+ In the trick mode, driver may queue a valid buffer follow by an
+ empty buffer which has no valid data to indicate EOS.For the empty
+ buffer whose memory is multi-plane, need to resize it before
+ unreference it.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2731>
+
+2022-07-15 13:22:14 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * ext/qt/qtglrenderer.cc:
+ qt: Fix another instance of Qt/GStreamer both defining `GLsync` differently
+ In file included from ../gstreamer1.0-plugins-good/1.20.3-r0/recipe-sysroot/usr/include/gstreamer-1.0/gst/gl/gstglfuncs.h:87,
+ from ../gst-plugins-good-1.20.3/ext/qt/qtglrenderer.cc:14:
+ ../gstreamer1.0-plugins-good/1.20.3-r0/recipe-sysroot/usr/include/gstreamer-1.0/gst/gl/glprototypes/gstgl_compat.h:40:18: error: conflicting declaration 'typedef void* GLsync'
+ 40 | typedef gpointer GLsync;
+ | ^~~~~~
+ In file included from ../gstreamer1.0-plugins-good/1.20.3-r0/recipe-sysroot/usr/include/QtGui/qopengl.h:127,
+ from ../gstreamer1.0-plugins-good/1.20.3-r0/recipe-sysroot/usr/include/QtQuick/qsggeometry.h:44,
+ from ../gstreamer1.0-plugins-good/1.20.3-r0/recipe-sysroot/usr/include/QtQuick/qsgnode.h:43,
+ from ../gstreamer1.0-plugins-good/1.20.3-r0/recipe-sysroot/usr/include/QtQuick/qsgrendererinterface.h:43,
+ from ../gstreamer1.0-plugins-good/1.20.3-r0/recipe-sysroot/usr/include/QtQuick/qquickwindow.h:44,
+ from ../gstreamer1.0-plugins-good/1.20.3-r0/recipe-sysroot/usr/include/QtQuick/QQuickWindow:1,
+ from ../gst-plugins-good-1.20.3/ext/qt/qtglrenderer.cc:6:
+ ../gstreamer1.0-plugins-good/1.20.3-r0/recipe-sysroot/usr/include/QtGui/qopengles2ext.h:24:26: note: previous declaration as 'typedef struct __GLsync* GLsync'
+ 24 | typedef struct __GLsync *GLsync;
+ | ^~~~~~
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2763>
+
+2022-07-15 06:40:05 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * sys/osxaudio/gstosxaudiodeviceprovider.c:
+ * sys/osxaudio/gstosxcoreaudiohal.c:
+ osxaudio: Fix deprecation in macOS 12.0
+ kAudioObjectPropertyElementMaster has been renamed to
+ kAudioObjectPropertyElementMain
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2761>
+
+2022-07-12 21:19:35 +1000 Jan Schmidt <jan@centricular.com>
+
+ * gst/multifile/gstsplitmuxsink.c:
+ splitmuxsink: Fix memory leak
+ Fix a leak of the buffer info struct when reaching
+ EOS without data on the reference input.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2751>
+
+2022-06-24 13:32:34 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/rtpmanager/rtpjitterbuffer.c:
+ rtpjitterbuffer: Fix calculation of RFC7273 RTP time period start
+ This has to be based directly on the current estimated clock time and
+ has to allow for negative period starts.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2655>
+
+2022-04-14 01:19:51 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst/multifile/gstsplitmuxsink.c:
+ * tests/check/elements/splitmuxsink.c:
+ splitmuxsink: Don't crash on EOS without buffer
+ Fix a case where upstream pushed EOS without buffers.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2174>
+
+2022-06-30 15:15:22 +0000 Thibault Saunier <tsaunier@igalia.com>
+
+ * gst/rtpmanager/gstrtprtxreceive.c:
+ * gst/rtpmanager/gstrtprtxsend.c:
+ * tests/check/elements/rtprtx.c:
+ rtprtx: Fix copying extension headers
+ There was a typo leading to reading memory from the buffer we were
+ writing to.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2696>
+
+2022-05-28 15:04:10 -0400 fduncanh <fduncanh@gmail.com>
+
+ * sys/v4l2/gstv4l2videodec.c:
+ v4l2videodec: replace multiple decoder bug warnings with single one
+ Achieve this by dropping frames after a drain if the driver failed to so.
+ This works around RaspberryPi driver issue [1].
+ [1] https://github.com/raspberrypi/linux/issues/5059#issuecomment-
+ Fixes #1103
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2518>
+
+2022-06-25 19:23:11 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * tests/check/elements/udpsink.c:
+ tests: udpsink: make test work in environments without IPv6
+ Part-fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/939
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2659>
+
+2022-05-28 16:47:42 -0400 fduncanh <fduncanh@gmail.com>
+
+ * sys/v4l2/gstv4l2videodec.c:
+ v4l2videodec: replace multiple decoder bug warnings by a single warning (warning due to incorrectly dropped frames at initial caps adjustment)
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2517>
+
+2022-06-29 00:51:28 +1000 Jan Schmidt <jan@centricular.com>
+
+ * ext/adaptivedemux2/gstadaptivedemux-period.c:
+ adaptivedemux2: Ignore stopped stream flow state
+ When calculating the combined stream flow state
+ for a period, don't consider stopped streams.
+ Fixes switching to the next period in DASH streams
+ with multiple video/audio/subtitle streams.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2684>
+
+2022-06-29 01:25:41 +1000 Jan Schmidt <jan@centricular.com>
+
+ * ext/adaptivedemux2/gstadaptivedemux-stream.c:
+ adaptivedemux2: Clean up stream parsebins on finalize
+ Remove the parsebin for a stream from the overall
+ bin when cleaning up the stream, to avoid
+ keeping around old ones when moving between periods
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2676>
+
+2022-06-24 02:54:22 +1000 Jan Schmidt <jan@centricular.com>
+
+ * ext/adaptivedemux2/gstadaptivedemux.c:
+ * ext/adaptivedemux2/gstadaptivedemuxutils.c:
+ adaptivedemux2: Fix memory leaks and use-after-free
+ Fix various small memory leaks, and an invalid
+ access to GstEvent after giving away the ref
+ via gst_pad_push_event()
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2676>
+
+2022-06-24 02:57:54 +1000 Jan Schmidt <jan@centricular.com>
+
+ * ext/adaptivedemux2/hls/gsthlsdemux-util.c:
+ hlsdemux2: Fix potential segfault
+ Fix a potential segfault if we receive a ISO-FF stream
+ with moof before moov.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2676>
+
+2022-06-24 02:57:03 +1000 Jan Schmidt <jan@centricular.com>
+
+ * ext/adaptivedemux2/hls/gsthlsdemux.c:
+ * ext/adaptivedemux2/hls/m3u8.c:
+ hlsdemux2: Fix memory leaks
+ Clean up various memory leaks
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2676>
+
+2022-06-23 19:24:03 +1000 Jan Schmidt <jan@centricular.com>
+
+ * ext/adaptivedemux2/hls/gsthlsdemux.c:
+ hlsdemux2: Free current_segment on finalize
+ Avoid a memory leak by making sure to release the
+ current segment on exit if non-NULL
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2676>
+
+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-22 03:35:03 +1000 Jan Schmidt <jan@centricular.com>
+
+ * ext/adaptivedemux2/gstadaptivedemux-track.c:
+ adaptivedemux2: track: Fix buffering time calc before output
+ Use the lowest track input time as the output
+ time when calculating track buffering levels
+ before anything has been dequeued.
+ Fixes multi-period DASH not advancing to the
+ next period in some cases.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2650>
+
+2022-06-22 03:34:19 +1000 Jan Schmidt <jan@centricular.com>
+
+ * ext/adaptivedemux2/gstadaptivedemux-period.c:
+ * ext/adaptivedemux2/gstadaptivedemux-track.c:
+ * ext/adaptivedemux2/gstadaptivedemux.c:
+ * ext/adaptivedemux2/gstadaptivedemux.h:
+ adaptivedemux2: track: Add period number to most debug statements
+ Store the period number the track belongs to, and
+ add it in various debug statements
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2650>
+
+2022-06-22 03:30:16 +1000 Jan Schmidt <jan@centricular.com>
+
+ * ext/adaptivedemux2/gstadaptivedemux-stream.c:
+ adaptivedemux2: stream: Don't take TRACKS_LOCK when sending EOS event
+ The stream tracks list can't change while we're
+ iterating it from the scheduling thread,
+ and the event handler immediately takes the
+ tracks lock, causing a deadlock.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2650>
+
+2022-06-08 11:17:09 +0200 Edward Hervey <edward@centricular.com>
+
+ * ext/adaptivedemux2/hls/gsthlsdemux.c:
+ hlsdemux2: Improve media playlist updates
+ * When dealing with rendition streams, we attempt to synchronize the media
+ playlist against the variant stream. This helps with speeding up the correct
+ initial fragment search and avoids issues when streams at activated at a much
+ later time.
+ * Also add checks for variant stream existence before attempting to use them
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2679>
+
+2022-06-08 11:16:15 +0200 Edward Hervey <edward@centricular.com>
+
+ * ext/adaptivedemux2/hls/gsthlsdemux.c:
+ hlsdemux2: Only seek on selected streams
+ When handling seeks, there is no need to seek on unselected streams. If they
+ later get activated they will be properly seek onto
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2679>
+
+2022-06-08 09:33:22 +0200 Edward Hervey <edward@centricular.com>
+
+ * tests/check/elements/hlsdemux_m3u8.c:
+ tests: check: Update hlsdemux2 tests for playlist changes
+ We no longer do auto-magic fallbacks when synchronizing a disconnected
+ playlist. It is handled at a higher level.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2679>
+
+2022-06-03 10:25:34 +0200 Edward Hervey <edward@centricular.com>
+
+ * ext/adaptivedemux2/hls/m3u8.c:
+ hlsdemux2: Fix debug return statement
+ Due to latest commits res could have been NULL.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2679>
+
+2022-06-02 09:46:22 +0200 Edward Hervey <edward@centricular.com>
+
+ * ext/adaptivedemux2/hls/m3u8.c:
+ hlsdemux2: No longer re-add segments from before the playlist
+ When updating playlists, there is a possibility that the playlists don't
+ perfectly align, but the last entry of the previous playlist is *just* before
+ the first entry of the new playlist.
+ In those cases, we still can transfer the timing information from one playlist
+ to another, but we do not want to return that segment as being the matching one.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2679>
+
+2022-06-01 15:45:23 +0200 Edward Hervey <edward@centricular.com>
+
+ * ext/adaptivedemux2/hls/gsthlsdemux.c:
+ hlsdemux2: Use variant stream as support for synchronizing playlists
+ When matching playlists, there is a possibility that rendition streams will not
+ have been updated in time (for example because that stream started later, or
+ playback was paused). This would cause several playback failures and seeking
+ failures.
+ In order to still fall back on our feet, attempt to synchronize that rendition
+ playlist against the current variant playlist. This will attempt to match the
+ stream time using SN/DNS/PDT/...
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2679>
+
+2022-05-23 15:51:23 +0200 Edward Hervey <edward@centricular.com>
+
+ * ext/adaptivedemux2/hls/gsthlsdemux.c:
+ * ext/adaptivedemux2/hls/m3u8.c:
+ * ext/adaptivedemux2/hls/m3u8.h:
+ hlsdemux2: Detect synchronization loss
+ If we have been updating too slowly and have gone out of the current live
+ window, inform the baseclass accordingly.
+ This is different from the case where we have been updating quicker than what
+ the server provides.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2679>
+
+2022-05-23 15:48:16 +0200 Edward Hervey <edward@centricular.com>
+
+ * ext/adaptivedemux2/hls/gsthlsdemux.c:
+ hlsdemux2: More improvement/fixes to position tracking
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2679>
+
+2022-05-23 15:43:04 +0200 Edward Hervey <edward@centricular.com>
+
+ * ext/adaptivedemux2/gstadaptivedemux-private.h:
+ * ext/adaptivedemux2/gstadaptivedemux-stream.c:
+ * ext/adaptivedemux2/gstadaptivedemux.c:
+ * ext/adaptivedemux2/gstadaptivedemux.h:
+ adaptivedemux2: Handle loss of synchronization
+ Add a new custom GstFlowReturn so that subclasses can notify that they have lost
+ live synchronization.
+ When that happens, do a flushing seek back to the live position
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2679>
+
+2022-05-23 09:11:24 +0200 Edward Hervey <edward@centricular.com>
+
+ * ext/adaptivedemux2/gstadaptivedemux.c:
+ adaptivedemux2: Fix SNAP seek handling
+ * Since only flushing seeks are allowed, the "current" position is always the
+ global output position (and not "some" stream current position).
+ * In terms of figuring out to which stream to "snap" to, we can send it to any
+ selected stream. Removes the requirement of this function to a specific output
+ pad.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2679>
+
+2022-05-17 07:16:48 +0200 Edward Hervey <edward@centricular.com>
+
+ * ext/adaptivedemux2/hls/gsthlsdemux.c:
+ * ext/adaptivedemux2/hls/gsthlsdemux.h:
+ hlsdemux2: Fix position tracking
+ Remove the "pending advance" hack and instead rely on the base stream current
+ position to track our position (instead of a potentially NULL "current
+ segment").
+ Also ensure the media playlists are always refreshed with valid stream time,
+ even if there is no current segment.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2679>
+
+2022-05-17 07:11:17 +0200 Edward Hervey <edward@centricular.com>
+
+ * ext/adaptivedemux2/hls/m3u8.c:
+ * ext/adaptivedemux2/hls/m3u8.h:
+ hlsdemux2: Add a new method to synchronize two media playlist
+ This allows transfering the stream time of the playlist to an updated
+ variant/rendition.
+ This allows updating that information without having a "current segment"
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2679>
+
+2022-05-17 07:07:23 +0200 Edward Hervey <edward@centricular.com>
+
+ * ext/adaptivedemux2/gstadaptivedemux-stream.c:
+ * ext/adaptivedemux2/gstadaptivedemux.c:
+ adaptivedemux2: Initialize and use stream start/current position
+ The stream start and current position would be properly set when seeking or
+ activating a stream after playback started. But it would never be properly
+ initialized.
+ Set it to NONE initially to indicate to subclasses that no position has been
+ tracked yet. This will allow them to detect initial stream usage.
+ Futhermore, once the initial streams setup is done, make sure that it is set to
+ a valid initial value:
+ * The minimum stream time in live
+ * Or else the period start
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2679>
+
+2022-05-19 15:51:03 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/gstv4l2videodec.c:
+ v4l2videodec: Fix activation of internal pool
+ If the driver does not support VIDIOC_CREATE_BUFS ioctl, the pool
+ configuration may get changed, which requires a validation. This would
+ fail to activate a pool in a case it shouldn't normally fail unless we
+ are out of memory.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2456>
+
+2022-06-28 01:29:06 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * ext/dv/meson.build:
+ dv, opusparse: fix duplicate symbols in static build
+ Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1262
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2670>
+
+2022-06-25 19:50:10 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * tests/check/meson.build:
+ tests: skip unit tests for dependency-less elements that have been disabled
+ Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1136
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2660>
+
+2022-06-24 12:10:02 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * tests/examples/jack/meson.build:
+ examples: don't try and build jack examples if jack was disabled
+ Fixes meson build ERROR: Unknown variable "libjack_dep".
+ Fixes #1301
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2656>
+
+2022-06-17 14:02:54 +0200 Marc Leeman <m.leeman@televic.com>
+
+ * gst/rtpmanager/rtpsession.c:
+ rtpsession: properly initialise favor-new property
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2625>
+
+2022-05-27 11:20:06 +0200 Edward Hervey <edward@centricular.com>
+
+ * ext/adaptivedemux2/hls/gsthlsdemux-util.c:
+ hlsdemux2: Look for mpegts synchronization point further
+ Some mpeg-ts streams have extra data at the beginning. While it's not ideal, we
+ should be able to cope with it.
+ Therefore increase the initial search window for at least 4 consecutive
+ synchronization points to 1kB.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2626>
+
+2022-05-18 10:23:15 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/matroska/matroska-demux.c:
+ matroskademux: Avoid integer-overflow resulting in heap corruption in WavPack header handling code
+ blocksize + WAVPACK4_HEADER_SIZE might overflow gsize, which then
+ results in allocating a very small buffer. Into that buffer blocksize
+ data is memcpy'd later which then causes out of bound writes and can
+ potentially lead to anything from crashes to remote code execution.
+ Thanks to Adam Doupe for analyzing and reporting the issue.
+ CVE: CVE-2022-1920
+ https://gstreamer.freedesktop.org/security/sa-2022-0004.html
+ Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1226
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2612>
+
+2022-05-30 10:15:37 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Fix integer overflows in zlib decompression code
+ Various variables were of smaller types than needed and there were no
+ checks for any overflows when doing additions on the sizes. This is all
+ checked now.
+ In addition the size of the decompressed data is limited to 200MB now as
+ any larger sizes are likely pathological and we can avoid out of memory
+ situations in many cases like this.
+ Also fix a bug where the available output size on the next iteration in
+ the zlib decompression code was provided too large and could
+ potentially lead to out of bound writes.
+ Thanks to Adam Doupe for analyzing and reporting the issue.
+ CVE: tbd
+ https://gstreamer.freedesktop.org/security/sa-2022-0003.html
+ Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1225
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2610>
+
+2022-05-18 11:24:37 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/matroska/matroska-read-common.c:
+ matroskademux: Fix integer overflows in zlib/bz2/etc decompression code
+ Various variables were of smaller types than needed and there were no
+ checks for any overflows when doing additions on the sizes. This is all
+ checked now.
+ In addition the size of the decompressed data is limited to 120MB now as
+ any larger sizes are likely pathological and we can avoid out of memory
+ situations in many cases like this.
+ Also fix a bug where the available output size on the next iteration in
+ the zlib/bz2 decompression code was provided too large and could
+ potentially lead to out of bound writes.
+ Thanks to Adam Doupe for analyzing and reporting the issue.
+ CVE: CVE-2022-1922, CVE-2022-1923, CVE-2022-1924, CVE-2022-1925
+ https://gstreamer.freedesktop.org/security/sa-2022-0002.html
+ Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1225
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2610>
+
+2022-05-18 12:00:48 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/avi/gstavidemux.c:
+ avidemux: Fix integer overflow resulting in heap corruption in DIB buffer inversion code
+ Check that width*bpp/8 doesn't overflow a guint and also that
+ height*stride fits into the provided buffer without overflowing.
+ Thanks to Adam Doupe for analyzing and reporting the issue.
+ CVE: CVE-2022-1921
+ See https://gstreamer.freedesktop.org/security/sa-2022-0001.html
+ Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1224
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2608>
+
+2022-05-19 04:16:25 +0000 Adam Doupe <adamdoupe@gmail.com>
+
+ * gst/smpte/gstmask.c:
+ smpte: Fix integer overflow with possible heap corruption in GstMask creation.
+ Check that width*height*sizeof(guint32) doesn't overflow when
+ allocated user_data for mask, potential for heap overwrite when
+ inverting.
+ Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1231
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2603>
+
+2022-06-14 23:03:26 +0200 Piotr Brzeziński <piotr@centricular.com>
+
+ * ext/adaptivedemux2/dash/gstmpd-prelude.h:
+ * ext/adaptivedemux2/dash/gstmpdhelper.h:
+ * ext/adaptivedemux2/dash/gstmpdnode.h:
+ * ext/adaptivedemux2/dash/gstmpdparser.h:
+ * ext/adaptivedemux2/dash/gstxmlhelper.h:
+ * ext/adaptivedemux2/hls/gsthlsdemux.c:
+ * ext/adaptivedemux2/hls/gsthlselement.c:
+ * ext/adaptivedemux2/hls/gsthlselements.h:
+ * ext/adaptivedemux2/hls/m3u8.c:
+ * ext/adaptivedemux2/mss/gstmss-prelude.h:
+ * ext/adaptivedemux2/mss/gstmssdemux.c:
+ * ext/adaptivedemux2/mss/gstmssdemux.h:
+ * ext/adaptivedemux2/mss/gstmssfragmentparser.h:
+ * ext/adaptivedemux2/mss/gstmssmanifest.h:
+ * ext/soup/gstsouploader.c:
+ * ext/soup/gstsouploader.h:
+ * tests/check/elements/hlsdemux_m3u8.c:
+ adaptivedemux2: Prevent duplicate symbols on static builds
+ Uses prelude header files with #defines to rename DASH and MSS
+ symbols duplicated in their old standalone versions.
+ Also redefines soup-related functions when building it for
+ adaptivedemux2 to prevent symbol conflicts there.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2534>
+
+2022-05-12 02:51:00 +1000 Jan Schmidt <jan@centricular.com>
+
+ * ext/adaptivedemux2/gstadaptivedemux-track.c:
+ * ext/adaptivedemux2/gstadaptivedemux.h:
+ adaptivedemux2: Improve reverse playback buffering.
+ In reverse playback, store the lowest running time in each GOP
+ as the input_time for buffering purposes. That means we end up
+ storing at least a complete GOP before declaring buffering
+ 100%
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2510>
+
+2022-04-08 23:06:09 +1000 Jan Schmidt <jan@centricular.com>
+
+ * docs/gst_plugins_cache.json:
+ * ext/adaptivedemux2/gstadaptivedemux-private.h:
+ * ext/adaptivedemux2/gstadaptivedemux-track.c:
+ * ext/adaptivedemux2/gstadaptivedemux.c:
+ adaptivedemux2: reverse playback running times
+ Account for running time moving non-monotonically in
+ reverse playback by tracking the highest running time
+ seen at each point.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2510>
+
+2022-04-06 12:56:30 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * ext/adaptivedemux2/hls/m3u8.h:
+ * gst/rtpmanager/gstrtpjitterbuffer.c:
+ * gst/rtpmanager/gstrtpst2022-1-fecenc.c:
+ * gst/udp/gstudpelement.c:
+ * meson.build:
+ Bump GLib requirement to >= 2.62
+ Can't require 2.64 yet because of
+ https://gitlab.freedesktop.org/gstreamer/cerbero/-/issues/323
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2568>
+
+2022-06-08 14:11:57 +0200 Marc Leeman <m.leeman@televic.com>
+
+ * docs/gst_plugins_cache.json:
+ * gst/udp/gstmultiudpsink.c:
+ fix trivial distination -> destination
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2573>
+
+2022-04-21 12:47:31 +0200 Ignacio Casal Quinteiro <qignacio@amazon.com>
+
+ * sys/osxaudio/gstosxcoreaudiohal.c:
+ osxaudio: remove usage of goto
+ It is easier to follow the code without the goto now
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2251>
+
+2022-03-30 12:59:46 +0200 Ignacio Casal Quinteiro <qignacio@amazon.com>
+
+ * sys/osxaudio/gstosxcoreaudiohal.c:
+ osxaudio: support hidden devices
+ macOS features hidden devices. These are devices that will
+ not be shown in the macOS UIs and that cannot be retrieved
+ without having the specific UID of the hidden device. There
+ are cases when you might want to have a hidden device, for example
+ when having a virtual speaker that forwards the data to a virtual
+ hidden input device from which you can then grab the audio.
+ The blackhole project supports these hidden devices and
+ this patch provides a way that if the device id is a hidden
+ device it will use it instead of check the hardware list of devices
+ to understand if the device is valid.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2251>
+
+2022-04-20 18:12:02 +0200 Ignacio Casal Quinteiro <qignacio@amazon.com>
+
+ * sys/osxaudio/gstosxcoreaudiohal.c:
+ osx: fix indent
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2251>
+
+2022-03-30 12:48:02 +0200 Ignacio Casal Quinteiro <qignacio@amazon.com>
+
+ * sys/osxaudio/gstosxcoreaudiohal.c:
+ osxaudio: iterate device only if needed
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2251>
+
+2022-03-30 09:59:59 +0200 Ignacio Casal Quinteiro <qignacio@amazon.com>
+
+ * sys/osxaudio/gstosxcoreaudiohal.c:
+ osxaudio: reduce scope of default device id variable
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2251>
+
+2022-06-07 17:31:43 +0200 Bastien Nocera <hadess@hadess.net>
+
+ * ext/gtk/gtkgstglwidget.c:
+ gtk: Fix double-free when OpenGL can't be initialised
+ gtk_gl_area_get_error() doesn't return a copy of the error, but just the
+ error. If initialising OpenGL fails, then GtkGstGLWidget will consume
+ the error, and cause GTK to try and display freed memory.
+ ==50914== Invalid read of size 8
+ ==50914== at 0x4C4CB8A: gtk_gl_area_draw_error_screen (gtkglarea.c:663)
+ ==50914== by 0x4C4CB8A: gtk_gl_area_draw (gtkglarea.c:687)
+ ==50914== by 0x4E061CA: gtk_widget_draw_internal (gtkwidget.c:7084)
+ ==50914== by 0x4BAEFB1: gtk_container_propagate_draw (gtkcontainer.c:3854)
+ ==50914== by 0x4D4B6BF: gtk_stack_render (gtkstack.c:2207)
+ ==50914== by 0x4BB4B03: gtk_css_custom_gadget_draw (gtkcsscustomgadget.c:159)
+ ==50914== by 0x4BBA4C4: gtk_css_gadget_draw (gtkcssgadget.c:885)
+ ==50914== by 0x4D4D780: gtk_stack_draw (gtkstack.c:2119)
+ ==50914== by 0x4E061CA: gtk_widget_draw_internal (gtkwidget.c:7084)
+ ==50914== by 0x4BAEFB1: gtk_container_propagate_draw (gtkcontainer.c:3854)
+ ==50914== by 0x4BAF0C3: gtk_container_draw (gtkcontainer.c:3674)
+ ==50914== by 0x4E061CA: gtk_widget_draw_internal (gtkwidget.c:7084)
+ ==50914== by 0x4BAEFB1: gtk_container_propagate_draw (gtkcontainer.c:3854)
+ ==50914== Address 0x187a0818 is 8 bytes inside a block of size 16 free'd
+ ==50914== at 0x48480E4: free (vg_replace_malloc.c:872)
+ ==50914== by 0x49A5B8C: g_free (gmem.c:218)
+ ==50914== by 0x49C1013: g_slice_free1 (gslice.c:1183)
+ ==50914== by 0x4990DE4: g_error_free (gerror.c:870)
+ ==50914== by 0x4990FE9: g_clear_error (gerror.c:1052)
+ ==50914== by 0x1A489780: _get_gl_context (gtkgstglwidget.c:540)
+ ==50914== by 0x1A4863CB: gst_gtk_invoke_func (gstgtkutils.c:39)
+ ==50914== by 0x49A3834: g_main_context_invoke_full (gmain.c:6137)
+ ==50914== by 0x1A486450: gst_gtk_invoke_on_main (gstgtkutils.c:59)
+ ==50914== by 0x1A48A29E: gtk_gst_gl_widget_init_winsys (gtkgstglwidget.c:632)
+ ==50914== by 0x1A4887E7: gst_gtk_gl_sink_start (gstgtkglsink.c:267)
+ ==50914== by 0x6579810: gst_base_sink_change_state (gstbasesink.c:5662)
+ ==50914== Block was alloc'd at
+ ==50914== at 0x484586F: malloc (vg_replace_malloc.c:381)
+ ==50914== by 0x49A9278: g_malloc (gmem.c:125)
+ ==50914== by 0x49C1BA5: g_slice_alloc (gslice.c:1072)
+ ==50914== by 0x49C3BCC: g_slice_alloc0 (gslice.c:1098)
+ ==50914== by 0x499096B: g_error_allocate (gerror.c:708)
+ ==50914== by 0x4990AF1: UnknownInlinedFun (gerror.c:722)
+ ==50914== by 0x4990AF1: g_error_copy (gerror.c:892)
+ ==50914== by 0x4C4B9F9: gtk_gl_area_set_error (gtkglarea.c:1036)
+ ==50914== by 0x4C4BAF7: gtk_gl_area_real_create_context (gtkglarea.c:346)
+ ==50914== by 0x4B21B28: _gtk_marshal_OBJECT__VOIDv (gtkmarshalers.c:2730)
+ ==50914== by 0x4920B78: UnknownInlinedFun (gclosure.c:893)
+ ==50914== by 0x4920B78: g_signal_emit_valist (gsignal.c:3406)
+ ==50914== by 0x4920CB2: g_signal_emit (gsignal.c:3553)
+ ==50914== by 0x4C4B927: gtk_gl_area_realize (gtkglarea.c:308)
+ Reproduced by running:
+ MESA_GL_VERSION_OVERRIDE=2.7 totem
+ See https://gitlab.gnome.org/GNOME/totem/-/issues/522
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2565>
+
+2022-06-06 12:31:52 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/flv/gstflvdemux.c:
+ * gst/flv/gstflvdemux.h:
+ flvdemux: Make use of the streams API if used in a streams-aware bin
+ This allows adding audio/video streams after 6s.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2559>
+
+2022-06-03 18:35:54 +0200 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+ * gst/audioparsers/gstaacparse.c:
+ aacparse: Avoid mismatch between src_caps and output_header_type
+ If our downstream caps didn't intersect, we attempted to convert between
+ raw and ADTS stream formats, if possible. If the caps still did not
+ intersect, we then used the modified `src_caps` but left the
+ `output_header_type` unmodified.
+ This caused a mismatch between caps and actual stream format.
+ Avoid this by first copying the `src_caps` to `convcaps` for the
+ additional intersection tests, replacing `src_caps` if we succeed.
+ While we're here, clean up the code a bit and remove the `codec_data`
+ field from outgoing ADTS caps.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2550>
+
+2022-06-04 10:27:09 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/flv/gstflvdemux.c:
+ * gst/flv/gstflvelement.c:
+ flvdemux: Actually make use of the debug category
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2552>
+
+2022-06-01 16:14:24 +0200 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/soup/gstsoup.c:
+ * ext/soup/gstsoupelement.c:
+ * ext/soup/gstsouploader.c:
+ soup: fix soup debug category
+ Use soup debug category in souploader
+ for soup plugin element load.
+ Inititalize properly soup utils category.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2535>
+
+2022-05-29 06:05:27 +0900 Seungha Yang <seungha@centricular.com>
+
+ * ext/adaptivedemux2/hls/m3u8.c:
+ hlsdemux2: Adjust debug log level
+ HLS manifest might not be represented by a single common caps
+ when different codecs are mixed in a playlist, but it
+ does not seem to be a critical issue we need to warn.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2516>
+
+2022-05-02 16:55:34 +0200 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/adaptivedemux2/dash/gstdashdemux.c:
+ * ext/adaptivedemux2/dash/gstdashdemux.h:
+ * ext/adaptivedemux2/gstadaptivedemux.c:
+ * ext/adaptivedemux2/gstadaptivedemuxelement.c:
+ * ext/adaptivedemux2/gstadaptivedemuxelements.h:
+ * ext/adaptivedemux2/hls/gsthlsdemux.c:
+ * ext/adaptivedemux2/hls/gsthlsdemux.h:
+ * ext/adaptivedemux2/meson.build:
+ * ext/adaptivedemux2/mss/gstmssdemux.c:
+ * ext/adaptivedemux2/mss/gstmssdemux.h:
+ * ext/adaptivedemux2/plugin.c:
+ adaptivedemux2: fix plugin/element init
+ In case of per features registration such as the
+ customizable gstreamer-full library, each
+ element should check that the soup library can be loaded to
+ facilitate the element registration.
+ Initialize the debug categories properly
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2348>
+
+2022-05-29 20:27:38 +1000 Jan Schmidt <jan@centricular.com>
+
+ * gst/rtpmanager/gstrtpptdemux.c:
+ rtpptdemux: Don't GST_FLOW_ERROR when ignoring invalid packets
+ https://bugzilla.gnome.org/show_bug.cgi?id=741398 changed
+ rtpptdemux in 2014 to not post a GST_ELEMENT_ERROR on the
+ bus when dropping an invalid (non-RTP) packet, but still
+ returned GST_FLOW_ERROR upstream - so the pipeline still
+ stops, but now without a useful bus error.
+ Return GST_FLOW_OK instead, so the pipeline keeps
+ running. Some old telephony equipment can send invalid
+ packets before the real RTP traffic starts.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2520>
+
+2022-05-28 16:46:04 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * ext/jack/gstjackaudiosrc.c:
+ jack: Always use jack_free as specified by the docs
+ Fixes a crash on Windows due to a CRT mismatch. The JACK installation
+ still uses MSVCRT, and we the Universal CRT for both MinGW and MSVC.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2497>
+
+2022-05-26 01:21:43 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * ext/jack/meson.build:
+ jack: Add support for detecting libjack on Windows
+ No source code changes were necessary to get the plugin working on
+ Windows with MSVC.
+ Run QJackCtl and audiotestsrc ! jackaudiosink just works.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2497>
+
+2022-05-24 16:07:13 +0800 Hou Qi <qi.hou@nxp.com>
+
+ * sys/v4l2/gstv4l2object.c:
+ v4l2: Reset transfer in gst_v4l2_object_acquire_format()
+ get_colorspace() checks input caps transfer when mapping V4L2_XFER_FUNC_709
+ back to V4L2_COLORSPACE_BT2020 and GST_VIDEO_TRANSFER_BT2020_12. After
+ receiving source change event, decoder will G_FMT and S_FMT again. So need
+ to reset transfer when acquiring format to avoid using the old transfer.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2475>
+
+2022-05-25 13:00:58 +0200 Piotrek Brzeziński <piotr@centricular.com>
+
+ * gst/cutter/gstcutter.c:
+ * gst/cutter/gstcutter.h:
+ cutter: Include running/stream-time in messages
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2490>
+
+2022-05-03 11:34:15 +0200 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/soup/gstsoup.c:
+ * ext/soup/gstsoupelement.c:
+ * ext/soup/gstsoupelements.h:
+ * ext/soup/gstsouphttpclientsink.c:
+ * ext/soup/gstsouphttpsrc.c:
+ soup: Fix plugin/element init
+ In case of per features registration such as the
+ customizable gstreamer-full library, each
+ element should check that the soup library can be loaded to
+ facilitate the element registration.
+ Initialize the debug category properly
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2349>
+
+2022-05-23 21:24:40 -0400 Eli Schwartz <eschwartz@archlinux.org>
+
+ * meson.build:
+ meson: use better zlib dependency fallback
+ zlib is required, and if it isn't found it is checked several ways and
+ then forced via subproject(). This code was added in commit
+ b93e37592a3ccc0eaece1c8fef2d362b1e5fe685, to account for systems where
+ zlib doesn't have pkg-config files installed.
+ But Meson already does dependency fallback, and also, since 0.54.0, does
+ the in-between checks for find_library('z') and has_header('zlib.h') via
+ the "system" type dependency. Simplify dependency lookup by marking it
+ as required, which also makes sure that the console log doesn't
+ confusingly list "not found".
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2484>
+
+2022-05-19 16:33:47 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/gstv4l2videodec.c:
+ v4l2videodec: Fix missing handling of resolution-change
+ The pool process function may poll and get the resolution-change event
+ whenever it is not possible to share our buffers. This typically happen
+ when downstream does not support GstVideoMeta.
+ Not handling this would cause the decoder thread to exit silently and the
+ pipeline to stall.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2457>
+
+2022-05-19 16:39:14 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/gstv4l2videodec.c:
+ v4l2videodec: Downgrade to info resolution-change trace
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2457>
+
+2022-05-23 20:23:38 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * ext/shout2/gstshout2.c:
+ * ext/shout2/gstshout2.h:
+ * ext/shout2/meson.build:
+ shout2: fix compiler warnings and bump req to libshout >= 2.4.2
+ Fix compiler warnings with latest libshout version (2.4.6).
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2473>
+
+2022-05-14 14:58:04 +0200 László Károlyi <laszlo@karolyi.hu>
+
+ * docs/gst_plugins_cache.json:
+ * ext/shout2/gstshout2.c:
+ * ext/shout2/gstshout2.h:
+ shout2send: Adding send-title-info and user-agent options
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2420>
+
+2022-05-19 11:47:57 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/isomp4/qtdemux.c:
+ * gst/isomp4/qtdemux.h:
+ qtdemux: Add support for ONVIF XML Timed MetaData
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2453>
+
+2022-05-19 11:30:20 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/isomp4/fourcc.h:
+ * gst/isomp4/qtdemux_dump.c:
+ * gst/isomp4/qtdemux_types.c:
+ qtdemux: Add parsing/dumping of nmhd / metx boxes
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2453>
+
+2022-05-19 11:06:31 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/isomp4/fourcc.h:
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Parse styp box for informational purposes
+ And include some more details in the debug logs for the ftyp box too.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2453>
+
+2022-05-10 16:20:46 +0800 Hou Qi <qi.hou@nxp.com>
+
+ * sys/v4l2/gstv4l2object.c:
+ v4l2: set default resolution if caps has no such information
+ Output may attemp to set the width and height to zero values if
+ caps has no such information, which will cause capture get invalid
+ dimensions. Then decoder reports negotiation failure.
+ So need to set default resolution if caps has no such information.
+ Real values can be set again until source change event is signaled.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2400>
+
+2022-05-17 05:21:19 +1000 Jan Schmidt <jan@centricular.com>
+
+ * gst/multifile/gstsplitmuxpartreader.c:
+ splitmuxsrc: Re-queue sticky events after probing.
+ When processing the first event after probing the
+ file and being activated, requeue sticky events
+ as there's no requirement that demuxers send tag
+ and other events again after a seek - that's
+ why they're sticky.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2432>
+
+2022-05-16 14:14:46 +0200 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+ * gst/deinterlace/gstdeinterlace.c:
+ deinterlace: Clean up error handling in chain and _push_history
+ - Consistently unref the chained buffer at the end of the chain
+ function, if we're not handing it off to `gst_pad_push`. This avoids a
+ few buffer leaks in the error paths in `_chain` and `_push_history`.
+ - When mapping the video frame fails, return a flow error instead of
+ crashing.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2428>
+
+2022-05-16 14:40:41 +0200 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+ * gst/multifile/gstsplitmuxsink.c:
+ * gst/multifile/gstsplitmuxsink.h:
+ splitmuxsink: When flushing, exit handle_mq_input quickly
+ If we just break the loop, we might run into the `gop != NULL` assert
+ that follows it. Rather, exit immediately with flushing flow.
+ Also use this flushing mechanism when we release a pad. This avoids
+ having an extra flag.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1030>
+
+2021-01-26 16:33:25 +0100 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+ * gst/multifile/gstsplitmuxsink.c:
+ splitmuxsink: Avoid deadlock on release, harder
+ Unlock after broadcasting and wait for the pad to be free before
+ relocking the muxer, giving the input probe a chance to react to our
+ broadcast.
+ Improves the fix from
+ https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/838.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1030>
+
+2022-05-16 19:31:18 +0900 Shingo Kitagawa <shingogo@hotmail.co.jp>
+
+ * gst/wavparse/gstwavparse.c:
+ wavparse: fix typo in debug message
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2425>
+
+2022-05-13 01:42:21 +0000 Thibault Saunier <tsaunier@igalia.com>
+
+ * gst/rtpmanager/gstrtpbin.c:
+ rtpbin: Avoid holding lock GST_RTP_BIN_LOCK when emitting pad-added
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2411>
+
+2022-05-12 17:11:38 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Don't use tfdt for parsing subsequent trun boxes
+ The timestamp in the tfdt refers to the first trun box and if there are
+ multiple trun boxes then the distance between the first timestamps will
+ grow.
+ At some point this distance reaches a threshold and triggers the
+ resetting of the first sample's timestamp of this trun box to be reset
+ to the tfdt.
+ This threshold is implemented for files where there is a jump in the
+ timeline between fragments and where this can be detected via a jump
+ between the end timestamp of the previous fragment and the tfdt of the
+ next. This behaviour is preserved.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2409>
+
+2022-05-11 16:20:42 +0200 Guillaume Desmottes <guillaume.desmottes@onestream.live>
+
+ * ext/vpx/gstvpxenc.c:
+ * ext/vpx/gstvpxenc.h:
+ vpxenc: enforce strictly increasing pts
+ From vpx_codec_encode() documentation:
+ "The presentation time stamp (PTS) MUST be strictly increasing."
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2405>
+
+2022-05-11 15:37:44 +0200 Guillaume Desmottes <guillaume.desmottes@onestream.live>
+
+ * ext/vpx/gstvpxenc.c:
+ vpxenc: conver input pts to running time
+ The input pts needs to be strictly increasing, see vpx_codec_encode() doc, so convert it to
+ running time as we don't want to reset the encoder for each segment.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2405>
+
+2022-05-11 15:18:42 +0200 Guillaume Desmottes <guillaume.desmottes@onestream.live>
+
+ * ext/vpx/gstvpxenc.c:
+ vpxenc: fix crash if encoder produces unmatching ts
+ If for some reason the encoder produces frames with a pts higher than
+ the input one, we were dropping all the video encoder frames and ended
+ up crashing when trying to access the pts of a NULL pointer returned by
+ gst_video_encoder_get_oldest_frame().
+ I hit this scenario by feeding a decreasing timestamp to vp8enc which
+ seem to confuse the encoder.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2405>
+
+2022-04-28 09:19:57 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/gstv4l2object.c:
+ * sys/v4l2/gstv4l2videoenc.c:
+ v4l2videoenc: Setup crop rectangle if needed
+ Hantro H1 and Rockchip VEPU2 drivers will pad the width/height to a
+ multiple of 16. In order to obtain the right JPEG size, the image needs
+ to be cropped using the S_SELECTION API. This support is added as best
+ effort since older drivers may emulate this by looking at the capture
+ queue width/height.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2329>
+
+2022-05-05 20:36:04 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/isomp4/gstqtmux.c:
+ mp4mux: Disable aggregator's default negotiation
+ mp4mux can't negotiate caps with upstream/downstream and always outputs
+ specific caps based on the input streams. This will always happen before
+ it produces the first buffers.
+ By having the default aggregator negotiation enabled the same caps
+ would be pushed twice in the beginning, and again every time a
+ reconfigure event is received.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2372>
+
+2022-05-05 20:24:57 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/flv/gstflvmux.c:
+ flvmux: Disable aggregator's default negotiation
+ flvmux can't negotiate caps with upstream/downstream and always outputs
+ specific caps based on the input streams. This will always happen before
+ it produces the first buffers.
+ By having the default aggregator negotiation enabled the same caps
+ would be pushed twice in the beginning, and again every time a
+ reconfigure event is received.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2372>
+
+2022-05-03 17:27:32 +1000 Matthew Waters <matthew@centricular.com>
+
+ * gst/wavparse/gstwavparse.c:
+ wavparse: ensure that any pending segment is sent before an EOS event is sent
+ Specifically fixes seqnum handling when an aggregator-based element
+ (audiomixer et al) is downstream and a seek is performed that
+ immediately causes an EOS from wavparse.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2356>
+
+2022-04-29 23:33:47 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/rtpmanager/gstrtpjitterbuffer.c:
+ rtpjitterbuffer: Free CNAME/SSRC mappings on finalize and PAUSED->READY
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2336>
+
+2022-04-29 23:13:15 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/rtpmanager/gstrtpbin.c:
+ * gst/rtpmanager/gstrtpjitterbuffer.c:
+ rtpmanager: Refactor RTCP packet loops to fix control flow
+ Mixing C loops with switch statements is a bad idea as break has a
+ different meaning in both. Breaking inside the switch statements wrongly
+ caused further loop iterations.
+ Instead use goto to get out of the loop and continue to do another loop
+ iteration, and never ever use break except for the end of a case.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2336>
+
+2022-04-28 00:58:30 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst/rtpmanager/gstrtpjitterbuffer.c:
+ rtpjitterbuffer: Initialize variables
+ Avoid use of uninitialized variable
+ Fixing MSVC warning
+ gstrtpjitterbuffer.c(4733) : warning C4700: uninitialized local variable 'have_sdes' used
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2315>
+
+2022-04-28 10:49:55 +0200 Edward Hervey <edward@centricular.com>
+
+ * ext/adaptivedemux2/mss/gstmssdemux.c:
+ mssdemux2: Don't expose/use streams we can't handle yet
+ Avoids issues further down
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2319>
+
+2022-04-28 10:46:34 +0200 Edward Hervey <edward@centricular.com>
+
+ * ext/adaptivedemux2/mss/gstmssdemux.c:
+ * ext/adaptivedemux2/mss/gstmssmanifest.c:
+ * ext/adaptivedemux2/mss/gstmssmanifest.h:
+ mssdemux2: Ensure stream/track uniqueness
+ If there is more than one track of the same type (say audio), we would end up
+ creating several stream/types with the same name.
+ Instead use the MSS stream name property to make them unique
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2319>
+
+2022-04-27 12:24:23 +0900 dongil.park <dongil.park@lge.com>
+
+ * gst/wavparse/gstwavparse.c:
+ wavparse: Unset DISCONT buffer flag for divided into multiple buffers in push mode
+ In push mode (streaming), if the received chunk buffer size from _chain is bigger
+ than output buffer size, the flags of the divided-buffers are propagated to the
+ DISCONT flag from first received chunk buffer. This unexpected buffers contained DISCONT
+ flags are abnormally transformed when changing the sampling rate by audioresample element.
+ So unset unnecessary DISCONT flag before pad_push().
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2305>
+
+2022-04-26 22:17:51 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * docs/gst_plugins_cache.json:
+ * gst/rtpmanager/gstrtpbin.c:
+ * gst/rtpmanager/gstrtpjitterbuffer.c:
+ rtpjitterbuffer: add the reference timestamp meta in more situations
+ Previously, we only added it when actually performing synchronization
+ based on the NTP time.
+ The information can be useful downstream in other situations too, and
+ we can compute a NTP time as soon as we get a sender report with the
+ relevant information.
+ Co-authored-by: Mathieu Duponchelle <mathieu@centricular.com>
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2252>
+
+2022-04-20 17:35:29 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/rtp/gstrtpgstpay.c:
+ * gst/rtp/gstrtpgstpay.h:
+ rtpgstpay: Don't push packets before the first input buffer is received
+ It's not possible to create a valid RTP timestamp for them, which would
+ cause a potentially very big RTP timestamp discontinuity between those
+ first packets (created from initial events) and the packet based on the
+ first input buffer.
+ As a side-effect, also simplify the packet aggregation code a bit and
+ work with only a single level of buffer lists.
+ Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1157
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2250>
+
+2022-04-22 12:19:03 +0200 Havard Graff <havard@pexip.com>
+
+ * gst/rtpmanager/rtptwcc.c:
+ rtptwcc: don't map the buffer twice
+ ...and use the pt extracted rather than the one from RTPPacketInfo
+ when logging.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2271>
+
+2022-04-22 02:41:16 +0000 Thibault Saunier <tsaunier@igalia.com>
+
+ * gst/rtpmanager/rtpsession.c:
+ rtpsession: Emit "notify::stats" when we update stats from RR or SR
+ Sensibily optimizing caching the pspecs and using them directly
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2266>
+
+2022-04-23 01:57:53 +0200 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * gst/rtp/gstrtpredenc.c:
+ * gst/rtp/gstrtpredenc.h:
+ rtpredenc: quieten warning about ignoring header extensions
+ Turn it into a FIXME, and only log once
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2279>
+
+2021-02-01 10:36:42 +0100 Havard Graff <havard.graff@gmail.com>
+
+ * gst/rtpmanager/gstrtprtxsend.c:
+ * tests/check/elements/rtprtx.c:
+ rtprtxsend: mark RTX buffers with GST_RTP_BUFFER_FLAG_RETRANSMISSION
+ It is useful for elements downstream from rtxsend to know if the RTP
+ buffer they are dealing with is an RTX buffer or not.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2272>
+
+2022-04-19 18:40:31 -0400 Tristan Matthews <tmatth@videolan.org>
+
+ * docs/gst_plugins_cache.json:
+ * gst/isomp4/gstqtmux.c:
+ mp4mux: fix spelling
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2241>
+
+2022-01-21 14:21:18 +0100 Jonas Bonn <jonas@norrbonn.se>
+
+ * gst/udp/gstmultiudpsink.c:
+ multiudpsink: allow binding to IPv6 address
+ When the sink is configured to create sockets with an explicit bind
+ address, then the created socket gets set to the udp_socket field
+ irregardless of whether the bind address indicated that the socket
+ family should be IPv4 or IPv6. When binding to an IPv6 address, this
+ results in the following error:
+ gstmultiudpsink.c:1285:gst_multiudpsink_configure_client:<rtcpsink>
+ error: Invalid address family (got 10)
+ This patch adds a check of the address family being bound to and sets
+ the created socket to used_socket or used_socket_v6, accordingly.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1551>
+
+2022-04-18 18:20:00 +0900 Camilo Celis Guzman <camilo@pexip.com>
+
+ * tests/check/elements/rtphdrextsdes.c:
+ rtphdrextsdes: fixup test trying to g_free a local variable
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2235>
+
+2022-04-21 11:47:55 +0200 Edward Hervey <edward@centricular.com>
+
+ * ext/adaptivedemux2/hls/m3u8.c:
+ hls/m3u8: Fix starting segment for live playlist
+ RFC 8216 6.3.3 "Playing the Media Playlist File" : states that for live media
+ playlists "the client SHOULD NOT choose a segment that starts less than three
+ target durations from the end of the Playlist file"
+ This is an off-by-one error. Since we are looking for the "index" of the
+ segment, we need to subtract 1 from the searched position.
+ Ex: For a playlist with 12 entries, we want to start playback on the 9th segment
+ ... which is at index 8.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2259>
+
+2022-04-20 14:50:35 +0200 Edward Hervey <edward@centricular.com>
+
+ * ext/adaptivedemux2/hls/gsthlsdemux-util.c:
+ hls: Relax webvtt checks
+ If no hour field is present (which is allowed), the remaining data can be less
+ than 15 character.
+ Fix time translation failures if the hour field wasn't present
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2248>
+
+2022-04-20 10:53:16 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/rtpmanager/gstrtpbin.c:
+ * gst/rtpmanager/gstrtpfunnel.c:
+ * gst/rtpmanager/gstrtpjitterbuffer.c:
+ * gst/rtpmanager/gstrtpsession.c:
+ * gst/rtpmanager/gstrtputils.c:
+ * gst/rtpmanager/gstrtputils.h:
+ * gst/rtpmanager/meson.build:
+ * gst/rtpmanager/rtpsession.c:
+ * gst/rtpmanager/rtptwcc.c:
+ rtpmanager: Move some duplicated constant and helper function to a single place
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2132>
+
+2022-04-18 16:22:50 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/rtpmanager/gstrtpbin.c:
+ * gst/rtpmanager/gstrtpjitterbuffer.c:
+ rtpbin/rtpjitterbuffer: Don't parse RTCP SRs twice unless needed
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2132>
+
+2022-04-18 11:50:48 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * docs/gst_plugins_cache.json:
+ * gst/rtpmanager/gstrtpbin.c:
+ * gst/rtpmanager/gstrtpjitterbuffer.c:
+ rtpjitterbuffer: Add property to throttle handling of RTCP SR / NTP-64 syncing
+ This proxies the "rtcp-sync-interval" property of rtpbin.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2132>
+
+2022-04-11 19:14:43 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/rtpmanager/rtpsession.c:
+ * gst/rtpmanager/rtpsession.h:
+ rtpsession: Handle RTCP-SR-REQ (RFC6051) RTCP feedback message
+ This causes an RTCP SR to be sent at the earliest possible time.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2132>
+
+2022-04-11 19:25:43 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/rtpmanager/gstrtpbin.c:
+ * gst/rtpmanager/gstrtpjitterbuffer.c:
+ rtpbin/rtpjitterbuffer: Allow syncing to an SR without CNAME if the CNAME is already known
+ The RTCP SR packet might be without SDES in case of a reduced-size RTCP
+ packet. For syncing purposes the CNAME is needed but it might be known
+ already from an earlier RTCP packet or out of band, via the SDP for
+ example.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2132>
+
+2022-04-07 18:59:07 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/rtpmanager/gstrtpbin.c:
+ * gst/rtpmanager/gstrtpjitterbuffer.c:
+ rtpbin/jitterbuffer: Use inband 64-bit NTP timestamps according to RFC6051 for faster synchronization
+ When signalled via the caps that the header extension is used, it will
+ be read and used in the same way as the RTP/NTP time mapping from RTCP
+ SRs.
+ If the CNAME of the stream's SSRC is provided out of band via e.g. the
+ SDP then this allows streams to be synchronized immediately on the first
+ packet instead of having to wait for the first RTCP SR to arrive.
+ Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/383
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2132>
+
+2022-04-09 11:00:52 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/rtpmanager/gstrtpsession.c:
+ rtpsession: Only add send latency to the running time if it is actually known
+ Otherwise we can't know the running time yet if rtcp-sync-send-time is
+ set, and have to wait until the latency is known later.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2132>
+
+2022-04-06 15:39:14 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/rtpmanager/gstrtpsession.c:
+ * gst/rtpmanager/rtpsession.c:
+ * gst/rtpmanager/rtpsession.h:
+ * gst/rtpmanager/rtpstats.h:
+ rtpsession: Update 64-bit NTP header extensions with the actual NTP time in senders
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2132>
+
+2022-04-05 20:05:57 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * docs/gst_plugins_cache.json:
+ * gst/rtpmanager/gstrtphdrext-ntp.c:
+ * gst/rtpmanager/gstrtphdrext-ntp.h:
+ * gst/rtpmanager/gstrtpmanager.c:
+ * gst/rtpmanager/meson.build:
+ rtpmanager: Add header extension implementation for the 64-bit RFC6051 NTP header extension
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2132>
+
+2022-03-25 10:18:34 -0400 Xavier Claessens <xavier.claessens@collabora.com>
+
+ * meson.build:
+ Always define ENABLE_NLS
+ GLib guarantees libintl API is always available, provided by
+ proxy-libintl as last resort. GLib itself unconditionally define
+ ENABLE_NLS.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2028>
+
+2022-03-25 10:20:24 -0400 Xavier Claessens <xavier.claessens@collabora.com>
+
+ * gst-libs/gst/gettext.h:
+ * gst-libs/gst/gst-i18n-plugin.h:
+ Delete unused i18n headers
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2028>
+
+2022-03-25 09:59:23 -0400 Xavier Claessens <xavier.claessens@collabora.com>
+
+ * ext/adaptivedemux2/gstadaptivedemux-stream.c:
+ * ext/adaptivedemux2/gstadaptivedemux.c:
+ * ext/adaptivedemux2/mss/gstmssdemux.c:
+ * ext/flac/gstflacdec.c:
+ * ext/flac/gstflacelement.c:
+ * ext/jack/gstjackaudiosink.c:
+ * ext/jack/gstjackaudiosrc.c:
+ * ext/jpeg/gstjpegdec.c:
+ * ext/lame/gstlamemp3enc.c:
+ * ext/lame/plugin.c:
+ * ext/libpng/gstpngdec.c:
+ * ext/pulse/gstpulseelement.c:
+ * ext/pulse/pulsesink.c:
+ * ext/shout2/gstshout2.c:
+ * ext/soup/gstsoup.c:
+ * ext/soup/gstsoupelement.c:
+ * ext/soup/gstsouphttpsrc.c:
+ * ext/twolame/gsttwolamemp2enc.c:
+ * ext/wavpack/gstwavpackelement.c:
+ * gst/apetag/gstapedemux.c:
+ * gst/avi/gstavidemux.c:
+ * gst/avi/gstavielement.c:
+ * gst/avi/gstavimux.c:
+ * gst/icydemux/gsticydemux.c:
+ * gst/id3demux/gstid3demux.c:
+ * gst/isomp4/gstisomp4element.c:
+ * gst/isomp4/isomp4-plugin.c:
+ * gst/isomp4/qtdemux.c:
+ * gst/multifile/gstsplitmuxsrc.c:
+ * gst/rtsp/gstrtspelement.c:
+ * gst/rtsp/gstrtspsrc.c:
+ * gst/wavparse/gstwavparse.c:
+ * sys/oss/gstossaudio.c:
+ * sys/oss/gstossaudioelement.c:
+ * sys/oss/gstosshelper.c:
+ * sys/oss/gstosssink.c:
+ * sys/oss/gstosssrc.c:
+ * sys/oss4/oss4-audio.c:
+ * sys/oss4/oss4-sink.c:
+ * sys/oss4/oss4-source.c:
+ * sys/osxaudio/gstosxaudioringbuffer.c:
+ * sys/rpicamsrc/gstrpicamsrcdeviceprovider.c:
+ * sys/v4l2/gstv4l2.c:
+ * sys/v4l2/gstv4l2bufferpool.c:
+ * sys/v4l2/gstv4l2element.c:
+ * sys/v4l2/gstv4l2fwhtenc.c:
+ * sys/v4l2/gstv4l2h263enc.c:
+ * sys/v4l2/gstv4l2h264enc.c:
+ * sys/v4l2/gstv4l2h265enc.c:
+ * sys/v4l2/gstv4l2jpegenc.c:
+ * sys/v4l2/gstv4l2mpeg4enc.c:
+ * sys/v4l2/gstv4l2object.c:
+ * sys/v4l2/gstv4l2radio.c:
+ * sys/v4l2/gstv4l2sink.c:
+ * sys/v4l2/gstv4l2src.c:
+ * sys/v4l2/gstv4l2transform.c:
+ * sys/v4l2/gstv4l2videodec.c:
+ * sys/v4l2/gstv4l2videoenc.c:
+ * sys/v4l2/gstv4l2vp8enc.c:
+ * sys/v4l2/gstv4l2vp9enc.c:
+ * sys/v4l2/v4l2_calls.c:
+ * sys/ximage/gstximagesrc.c:
+ Replace gst-i18n-*.h with gi18n-lib.h
+ GLib guarantees libintl is always present, using proxy-libintl as
+ last resort. There is no need to mock gettex API any more.
+ This fix static build on Windows because G_INTL_STATIC_COMPILATION must
+ be defined before including libintl.h, and glib does it for us as part
+ as including glib.h.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2028>
+
+2022-04-19 09:52:51 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * tests/check/elements/dash_mpd.c:
+ tests: dash_mpd: fix linker issues with non-optimizing compilers
+ undefined reference to `download_request_take_buffer'
+ Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2117#note_1344646
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2228>
+
+2021-11-12 20:13:10 +0100 Ruben Gonzalez <rgonzalez@fluendo.com>
+
+ * docs/gst_plugins_cache.json:
+ gst_plugin_load_file: force plugin reload if diff filename
+ If a file includes a new version of a plugin that exits in the
+ registry, the output of gst-inspect is incorrect. The output has the
+ correct version but incorrect filename, and element description.
+ This seems to have also fixed some documentation issues.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1344>
+
+2022-03-11 17:11:50 +0100 Edward Hervey <edward@centricular.com>
+
+ * docs/gst_plugins_cache.json:
+ * docs/meson.build:
+ * ext/adaptivedemux2/dash/gstdash_debug.h:
+ * ext/adaptivedemux2/dash/gstdashdemux.c:
+ * ext/adaptivedemux2/dash/gstdashdemux.h:
+ * ext/adaptivedemux2/dash/gstmpdadaptationsetnode.c:
+ * ext/adaptivedemux2/dash/gstmpdadaptationsetnode.h:
+ * ext/adaptivedemux2/dash/gstmpdbaseurlnode.c:
+ * ext/adaptivedemux2/dash/gstmpdbaseurlnode.h:
+ * ext/adaptivedemux2/dash/gstmpdclient.c:
+ * ext/adaptivedemux2/dash/gstmpdclient.h:
+ * ext/adaptivedemux2/dash/gstmpdcontentcomponentnode.c:
+ * ext/adaptivedemux2/dash/gstmpdcontentcomponentnode.h:
+ * ext/adaptivedemux2/dash/gstmpddescriptortypenode.c:
+ * ext/adaptivedemux2/dash/gstmpddescriptortypenode.h:
+ * ext/adaptivedemux2/dash/gstmpdhelper.c:
+ * ext/adaptivedemux2/dash/gstmpdhelper.h:
+ * ext/adaptivedemux2/dash/gstmpdlocationnode.c:
+ * ext/adaptivedemux2/dash/gstmpdlocationnode.h:
+ * ext/adaptivedemux2/dash/gstmpdmetricsnode.c:
+ * ext/adaptivedemux2/dash/gstmpdmetricsnode.h:
+ * ext/adaptivedemux2/dash/gstmpdmetricsrangenode.c:
+ * ext/adaptivedemux2/dash/gstmpdmetricsrangenode.h:
+ * ext/adaptivedemux2/dash/gstmpdmultsegmentbasenode.c:
+ * ext/adaptivedemux2/dash/gstmpdmultsegmentbasenode.h:
+ * ext/adaptivedemux2/dash/gstmpdnode.c:
+ * ext/adaptivedemux2/dash/gstmpdnode.h:
+ * ext/adaptivedemux2/dash/gstmpdparser.c:
+ * ext/adaptivedemux2/dash/gstmpdparser.h:
+ * ext/adaptivedemux2/dash/gstmpdperiodnode.c:
+ * ext/adaptivedemux2/dash/gstmpdperiodnode.h:
+ * ext/adaptivedemux2/dash/gstmpdprograminformationnode.c:
+ * ext/adaptivedemux2/dash/gstmpdprograminformationnode.h:
+ * ext/adaptivedemux2/dash/gstmpdreportingnode.c:
+ * ext/adaptivedemux2/dash/gstmpdreportingnode.h:
+ * ext/adaptivedemux2/dash/gstmpdrepresentationbasenode.c:
+ * ext/adaptivedemux2/dash/gstmpdrepresentationbasenode.h:
+ * ext/adaptivedemux2/dash/gstmpdrepresentationnode.c:
+ * ext/adaptivedemux2/dash/gstmpdrepresentationnode.h:
+ * ext/adaptivedemux2/dash/gstmpdrootnode.c:
+ * ext/adaptivedemux2/dash/gstmpdrootnode.h:
+ * ext/adaptivedemux2/dash/gstmpdsegmentbasenode.c:
+ * ext/adaptivedemux2/dash/gstmpdsegmentbasenode.h:
+ * ext/adaptivedemux2/dash/gstmpdsegmentlistnode.c:
+ * ext/adaptivedemux2/dash/gstmpdsegmentlistnode.h:
+ * ext/adaptivedemux2/dash/gstmpdsegmenttemplatenode.c:
+ * ext/adaptivedemux2/dash/gstmpdsegmenttemplatenode.h:
+ * ext/adaptivedemux2/dash/gstmpdsegmenttimelinenode.c:
+ * ext/adaptivedemux2/dash/gstmpdsegmenttimelinenode.h:
+ * ext/adaptivedemux2/dash/gstmpdsegmenturlnode.c:
+ * ext/adaptivedemux2/dash/gstmpdsegmenturlnode.h:
+ * ext/adaptivedemux2/dash/gstmpdsnode.c:
+ * ext/adaptivedemux2/dash/gstmpdsnode.h:
+ * ext/adaptivedemux2/dash/gstmpdsubrepresentationnode.c:
+ * ext/adaptivedemux2/dash/gstmpdsubrepresentationnode.h:
+ * ext/adaptivedemux2/dash/gstmpdsubsetnode.c:
+ * ext/adaptivedemux2/dash/gstmpdsubsetnode.h:
+ * ext/adaptivedemux2/dash/gstmpdurltypenode.c:
+ * ext/adaptivedemux2/dash/gstmpdurltypenode.h:
+ * ext/adaptivedemux2/dash/gstmpdutctimingnode.c:
+ * ext/adaptivedemux2/dash/gstmpdutctimingnode.h:
+ * ext/adaptivedemux2/dash/gstxmlhelper.c:
+ * ext/adaptivedemux2/dash/gstxmlhelper.h:
+ * ext/adaptivedemux2/downloadhelper.c:
+ * ext/adaptivedemux2/downloadhelper.h:
+ * ext/adaptivedemux2/downloadrequest.c:
+ * ext/adaptivedemux2/downloadrequest.h:
+ * ext/adaptivedemux2/gstadaptivedemux-period.c:
+ * ext/adaptivedemux2/gstadaptivedemux-private.h:
+ * ext/adaptivedemux2/gstadaptivedemux-stream.c:
+ * ext/adaptivedemux2/gstadaptivedemux-track.c:
+ * ext/adaptivedemux2/gstadaptivedemux.c:
+ * ext/adaptivedemux2/gstadaptivedemux.h:
+ * ext/adaptivedemux2/gstadaptivedemuxutils.c:
+ * ext/adaptivedemux2/gstadaptivedemuxutils.h:
+ * ext/adaptivedemux2/gstisoff.c:
+ * ext/adaptivedemux2/gstisoff.h:
+ * ext/adaptivedemux2/hls/gsthlsdemux-util.c:
+ * ext/adaptivedemux2/hls/gsthlsdemux.c:
+ * ext/adaptivedemux2/hls/gsthlsdemux.h:
+ * ext/adaptivedemux2/hls/gsthlselement.c:
+ * ext/adaptivedemux2/hls/gsthlselements.h:
+ * ext/adaptivedemux2/hls/m3u8.c:
+ * ext/adaptivedemux2/hls/m3u8.h:
+ * ext/adaptivedemux2/hls/meson.build:
+ * ext/adaptivedemux2/meson.build:
+ * ext/adaptivedemux2/mss/gstmssdemux.c:
+ * ext/adaptivedemux2/mss/gstmssdemux.h:
+ * ext/adaptivedemux2/mss/gstmssfragmentparser.c:
+ * ext/adaptivedemux2/mss/gstmssfragmentparser.h:
+ * ext/adaptivedemux2/mss/gstmssmanifest.c:
+ * ext/adaptivedemux2/mss/gstmssmanifest.h:
+ * ext/adaptivedemux2/plugin.c:
+ * ext/meson.build:
+ * ext/soup/gstsouploader.c:
+ * ext/soup/gstsouploader.h:
+ * meson_options.txt:
+ * tests/check/elements/dash_mpd.c:
+ * tests/check/elements/hlsdemux_m3u8.c:
+ * tests/check/meson.build:
+ New HLS, DASH and MSS adaptive demuxer elements
+ This provides new HLS, DASH and MSS adaptive demuxer elements as a single plugin.
+ These elements offer many improvements over the legacy elements. They will only
+ work within a streams-aware context (`urisourcebin`, `uridecodebin3`,
+ `decodebin3`, `playbin3`, ...).
+ Stream selection and buffering is handled internally, this allows them to
+ directly manage the elementary streams and stream selection.
+ Authors:
+ * Edward Hervey <edward@centricular.com>
+ * Jan Schmidt <jan@centricular.com>
+ * Piotrek Brzeziński <piotr@centricular.com>
+ * Tim-Philipp Müller <tim@centricular.com>
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2117>
+
+2022-04-15 09:53:19 +0800 Hou Qi <qi.hou@nxp.com>
+
+ * sys/v4l2/gstv4l2videodec.c:
+ v4l2videodec: copy colorimetry values to output_state caps
+ This is to avoid transcoding negotiation fail between v4l2h265dec
+ and v4l2h264enc caused by colorimetry mismatch.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2192>
+
+2022-04-14 20:10:46 +1000 Brad Hards <bradh@frogmouth.net>
+
+ * tests/interactive/equalizer-test.c:
+ * tests/interactive/gdkpixbufoverlay-test.c:
+ * tests/interactive/gdkpixbufsink-test.c:
+ * tests/interactive/meson.build:
+ * tests/interactive/test-accurate-seek.c:
+ * tests/interactive/test-oss4.c:
+ * tests/interactive/test-segment-seeks.c:
+ * tests/interactive/videobox-test.c:
+ * tests/interactive/videocrop-test.c:
+ * tests/interactive/videocrop2-test.c:
+ * tests/interactive/ximagesrc-test.c:
+ * tests/meson.build:
+ tests: rename 'icles' subdir to be more descriptive
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2178>
+
+2022-04-07 11:12:47 +1000 Havard Graff <havard.graff@gmail.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: fix leak of channel_mapping
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2179>
+
+2022-04-13 10:17:15 +0800 Ming Qian <ming.qian@nxp.com>
+
+ * docs/gst_plugins_cache.json:
+ doc: Update cache after NV12_8L128 and NV12_10BE_8L128 addition
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2158>
+
+2022-04-12 14:15:01 +0800 Ming Qian <ming.qian@nxp.com>
+
+ * sys/v4l2/gstv4l2object.c:
+ v4l2: Add NV12_8L128 in gst_v4l2_object_get_caps_info
+ It should be included in
+ <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1379>
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2158>
+
+2022-04-12 10:35:26 +0800 Ming Qian <ming.qian@nxp.com>
+
+ * sys/v4l2/gstv4l2object.c:
+ v4l2: Add a missed break
+ Fix a typo that miss a break in the switch statement
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2158>
+
+2022-04-11 13:40:56 +0200 Robert Rosengren <robertr@axis.com>
+
+ * gst/rtpmanager/gstrtpbin.c:
+ rtpbin: Fix division by zero when using ts-offset-smoothing-factor
+ avg_ts_offset may cause division by zero when calculating potential
+ overflow protection. This fix will avoid the division.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2151>
+
+2022-04-06 09:46:30 -0400 Tristan Matthews <tmatth@videolan.org>
+
+ * gst/rtp/gstrtpopusdepay.c:
+ rtpopusdepay: assume 2 channels if sprop-stereo is missing
+ Fixes #1064
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2125>
+
+2022-03-11 15:13:21 +0100 Matthias Fuchs <matthias1.fuchs@zeiss.com>
+
+ * ext/qt/gstqtsrc.cc:
+ * ext/qt/qtwindow.cc:
+ * ext/qt/qtwindow.h:
+ qmlglsrc: Fix deadlock when stopping
+ This fix makes sure that streaming thread stops waiting when the
+ qmlglsrc element transitions from playing to paused.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2115>
+
+2022-03-14 17:20:38 +0100 Matthias Fuchs <matthias1.fuchs@zeiss.com>
+
+ * ext/qt/qtwindow.cc:
+ qmlglsrc: Fix missing depth & stencil buffer
+ Qt Quick primitives which have some kind of alpha blending
+ (transparency, rounded corners) are z-sorted by Qt and rendered in the
+ correct order. For opaque primitives Qt relies on the OpenGL depth
+ buffer to correctly determine the visibility of stacked elements.
+ This change enables the depth buffer to make sure that opaque primitives
+ are correctly z-stacked.
+ https://doc.qt.io/qt-6/qtquick-visualcanvas-scenegraph-renderer.html#opaque-primitives
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2114>
+
+2022-04-06 10:14:19 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/rtpmanager/rtpstats.h:
+ rtpstats: Remove non-existing twcc field docs from RTPPacketInfo and add missing field docs
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2121>
+
+2022-04-05 20:28:36 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/rtpmanager/rtpsession.h:
+ rtpsession: Remove unused twcc fields from the struct
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2121>
+
+2022-03-30 11:06:02 -0400 Xavier Claessens <xavier.claessens@collabora.com>
+
+ * meson.build:
+ Use gmodule-no-export-2.0
+ We don't need `-Wl,--export-dynamic`, that's used only for executables
+ that needs to export an API to be used by plugins they load.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2031>
+
+2022-03-25 15:00:20 -0400 Xavier Claessens <xavier.claessens@collabora.com>
+
+ * ext/qt/meson.build:
+ * ext/soup/meson.build:
+ * gst/imagefreeze/meson.build:
+ * gst/rtsp/meson.build:
+ * gst/shapewipe/meson.build:
+ * meson.build:
+ * tests/check/meson.build:
+ Remove glib and gobject dependencies everywhere
+ They are part of gst_dep already and we have to make sure to always have
+ gst_dep. The order in dependencies matters, because it is also the order
+ in which Meson will set -I args. We want gstreamer's config.h to take
+ precedence over glib's private config.h when it's a subproject.
+ While at it, remove useless fallback args for gmodule/gio dependencies,
+ only gstreamer core needs it.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2031>
+
+2022-03-31 23:41:41 +0200 Thibault Saunier <tsaunier@igalia.com>
+
+ * gst/debugutils/gstnavigationtest.c:
+ navigation: Rename parse_state to parse_modifier_state
+ `parse_state` sounds a bit weird and `parse_modifier_state` is clearer.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2087>
+
+2022-03-26 01:02:02 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * ext/soup/meson.build:
+ meson: Add some messages when selecting libsoup
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2032>
+
+2022-03-26 00:59:12 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * ext/soup/gstsouphttpsrc.c:
+ soup: Fix usage of symbols / defines that are gone in libsoup3
+ I am not sure about the SOUP_MESSAGE_OVERWRITE_CHUNKS change, but it
+ was definitely already broken when using libsoup-3.0 in a shared
+ build. souphttpsrc probably needs to be ported from SoupMessage to
+ SoupServerMessage when using libsoup-3.0.
+ Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1111
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2032>
+
+2022-03-26 00:56:04 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * ext/soup/gstsouploader.c:
+ * ext/soup/gstsouploader.h:
+ soup: Fix pre-processor macros in souploader for libsoup-3.0
+ Some of the preprocessor conditionals in the loader were very broken
+ with libsoup-3.0 + --default-library=static
+ Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1111
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2032>
+
+2022-03-28 18:12:03 +1100 Matthew Waters <matthew@centricular.com>
+
+ * sys/osxaudio/gstosxcoreaudio.c:
+ osxcoreaudio: fix unused-but-set warning
+ ../sys/osxaudio/gstosxcoreaudio.c:480:18: error: variable 'interleaved' set but not used [-Werror,-Wunused-but-set-variable]
+ gboolean sign, interleaved;
+ ^
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2046>
+
+2022-03-28 10:10:45 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * docs/gst_plugins_cache.json:
+ video-format: Move NV12_8L128 into the correct position in GST_VIDEO_FORMATS_ALL
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2045>
+
+2022-03-28 13:35:17 +1100 Matthew Waters <matthew@centricular.com>
+
+ * gst/deinterlace/tvtime/tomsmocomp/SearchLoopTop.inc:
+ deinterlace: silence unused-but-set werror from imported code
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2042>
+
+2022-03-28 09:50:38 +1100 Matthew Waters <matthew@centricular.com>
+
+ * sys/osxvideo/osxvideosink.m:
+ osxvideosink: fix unused-but-set-variable warning
+ ../sys/osxvideo/osxvideosink.m:859:11: error: variable 'data' set but not used [-Werror,-Wunused-but-set-variable]
+ guint8 *data, *readp, *writep;
+ ^
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2040>
+
+2022-03-25 11:42:03 -0300 Thibault Saunier <tsaunier@igalia.com>
+
+ * gst/debugutils/gstnavigationtest.c:
+ * gst/debugutils/gstnavigationtest.h:
+ navigationtest: Add some support for modifiers
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2010>
+
+2022-03-18 16:59:32 +0000 Thibault Saunier <tsaunier@igalia.com>
+
+ * ext/gtk/gtkgstbasewidget.c:
+ * ext/qt/qtitem.cc:
+ navigation: Add support for key Modifiers in all relevant events
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2010>
+
+2021-11-17 17:27:13 +1100 Matthew Waters <matthew@centricular.com>
+
+ * gst/rtpmanager/gstrtpptdemux.c:
+ rtpptdemux: fix leak of caps when ignoring a pt
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2025>
+
+2022-02-23 12:53:04 +0100 Vivienne Watermeier <vwatermeier@igalia.com>
+
+ * ext/qt/qtitem.cc:
+ * ext/qt/qtitem.h:
+ qt: Add touch event support
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1633>
+
+2022-02-21 20:16:06 +0100 Vivienne Watermeier <vwatermeier@igalia.com>
+
+ * ext/gtk/gtkgstbasewidget.c:
+ gtk: Add touch event support
+ Add a handler for touch events to gtkbasewidget.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1633>
+
+2022-02-02 15:46:57 +0100 Vivienne Watermeier <vwatermeier@igalia.com>
+
+ * docs/gst_plugins_cache.json:
+ * gst/debugutils/gstnavigationtest.c:
+ * gst/debugutils/gstnavigationtest.h:
+ navigationtest: Display touchscreen events, log all events
+ Represents touchscreen events as a trail of black squares, one for each
+ reported position. Additionally, this adds the `display-mouse` and
+ `display-touch` properties to toggle visibility of mouse/touchscreen
+ events, since touchscreens often emulate mouse events, as well as
+ logging for all received navigation events.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1633>
+
+2022-02-14 16:08:23 +0100 Vivienne Watermeier <vwatermeier@igalia.com>
+
+ * ext/gtk/gstgtkbasesink.c:
+ * ext/gtk/gtkgstbasewidget.c:
+ * ext/qt/gstqtsink.cc:
+ * ext/qt/qtitem.cc:
+ * ext/qt/qtitem.h:
+ * gst/debugutils/gstnavigationtest.c:
+ * gst/debugutils/gstnavseek.c:
+ * gst/videobox/gstvideobox.c:
+ * gst/videocrop/gstvideocrop.c:
+ * gst/videofilter/gstvideoflip.c:
+ all: Use new navigation interface and API
+ Use and implement the new navigation interface in all relevant sink elements,
+ and use API functions everywhere instead of directy accessing the event structure.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1633>
+
+2022-03-18 15:20:49 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/wavparse/gstwavparse.c:
+ * tests/check/elements/wavparse.c:
+ wavparse: handle query in any parse state
+ In order to create the stream_id, we need to
+ pass the query to the default query handler.
+ If the parse state is different from GST_WAVPARSE_DATA
+ the query should be passed to the default query
+ handler.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1987>
+
+2020-09-13 02:17:59 +0200 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+ * gst/flv/gstflvmux.c:
+ flvmux: Clean up aggregate's control flow
+ This unifies exits to go through a single out label. It mostly
+ simplifies how EOS is handled.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1035>
+
+2022-03-18 16:34:38 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * docs/gst_plugins_cache.json:
+ doc: Update cache after NV12_8L128 addition
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1379>
+
+2021-10-19 14:41:04 +0800 Ming Qian <ming.qian@nxp.com>
+
+ * sys/v4l2/ext/videodev2.h:
+ * sys/v4l2/gstv4l2object.c:
+ v4l2: Add NV12_8L128 and NV12_10BE_8L128
+ These formats are used by i.MX 8QXP/8QM VPU.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1379>
+
+2021-09-09 23:43:33 +1000 Matthew Waters <matthew@centricular.com>
+
+ * docs/gst_plugins_cache.json:
+ * gst/rtpmanager/gstrtprtxreceive.c:
+ * gst/rtpmanager/gstrtprtxreceive.h:
+ * gst/rtpmanager/gstrtprtxsend.c:
+ * gst/rtpmanager/gstrtprtxsend.h:
+ * tests/check/elements/rtprtx.c:
+ rtpmanager/rtx: implement initial support for reading/writing rid extensions
+ Two RTP Header extensions are very relevant for rtprtxsend/receive.
+ 1. "urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id": will always be removed
+ 2. "urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id": will be written
+ instead of the "rtp-stream-id" header extension.
+ Currently it's only a simple replacement of one header extension for
+ another however a future change would only add the relevant extension
+ based on some heuristics (like, video frames only on one of the rtp key
+ frame buffers, or only until the rtx ssrc has been validated by the peer)
+ in order to reduce the required bandwidth.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1759>
+
+2021-08-25 16:59:40 +1000 Matthew Waters <matthew@centricular.com>
+
+ * tests/check/elements/rtphdrextsdes.c:
+ * tests/check/meson.build:
+ test: add tests for sdes-based RTP header extensions
+ mid, stream id and repaired stream id.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1759>
+
+2021-08-25 16:58:16 +1000 Matthew Waters <matthew@centricular.com>
+
+ * docs/gst_plugins_cache.json:
+ * gst/rtpmanager/gstrtphdrext-repairedstreamid.c:
+ * gst/rtpmanager/gstrtphdrext-repairedstreamid.h:
+ * gst/rtpmanager/gstrtphdrext-streamid.c:
+ * gst/rtpmanager/gstrtphdrext-streamid.h:
+ * gst/rtpmanager/gstrtpmanager.c:
+ * gst/rtpmanager/meson.build:
+ rtpmanager: add support for RFC8852 (rid) RTP header extensions
+ Both for regular RID and for adding on a repaired (RTX) etc stream.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1759>
+
+2021-08-25 16:38:44 +1000 Matthew Waters <matthew@centricular.com>
+
+ * docs/gst_plugins_cache.json:
+ * gst/rtpmanager/gstrtphdrext-mid.c:
+ * gst/rtpmanager/gstrtphdrext-mid.h:
+ * gst/rtpmanager/gstrtpmanager.c:
+ * gst/rtpmanager/meson.build:
+ rtpmanager: add support for writing RFC8843 (BUNDLE mid) RTP header extension
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1759>
+
+2022-03-18 19:33:00 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * docs/gst_plugins_cache.json:
+ * gst/videocrop/gstvideocrop-private.h:
+ * gst/videocrop/gstvideocrop.c:
+ * gst/videocrop/gstvideocrop.h:
+ videocrop: Add support for v210
+ Like UYVY and similar formats this is rounding down to the start of the
+ previous macro-pixel to not mix up the different components.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1988>
+
+2022-03-18 19:06:05 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/videocrop/gstvideocrop.c:
+ videocrop: Use GST_ROUND_DOWN_2 instead of re-defining a local version
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1988>
+
+2022-03-18 19:03:57 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/videocrop/gstvideocrop.c:
+ * gst/videocrop/gstvideocrop.h:
+ videocrop: Rename PACKED_COMPLEX to PACKED_YVYU
+ It's not handling any kind of complex packed format, only formats that
+ are like YVYU.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1988>
+
+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>
+
+2022-03-15 15:44:17 +0900 Sangchul Lee <sc11.lee@samsung.com>
+
+ * gst/rtpmanager/rtpjitterbuffer.c:
+ rtpjitterbuffer: Fix invalid memory access in rtp_jitter_buffer_pop()
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1973>
+
+2022-03-14 16:19:33 +0800 Hou Qi <qi.hou@nxp.com>
+
+ * sys/v4l2/gstv4l2videodec.c:
+ v4l2videodec: set frame duration according to framerate
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1953>
+
+2022-03-15 13:49:09 +0000 Tim-Philipp Müller <tim@centricular.com>
+
+ * docs/gst_plugins_cache.json:
+ * gst/rtsp/gstrtspsrc.c:
+ * gst/rtsp/gstrtspsrc.h:
+ rtspsrc: proxy new "add-reference-timestamp-meta" property from rtpjitterbuffer
+ When syncing to an RFC7273 clock this will add the original
+ reconstructed reference clock timestamp to buffers in form
+ of a GstReferenceTimestampMeta.
+ This is useful when we want to process or analyse data based
+ on the original timestamps untainted by any local adjustments,
+ for example reconstruct AES67 audio streams with sample accuracy.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1964>
+
+2022-03-15 11:56:28 +0000 Tim-Philipp Müller <tim@centricular.com>
+
+ * docs/gst_plugins_cache.json:
+ * gst/rtpmanager/gstrtpbin.c:
+ * gst/rtpmanager/gstrtpbin.h:
+ rtpbin: proxy new "add-reference-timestamp-meta" property from rtpjitterbuffer
+ When syncing to an RFC7273 clock this will add the original
+ reconstructed reference clock timestamp to buffers in form
+ of a GstReferenceTimestampMeta.
+ This is useful when we want to process or analyse data based
+ on the original timestamps untainted by any local adjustments,
+ for example reconstruct AES67 audio streams with sample accuracy.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1964>
+
+2022-03-15 01:35:17 +0000 Tim-Philipp Müller <tim@centricular.com>
+
+ * docs/gst_plugins_cache.json:
+ * gst/rtpmanager/gstrtpjitterbuffer.c:
+ * gst/rtpmanager/rtpjitterbuffer.c:
+ * gst/rtpmanager/rtpjitterbuffer.h:
+ rtpjitterbuffer: add "add-reference-timestamp-meta" property
+ When syncing to an RFC7273 clock this will add the original
+ reconstructed reference clock timestamp to buffers in form
+ of a GstReferenceTimestampMeta.
+ This is useful when we want to process or analyse data based
+ on the original timestamps untainted by any local adjustments,
+ for example reconstruct AES67 audio streams with sample accuracy.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1964>
+
+2022-03-15 09:49:59 +0800 Hou Qi <qi.hou@nxp.com>
+
+ * sys/v4l2/gstv4l2videodec.c:
+ v4l2videodec: safely retrun from video_dec_loop with stream unlock
+ This is to avoid decoder hang when doing trick play between
+ different resolutions.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1960>
+
+2022-03-14 13:59:37 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/rtpmanager/rtpjitterbuffer.c:
+ rtpjitterbuffer: Improve accuracy of RFC7273 clock time calculations
+ Previously the result of the calculations included inaccuracies caused
+ by the NTP clock estimation, which caused the timestamps to jitter
+ +/- 1/clockrate.
+ By reorganizing the calculations it is possible to get rid of this
+ inaccuracy and calculate deterministic and exact packet timestamps based
+ on the actual NTP clock as long as the estimation is not off by more
+ than 2**31 clockrate units.
+ The only remaining inaccuracy that is introduced now is caused by the
+ conversion from the NTP clock to the pipeline clock.
+ Also split up debug output, demote many messages to the trace debug
+ level and output more intermediate results.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1955>
+
+2022-03-14 12:29:04 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * gst/rtpmanager/rtpsession.c:
+ * gst/rtpmanager/rtptwcc.c:
+ twcc: Add some logging to debug TWCC feedback
+ This should allow people to debug when TWCC feedback is not enabled
+ because they haven't set the extmap in the caps.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1952>
+
+2022-03-14 13:45:36 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * gst/rtpmanager/gstrtpsession.c:
+ twcc: Note that packet-loss-pct can count reordering as loss
+ This is difficult to encounter in ordinary networks, but is
+ encountered when using tc-netem to add random delays to packets, and
+ also when your UDP stream is bonded over multiple links with varying
+ characteristics.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1952>
+
+2017-08-11 16:33:23 +0200 Havard Graff <havard.graff@gmail.com>
+
+ * gst/rtpmanager/gstrtprtxsend.c:
+ * tests/check/elements/rtprtx.c:
+ rtprtxsend: don't require clock-rate in caps
+ For multiplexing, the rtpstreams you are multiplexing might not use
+ the same clock-rate.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1881>
+
+2016-11-04 11:47:20 +0100 Havard Graff <havard.graff@gmail.com>
+
+ * gst/rtpmanager/gstrtprtxsend.c:
+ * tests/check/elements/rtprtx.c:
+ rtprtxsend: don't start the task unless we are doing rtx
+ The rtxsend element can do pass-through when not enabled (no pt-map set)
+ and in those cases there is no point in starting an additional task
+ that does absolutely nothing.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1880>
+
+2016-06-27 14:28:06 +0200 Havard Graff <havard.graff@gmail.com>
+
+ * docs/gst_plugins_cache.json:
+ * gst/rtpmanager/gstrtprtxreceive.c:
+ * gst/rtpmanager/gstrtprtxreceive.h:
+ rtprtxreceive: add ssrc-map property
+ Mirroring the rtxsend, this allows the application to "pre-map" the
+ retransmission-ssrcs to the "real" ssrc, if this information is known.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1878>
+
+2019-09-08 15:54:08 +0200 Carlos Rafael Giani <crg7475@mailbox.org>
+
+ * ext/mpg123/gstmpg123audiodec.c:
+ * ext/mpg123/gstmpg123audiodec.h:
+ * gst/audioparsers/gstmpegaudioparse.c:
+ * tests/check/elements/mpg123audiodec.c:
+ * tests/files/sine-1009ms-1ch-32000hz-gapless-with-lame-tag.mp3:
+ mpg123: Add gapless playback support
+ Co-authored-by: Sebastian Dröge <sebastian@centricular.com>
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1028>
+
+2019-09-07 19:15:42 +0200 Carlos Rafael Giani <crg7475@mailbox.org>
+
+ * gst/audioparsers/gstmpegaudioparse.c:
+ * gst/audioparsers/gstmpegaudioparse.h:
+ * tests/check/elements/mpegaudioparse.c:
+ mpegaudioparse: Support gapless playback
+ Gapless playback is handled by adjusting buffer timestamps & durations
+ and by adding GstAudioClippingMeta.
+ Support for "Frankenstein" streams (= poorly stitched together streams)
+ is also added, so that gapless playback support doesn't prevent those
+ from being properly played.
+ Co-authored-by: Sebastian Dröge <sebastian@centricular.com>
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1028>
+
+2022-03-11 10:32:42 +0100 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+ * gst/deinterlace/tvtime/scalerbob.c:
+ deinterlace: scalerbob: Reduce latency to 0
+ We only need the current field, just like `linear`.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1926>
+
+2022-03-12 17:13:48 +0200 Vivia Nikolaidou <vivia@ahiru.eu>
+
+ * gst/deinterlace/yadif.c:
+ yadif: Fix CHECK macro for YUY2 format
+ Used to make comb artifacts for videotestsrc pattern=ball for YUY2
+ format only (not AYUV).
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1938>
+
+2022-03-10 17:03:45 +0900 Damian Hobson-Garcia <dhobsong@igel.co.jp>
+
+ * docs/gst_plugins_cache.json:
+ doc: New cropping parameters added to v4l2src
+ v4l2src add several new parameters to control cropping of
+ the captured video stream. Update the doc cache to reflect
+ this.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1089>
+
+2021-10-15 18:33:50 +0900 Damian Hobson-Garcia <dhobsong@igel.co.jp>
+
+ * tests/examples/v4l2/meson.build:
+ * tests/examples/v4l2/v4l2src-crop.c:
+ examples: v4l2: Add v4l2src crop example
+ Add a simple utility to illustrate how to set input cropping on v4l2src.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1089>
+
+2021-10-14 17:22:19 +0900 Damian Hobson-Garcia <dhobsong@igel.co.jp>
+
+ * sys/v4l2/gstv4l2src.c:
+ * sys/v4l2/gstv4l2src.h:
+ v4l2src: Add support for cropping at capture source input
+ Add properties to control input cropping in the V4L2 device.
+ The input cropping is applied before composing the result to the
+ capture buffer. By default the capture size will be set to the same
+ size as the crop region, but it can be scaled to a different output
+ frame size if supported by the V4L2 device.
+ If scaling is not supported, the cropped image will
+ be composed as is into the top-left corner of the capture buffer.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1089>
+
+2021-10-13 17:33:12 +0900 Damian Hobson-Garcia <dhobsong@igel.co.jp>
+
+ * sys/v4l2/gstv4l2object.c:
+ * sys/v4l2/gstv4l2object.h:
+ v4l2object: Add function to get crop regions from device
+ Get the current crop bounding region from the V4L2 device so
+ that it can be provided to applications and used to validate
+ crop settings. Also make the default crop region available so
+ that it can be used to reset the crop when appropriate.
+ Uses the selection API when available with fallback to the crop
+ API for older kernels.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1089>
+
+2021-09-30 17:56:56 +0900 Damian Hobson-Garcia <dhobsong@igel.co.jp>
+
+ * sys/v4l2/gstv4l2object.c:
+ * sys/v4l2/gstv4l2object.h:
+ * sys/v4l2/gstv4l2transform.c:
+ v4l2object: rename crop function to reflect its usage
+ The gst_v4l2_object_set_crop() is used for removing buffer
+ alignment padding. Give it a name that better reflects
+ that usage. This helps to distinguish from cropping of the
+ input image (e.g. cropping at the image sensor on a captre
+ device), which can be unrelated to the memory buffer padding,
+ especially if scaling is involved.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1089>
+
+2022-03-10 18:43:45 +0900 Sangchul Lee <sc11.lee@samsung.com>
+
+ * gst/rtp/gstrtpvp8depay.c:
+ rtpvp8depay: Fix crash when making 'GstRTPPacketLost' custom event
+ This patch fixes a seg.fault in gst_structure_new() with warnings as below.
+ GLib-GObject-WARNING **:
+ ../gobject/gtype.c:4330: type id '0' is invalid
+ GLib-GObject-WARNING **:
+ can't peek value table for type '<invalid>' which is not currently referenced
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1918>
+
+2022-03-04 18:58:56 +0100 Tomasz Andrzejak <andreiltd@gmail.com>
+
+ * gst/rtpmanager/gstrtpbin.c:
+ rtpbin: allow FEC elements with Always pads
+ This patch enable picking up FEC decoder or enocder that have
+ static repair packets pad.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1860>
+
+2022-03-09 12:17:11 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * ext/soup/gstsouploader.c:
+ soup: Load the runtime library, not the development library
+ libsoup-2.4.so / libsoup-3.0.so are symlinks installed by development
+ packages, they are not available at runtime.
+ Also eliminate G_MODULE_SUFFIX since it's not useful for us, and is
+ actually incorrect on macOS anyway.
+ Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1071
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1899>
+
+2019-07-10 17:21:01 +0200 Edward Hervey <edward@centricular.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Propagate stick events downstream when creating pads
+ If upstream provided a stream collection event before any pads were created,
+ make sure it's propagated downstream when pads are created.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1891>
+
+2021-02-01 16:07:08 +0100 Havard Graff <havard.graff@gmail.com>
+
+ * gst/rtpmanager/gstrtprtxsend.c:
+ rtprtxsend: if no rtx is present, don't expose a rtx-ssrc in caps
+ The point here is that rtpsession will create a new rtpsource when
+ the field "rtx-ssrc" is present, and when not doing rtx, that means
+ a random ssrc will create a new rtpsource that will be included in RTCP
+ messages for the current session.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1882>
+
+2016-06-22 14:48:59 +0200 Havard Graff <havard.graff@gmail.com>
+
+ * gst/rtpmanager/gstrtprtxsend.c:
+ rtprtxsend: don't process or warn if no map is set
+ This makes it more gentle when doing "pass-through"
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1879>
+
+2016-08-23 19:06:49 +0200 Mikhail Fludkov <misha@pexip.com>
+
+ * gst/rtpmanager/gstrtprtxreceive.c:
+ * tests/check/elements/rtprtx.c:
+ rtprtxreceive: fix crash when RTX payload has zero length
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1875>
+
+2016-06-26 22:25:46 +0200 Havard Graff <havard.graff@gmail.com>
+
+ * gst/rtpmanager/gstrtprtxreceive.c:
+ rtprtxreceive: allow passthrough and non-rtp buffers
+ To avoid mapping rtp buffers when RTX is not in use, and to not
+ do a full error on receiving a non-rtp buffer, since you have no control
+ of what a rouge sender might send you.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1874>
+
+2021-02-08 21:40:19 +0100 Havard Graff <havard@pexip.com>
+
+ * gst/rtpmanager/gstrtprtxreceive.c:
+ * gst/rtpmanager/gstrtprtxreceive.h:
+ * gst/rtpmanager/gstrtprtxsend.c:
+ * gst/rtpmanager/gstrtprtxsend.h:
+ rtprtx: don't access type-system per buffer
+ When doing only a single stream of audio/video this hardly matters,
+ but when doing many at the same time, the fact that you have to get
+ a hold of the glib global type-system lock every time you process a buffer,
+ means that there is a limit to how many streams you can process in
+ parallel.
+ Luckily the fix is very simple, by doing a cast rather than a full
+ type-check.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1873>
+
+2020-02-10 14:37:30 +0100 Havard Graff <havard@pexip.com>
+
+ * tests/check/elements/rtprtx.c:
+ rtprtx: signed/unsigned and style fixes
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1872>
+
+2022-03-03 13:47:05 +0800 Hou Qi <qi.hou@nxp.com>
+
+ * sys/v4l2/gstv4l2bufferpool.c:
+ v4l2bufferpool: Fix race condition between qbuf and pool streamoff
+ There is a chance that pool->buffers[index] sets BUFFER_STATE_QUEUED, but
+ it has not been queued yet which makes pool->buffers[index] still NULL.
+ At this time, if pool_streamff release all buffers with BUFFER_STATE_QUEUED
+ state regardless of whether the buffer is NULL or not, it will cause segfault.
+ To fix this, also check buffer when streamoff release buffer.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1842>
+
+2022-03-03 14:22:10 +0800 Hou Qi <qi.hou@nxp.com>
+
+ * gst/flv/gstflvmux.c:
+ flvmux: Add protection when unref GstFlvMuxPad
+ This is to avoid gst_object_unref: assertion 'object != NULL' failed.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1843>
+
+2022-03-04 14:57:30 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * docs/gst_plugins_cache.json:
+ doc: AV1 demuxers now expose their alignment
+ Update the chache accordingly.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1837>
+
+2022-03-02 16:31:24 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst/matroska/matroska-demux.c:
+ * gst/matroska/matroska-mux.c:
+ matroska: Fix AV1 alignment to TU
+ Matroska stores AV1 in temporal unit, so that all OBU sharing the same
+ timestamp are put together. This was previously just assumed, which isn't
+ safe now that we have more alignments.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1837>
+
+2022-03-02 16:24:38 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst/isomp4/gstqtmuxmap.c:
+ * gst/isomp4/qtdemux.c:
+ isomp4: Fix AV1 default alignment
+ ISOMP4 store TU (temporal units) worth of AV1. Expose this in the
+ caps to reduce overhead in the parser, and in the muxer to avoid
+ storing frames split in the wrong way.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1837>
+
+2022-02-07 17:51:39 -0500 Tristan Matthews <tmatth@videolan.org>
+
+ * gst/matroska/matroska-mux.c:
+ matroskamux: allow width+height caps changes for VP8/9
+ For VP8 and VP9, width+height changes are signalled inband.
+ Refs https://github.com/Kurento/bugtracker/issues/535 and
+ https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1047/diffs?commit
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1657>
+
+2022-02-07 16:41:40 -0500 Tristan Matthews <tmatth@videolan.org>
+
+ * gst/matroska/matroska-mux.c:
+ matroskamux: allow width + height changes for avc3|hev1
+ For avc3 and hev1, the intent was to allow more flexibility for caps changes
+ (see https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1047/diffs?commit_id=9bd8d608d5bae27ec5ff09e733f76ca32b17420c)
+ however width and resolution were previously omitted.
+ avc3 and hev1 specifically support changing stream-parameters on the fly, whereas avc1/hvc1 disallow in-band SPS.
+ This commit allows for changes to width and height for these which is in line with matroskamux's behaviour prior to 1.14.0.
+ Practically speaking, one use case where this is commonly seen is when capturing a WebRTC stream, as the browser will adapt the resolution live.
+ Suggested-by: Mathieu Duponchelle "<mathieu@centricular.com>"
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1657>
+
+2022-03-04 15:36:20 +0100 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+ * gst/deinterlace/gstdeinterlace.c:
+ deinterlace: Prevent race between _set_method and latency query
+ It's possible that the method is being manipulated while downstream
+ queries our latency, leading to crashes.
+ Prevent that from happening.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1854>
+
+2022-03-03 23:04:36 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * ext/soup/gstsouploader.c:
+ soup: Fix static build with MSVC
+ ../ext/soup/gstsouploader.c(818): error C4098: '_soup_session_send_async': 'void' function returning a value
+ It's technically a false warning, but that's how MSVC works, so fix
+ it.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1805>
+
+2022-03-03 00:37:57 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * ext/soup/meson.build:
+ soup: Fix pkgconfig generation and documentation
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1805>
+
+2022-03-02 23:22:39 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * ext/soup/meson.build:
+ soup: Fix static build when default_library=both
+ Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1007
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1805>
+
+2022-03-02 23:11:09 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * ext/soup/meson.build:
+ soup: Don't error out in static build unless option is enabled
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1805>
+
+2022-02-27 15:45:01 +0100 Philippe Normand <philn@igalia.com>
+
+ * ext/soup/gstsouploader.c:
+ soup: Lookup libsoup dylib files on Apple platforms
+ Fixes #1007
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1805>
+
+2021-10-15 15:32:22 +0900 Damian Hobson-Garcia <dhobsong@igel.co.jp>
+
+ * sys/v4l2/gstv4l2object.c:
+ v4l2src: Reset the compose window to the default after setting format
+ When the size of V4L2 capture or output is changes with VIDIOC_S_FMT,
+ the device is only required to update the compisition window to fit
+ inside the new frame size. This can result in captured data only being
+ updated on a portion of the frame after a resize.
+ Update the composition window to the default value determined by the
+ V4L2 device driver whenever the format is changed to make sure that
+ all image data is composed to its full size.
+ Fixes #765
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1806>
+
+2022-03-01 20:59:30 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/matroska/matroska-mux.c:
+ matroska-mux: Handle pixel-aspect-ratio caps field correctly when checking caps equality
+ Not having this field is equivalent with it being 1/1 so consider
+ it like that. The generic caps functions are not aware of these
+ semantics and would consider the caps different, causing a negotiation
+ failure when caps are changing from caps with to caps without or the
+ other way around.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1826>
+
+2022-03-01 20:56:43 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/matroska/matroska-mux.c:
+ matroska-mux: Handle multiview-mode/flags caps fields correctly when checking caps equality
+ Not having these fields is equivalent with them being mono/0 so consider
+ them like that. The generic caps functions are not aware of these
+ semantics and would consider the caps different, causing a negotiation
+ failure when caps are changing from caps with to caps without or the
+ other way around.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1826>
+
+2022-02-27 03:17:26 +1100 Jan Schmidt <jan@centricular.com>
+
+ * gst/matroska/matroska-mux.c:
+ matroska-mux: If a stream has a TITLE tag, use it for the name.
+ If a title tag is pushed to a pad, store it as the Track name.
+ This means that players will use it as the human readable
+ description of the track, instead of something generic like 'Video'
+ or 'Subtitle'
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1798>
+
+2022-02-27 02:39:28 +1100 Jan Schmidt <jan@centricular.com>
+
+ * gst/matroska/matroska-demux.c:
+ * gst/matroska/matroska-demux.h:
+ matroskademux: Don't parse Tracks element twice
+ If the tracks element was parsed from the SeekEntry, don't
+ parse it a second time and recreate tracks, as this
+ loses any tags that were read using the seek table.
+ If a genuinely new Tracks element is found, do read that
+ as it is needed for MSE support.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1798>
+
+2022-02-23 11:10:11 +0100 Sebastian Fricke <sebastian.fricke@collabora.com>
+
+ * README.md:
+ Maintain build instructions at a single location
+ Do not maintain similar build instructions within each gst-plugins-*
+ subproject and the subproject/gstreamer subproject. Use the build
+ instructions from the mono-repository and link to them via hyperlink.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1743>
+
+2022-03-01 00:12:56 +0200 Vivia Nikolaidou <vivia@ahiru.eu>
+
+ * gst/deinterlace/x86/yadif.asm:
+ yadif.asm: Fix improper usage of LOAD macro
+ LOAD macro relies in m7 being zero for interleaving purposes. Using LOAD
+ on the m7 register makes it interleave with its new content instead of
+ with 0.
+ The effect of this bug was bobbing on some static lines that appeared
+ over fast-moving content.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1816>
+
+2022-03-01 00:12:33 +0200 Vivia Nikolaidou <vivia@ahiru.eu>
+
+ * gst/deinterlace/x86/yadif.asm:
+ yadif.asm: Typo fixes in comments
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1816>
+
+2022-02-28 20:39:11 +0200 Vivia Nikolaidou <vivia@ahiru.eu>
+
+ * gst/deinterlace/yadif.c:
+ yadif: Fix bug in C implementation of CHECK
+ It was different compared to the corresponding part in both ffmpeg and
+ the asm implementation. Fixing this makes videotestsrc pattern=spokes
+ not jump at all when not using the asm optimisations.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1816>
+
+2021-10-19 16:10:06 +0800 Ming Qian <ming.qian@nxp.com>
+
+ * sys/v4l2/gstv4l2videodec.c:
+ * sys/v4l2/gstv4l2videodec.h:
+ v4l2videodec : enable resolution change
+ The dynamic resolution changes when
+ the sequence starts when the decoder detects a coded frame with one or
+ more of the following parameters different from those previously
+ established (and reflected by corresponding queries):
+ 1.coded resolution (OUTPUT width and height),
+ 2.visible resolution (selection rectangles),
+ 3.the minimum number of buffers needed for decoding,
+ 4.bit-depth of the bitstream has been changed.
+ Although gstreamer parser has parsed the stream resolution.
+ but there are some case that we need to handle resolution change event.
+ 1. bit-depth is different from the negotiated format.
+ 2. the capture buffer count can meet the demand
+ 3. there are some hardware limitations that the decoded resolution may
+ be larger than the display size. For example, the stream size is
+ 1920x1080, but some vpu may decode it to 1920x1088.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1381>
+
+2021-10-26 10:03:42 +0800 Ming Qian <ming.qian@nxp.com>
+
+ * sys/v4l2/gstv4l2object.c:
+ * sys/v4l2/gstv4l2object.h:
+ * sys/v4l2/gstv4l2videodec.c:
+ v4l2videodec : refactor the setup process of capture
+ v4l2videodec do some refactoring so that it can support
+ dynamic resolution change event.
+ 1.wrap the setup process of capture as a function,
+ as decoder need setup the capture again when
+ dynamic resolution change event is received.
+ 2.move the function "remove_padding"
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1381>
+
+2022-02-22 11:18:53 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/rtp/gstrtpac3pay.c:
+ * gst/rtp/gstrtpamrpay.c:
+ * gst/rtp/gstrtpdvpay.c:
+ * gst/rtp/gstrtpg723pay.c:
+ * gst/rtp/gstrtpg729pay.c:
+ * gst/rtp/gstrtpgstpay.c:
+ * gst/rtp/gstrtph261pay.c:
+ * gst/rtp/gstrtph263pay.c:
+ * gst/rtp/gstrtph263ppay.c:
+ * gst/rtp/gstrtph264pay.c:
+ * gst/rtp/gstrtph265pay.c:
+ * gst/rtp/gstrtpj2kpay.c:
+ * gst/rtp/gstrtpjpegpay.c:
+ * gst/rtp/gstrtpklvpay.c:
+ * gst/rtp/gstrtpmp4apay.c:
+ * gst/rtp/gstrtpmp4gpay.c:
+ * gst/rtp/gstrtpmp4vpay.c:
+ * gst/rtp/gstrtpmpapay.c:
+ * gst/rtp/gstrtpmpvpay.c:
+ * gst/rtp/gstrtpreddec.c:
+ * gst/rtp/gstrtpvp8pay.c:
+ * gst/rtp/gstrtpvp9pay.c:
+ * gst/rtp/gstrtpvrawpay.c:
+ * gst/rtp/rtpulpfeccommon.c:
+ * tests/check/elements/rtpred.c:
+ rtp: In payloaders map the RTP marker flag to the corresponding buffer flag
+ This allows downstream of a payloader to know the RTP header's marker
+ flag without first having to map the buffer and parse the RTP header.
+ Especially inside RTP header extension implementations this can be
+ useful to decide which packet corresponds to e.g. the last packet of a
+ video frame.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1776>
+
+2021-12-06 12:49:18 -0500 Joseph Donofry <rubberduckie3554@gmail.com>
+
+ * sys/osxaudio/gstosxaudiodeviceprovider.c:
+ osxaudiosrc: Support a device as both input and output
+ osxaudiodeviceprovider now probes devices more than once to determine
+ if the device can function as both an input AND and output device.
+ Previously, if the device provider detected that a device had any output
+ capabilities, it was treated solely as an Audio/Sink. This causes issues
+ that have both input and output capabilities (for example, USB interfaces
+ for professional audio have both input and output channels). Such devices
+ are now listed as both an Audio/Sink as well as an Audio/Source.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1385>
+
+2022-02-24 20:28:23 +0530 Sanchayan Maity <sanchayan@asymptotic.io>
+
+ * docs/gst_plugins_cache.json:
+ * gst/rtp/gstrtpldacpay.c:
+ * gst/rtp/gstrtpldacpay.h:
+ rtp: ldac: Set frame count information in payload
+ The RTP payload seems to be required as it carries the frame count
+ information. Also, gst_rtp_base_payload_allocate_output_buffer had
+ the second argument incorrect.
+ Strangely some devices like Shanling MP4 and Sony XM3 would still
+ work without this while some like the Sony XM4 do not.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1797>
+
+2022-02-21 11:37:26 -0500 Xavier Claessens <xavier.claessens@collabora.com>
+
+ * ext/vpx/meson.build:
+ * gst/equalizer/meson.build:
+ * gst/isomp4/meson.build:
+ devenv: Add some missing GStreamer specific env variables
+ This should make "meson devenv" closer to what "gst-env.py" sets.
+ - GST_VALIDATE_SCENARIOS_PATH
+ - GST_VALIDATE_APPS_DIR
+ - GST_OMX_CONFIG_DIR
+ - GST_ENCODING_TARGET_PATH
+ - GST_PRESET_PATH
+ - GST_PLUGIN_SCANNER
+ - GST_PTP_HELPER
+ - _GI_OVERRIDES_PATH
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1768>
+
+2022-02-25 12:44:26 +0100 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+ * gst/deinterlace/tvtime/greedyh.c:
+ deinterlace: greedyh: Stop adding 2 to cur_field_idx
+ Just a simplification.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1790>
+
+2022-02-24 17:36:40 +0100 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+ * gst/deinterlace/tvtime/greedyh.c:
+ deinterlace: greedyh: Use _plane in _packed, fix planar formats
+ This greatly reduces code duplication. It also exposed the cause for
+ planar formats not being properly deinterlaced:
+ The planar path was missing the initial offset adjustment that the
+ packed path did to `L2` and `L2P` in the case of an even field, which
+ caused it to select the wrong weave lines every other field.
+ Add those offsets in `_plane`.
+ Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1047
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1790>
+
+2022-02-25 12:39:31 +0100 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+ * gst/deinterlace/tvtime/greedyh.c:
+ deinterlace: greedyh: Rename _planar_plane to _plane
+ As well as `i` to `plane`.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1790>
+
+2022-02-25 12:36:17 +0100 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+ * gst/deinterlace/tvtime/greedyh.c:
+ deinterlace: greedyh: Move code from _planar into _planar_plane
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1790>
+
+2022-02-25 12:30:21 +0100 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+ * gst/deinterlace/tvtime/greedyh.c:
+ deinterlace: greedyh: Move _planar_plane upwards
+ In preparation of refactoring. No functional change.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1790>
+
+2022-02-22 10:13:28 +0100 Guillaume Desmottes <guillaume.desmottes@onestream.live>
+
+ * gst/rtpmanager/rtpsource.c:
+ rtpsource: fix rtp_source_get_nack_deadlines doc
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1775>
+
+2022-02-21 13:27:06 +1100 Matthew Waters <matthew@centricular.com>
+
+ * gst/rtp/gstrtpulpfecenc.c:
+ ulpfecenc: slightly safer dispose impl
+ Technically dispose can be called more than once (even if gstelement is
+ not actually set up to do that) so need to protect against that.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1761>
+
+2022-02-21 13:24:07 +1100 Matthew Waters <matthew@centricular.com>
+
+ * gst/rtp/gstrtpulpfecenc.c:
+ ulpfecenc: fix unmatched free() call
+ One must always match a g_slice_new with a g_slice_free and a g_new with
+ a g_free. This was not the case for the internal ctx struct.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1761>
+
+2021-11-09 17:37:24 +1100 Matthew Waters <matthew@centricular.com>
+
+ * gst/rtp/gstrtpulpfecenc.c:
+ rtpulpfecenc: add some debug logging
+ Like, what configuration we are using or whether a fec packet is
+ generated.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1761>
+
+2022-02-18 15:23:13 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * gst/matroska/matroska-demux.c:
+ matroska-demux: Emit a warning when no codec data found
+ It is bad if an mkv file does not have codec data for the ProRes
+ variant, so we should emit a warning. ffmpeg does the same thing.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1739>
+
+2022-02-20 15:20:07 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * docs/gst_plugins_cache.json:
+ doc: Add NV12_16L32S into the cache
+ Autogenerated by CI
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1567>
+
+2022-01-26 10:06:50 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/gstv4l2transform.c:
+ v4l2transform: Handle caps changes
+ As this element is single threaded, we only need to stop the objects to
+ allow changing the format again. Fixes assertion notably on shutdown and
+ on some other situation where the format may be set twice without
+ actually activating the element.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1567>
+
+2022-01-26 09:55:09 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/gstv4l2object.c:
+ v4l2object: Avoid crash on early failure
+ This happens while an external error lead to an early shutdown.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1567>
+
+2022-01-25 14:34:32 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/gstv4l2object.c:
+ video4linux2: Add MM21 support
+ This enables mtk-vcodec and MDP driver from mainline Linux kernel.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1567>
+
+2022-01-25 14:08:47 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/gstv4l2bufferpool.c:
+ * sys/v4l2/gstv4l2object.c:
+ * sys/v4l2/gstv4l2object.h:
+ Port plugins to gst_video_format_info_extrapolate_stride()
+ This reduces code duplication and simplify addition of new
+ pixel formats into related plugins.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1567>
+
+2022-02-02 12:49:29 +0100 Rouven Czerwinski <rouven@czerwinskis.de>
+
+ * sys/v4l2/gstv4l2tuner.c:
+ gstv4l2tuner: return NULL if no norm set
+ If the video4linux device supports norms but has no norm set, norm is
+ returned as an uninitialized variable after the ioctl call, leading to
+ gst_v4l2_tuner_get_norm_by_std_id() returning a random norm from the
+ supported norms. Catch this case and instead return NULL to indicate
+ that no norm is setup.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1625>
+
+2022-01-14 23:42:27 -0600 Tim Mooney <Tim.Mooney@ndsu.edu>
+
+ * sys/v4l2/ext/types-compat.h:
+ v4l2: include <sys/ioccom.h> on Illumos
+ Needed for _IOR/_IORW
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1524>
+
+2022-02-17 17:36:22 +0100 Sebastian Wick <sebastian.wick@redhat.com>
+
+ * gst/matroska/matroska-demux.c:
+ matroska: default prores fourcc apcn
+ If there is no codec private data for prores it should default to Apple
+ ProRes 422 Standard Definition (apcn). Can be tested with
+ strobe_scientist.mkv from
+ https://developers.google.com/media/vp9/hdr-encoding
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1734>
+
+2021-11-16 17:35:25 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Do not send unnecessary GAP events
+ Each stream may have its own segment timeline
+ (i.g., different segment.start or segment.base)
+ depending on edit-list and composition-to-decode atom.
+ Make sure whether time position of a stream has been actually
+ far behind than that of current target stream.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1352>
+
+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>
+
+2021-04-08 12:18:09 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/isomp4/gstqtmux.c:
+ qtmux: Don't post an error message if pushing a sample failed with FLUSHING
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1711>
+
+2022-02-11 21:35:54 +0100 Heiko Becker <heirecka@exherbo.org>
+
+ * ext/lame/meson.build:
+ meson: Don't build lame plugin with -Dlame=disabled
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1686>
+
+2022-02-11 23:55:57 +0100 Marek Vasut <marex@denx.de>
+
+ * ext/jpeg/gstjpegdec.c:
+ jpegdec: Pull row_stride from GST_VIDEO_FRAME_PLANE_STRIDE()
+ The libjpeg-turbo internal state might not be correctly initialized for
+ the first frame in a stream, pull the frame stride from gstreamer frame
+ metadata instead, which is correct even for the first frame, and which
+ makes this code consistent with the surrounding lines.
+ Fixes: e6d83d8f96 ("jpegdec: Support libjpeg-turbo colorspace conversion")
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1687>
+
+2022-02-11 23:44:24 +0100 Marek Vasut <marex@denx.de>
+
+ * ext/jpeg/gstjpegdec.c:
+ jpegdec: Call gst_jpeg_turbo_parse_ext_fmt_convert() before jpeg_start_decompress()
+ It is imperative that the libjpeg-turbo state is properly initialized
+ before jpeg_start_decompress() is called. Make sure cinfo.out_color_space
+ and cinfo.raw_data_out are set to their final values matching their peer
+ caps before calling jpeg_start_decompress().
+ Fixes: e6d83d8f96 ("jpegdec: Support libjpeg-turbo colorspace conversion")
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1687>
+
+2022-02-11 23:44:20 +0100 Marek Vasut <marex@denx.de>
+
+ * ext/jpeg/gstjpegdec.c:
+ jpegdec: Factor out gst_jpeg_turbo_parse_ext_fmt_convert()
+ Pull out peer caps checking code into gst_jpeg_turbo_parse_ext_fmt_convert().
+ This code is used by libjpeg-turbo extras to determine whether peer is capable
+ of handling buffers into which libjpeg-turbo can directly decode data. This
+ kind of check must be performed before jpeg_start_decompress() is called in
+ gst_jpeg_dec_prepare_decode() as well as in gst_jpeg_dec_negotiate(), hence
+ the common code.
+ This commit does modify the code a little to make it easier to call from both
+ call sites without much duplication, hence the extra `if (*clrspc)` test.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1687>
+
+2022-02-11 23:29:27 +0100 Marek Vasut <marex@denx.de>
+
+ * ext/jpeg/gstjpegdec.c:
+ Revert "jpegdec: only allow conversions from RGB"
+ This reverts commit 2aa2477208c029b0e1b8232d69f4f99a3bf1d473.
+ The commit is completely wrong, libjpeg-turbo is perfectly capable
+ of decoding I420 (YUV) to RGB. The test case provided alongside the
+ aforementioned commit passes without this revert because it decodes
+ image of JCS_YCrCb color space, so the new `if (clrspc == JCS_RGB)`
+ condition is false on that image, and the libjpeg-turbo decoding
+ does not get used. The real bug is hidden by that commit.
+ The real problem is in the call order of gst_jpeg_dec_prepare_decode()
+ and gst_jpeg_dec_negotiate(). The gst_jpeg_dec_prepare_decode() calls
+ jpeg_start_decompress() which sets up internal state of the libjpeg,
+ however, neither cinfo.out_color_space nor cinfo.raw_data_out are
+ set correctly yet. Those two are set up in gst_jpeg_dec_negotiate()
+ which is called a bit later. Therefore, the real fix is the set up
+ cinfo.out_color_space and cinfo.raw_data_out before calling
+ jpeg_start_decompress(). This is however a separate patch.
+ Fixes: 2aa2477208 ("jpegdec: only allow conversions from RGB")
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1687>
+
+2022-02-01 14:28:24 +0100 Bastien Nocera <hadess@hadess.net>
+
+ * ext/gtk/gtkgstglwidget.c:
+ gtk: Fix rotation not being applied when paused
+ The video wouldn't be redrawn immediately when a rotation was applied
+ but the pipeline was paused, as no new buffers were scheduled to be
+ displayed.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1618>
+
+2022-02-01 14:26:02 +0100 Bastien Nocera <hadess@hadess.net>
+
+ * ext/gtk/gtkgstbasewidget.c:
+ * ext/gtk/gtkgstbasewidget.h:
+ gtk: Add a way to queue redrawing the base GTK widget
+ This will be used to request a redraw of the GTK widget should the
+ display be changed using properties not directly handled by the base GTK
+ widget, but by one of its descendants.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1618>
+
+2022-01-18 17:53:30 +0100 Robert Rosengren <robertr@axis.com>
+
+ * gst/rtpmanager/gstrtpbin.c:
+ rtpbin: Safer ts-offset-smoothing-factor calculation
+ Protect the ts-offset-smoothing-factor calculation from overflow. Output
+ warning and fallback to ts-offset if it is detected.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1409>
+
+2021-11-23 09:03:28 +0100 Robert Rosengren <robertr@axis.com>
+
+ * docs/gst_plugins_cache.json:
+ * gst/rtpmanager/gstrtpbin.c:
+ * gst/rtpmanager/gstrtpbin.h:
+ rtpbin: add ts-offset-smoothing-factor property
+ Add property to set the TS offset smoothing factor and set default value
+ to not use it.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1409>
+
+2019-02-26 16:39:55 +0100 Danny Smith <dannys@axis.com>
+
+ * gst/rtpmanager/gstrtpbin.c:
+ rtpbin: applied smoothing to jittery sender time-stamps
+ Applying a moving average filter to the timestamp offsets
+ for smoothing jittery and preventing aggressive skew handling.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1409>
+
+2018-05-29 16:24:02 +0200 Danny Smith <dannys@axis.com>
+
+ * docs/gst_plugins_cache.json:
+ * gst/rtpmanager/gstrtpbin.c:
+ * gst/rtpmanager/gstrtpbin.h:
+ rtpbin: added option for setting min_ts_offset in ntp-sync mode
+ Constantly updating the ts_offset results in audiable glitches
+ when streaming audio using ntp-sync=true. By requiring a minimum
+ offset before updating ts_offset this can be mitigated. Added a
+ parameter which can be used to set min_ts_offset in ntp-sync mode.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1409>
+
+2022-02-04 11:15:47 +0000 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/1635>
+
+=== release 1.20.0 ===
+
+2022-02-03 19:53:25 +0000 Tim-Philipp Müller <tim@centricular.com>
+
+ * ChangeLog:
+ * 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
+