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