X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=subprojects%2Fgst-plugins-good%2FChangeLog;h=5db352d7e8e869a93c63eb8eed952c3d658fd03d;hb=ffebd52e468bcf6e2a8043e6f2e24c07472d9b7c;hp=f997cc95b774a3dc6c080c536d74367015d5fb85;hpb=5ff769d731e97fa05796f3ea32e039d267ad4f2f;p=platform%2Fupstream%2Fgstreamer.git diff --git a/subprojects/gst-plugins-good/ChangeLog b/subprojects/gst-plugins-good/ChangeLog index f997cc9..5db352d 100644 --- a/subprojects/gst-plugins-good/ChangeLog +++ b/subprojects/gst-plugins-good/ChangeLog @@ -1,3 +1,1372 @@ +=== release 1.20.0 === + +2022-02-03 19:53:25 +0000 Tim-Philipp Müller + + * 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 + + * ChangeLog: + Update ChangeLogs for 1.20.0 + +2022-02-01 05:07:04 +0530 Nirbheek Chauhan + + * 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: + +2022-01-30 19:06:29 +0530 Nirbheek Chauhan + + * 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: + +2022-01-30 03:56:14 +0530 Nirbheek Chauhan + + * 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: + +2022-01-28 23:15:28 +0530 Nirbheek Chauhan + + * 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: + +2022-01-29 12:56:22 +0200 Sebastian Dröge + + * 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: + +2022-01-29 12:55:30 +0200 Sebastian Dröge + + * 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: + +2022-01-29 12:54:23 +0200 Sebastian Dröge + + * 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: + +=== release 1.19.90 === + +2022-01-28 14:28:35 +0000 Tim-Philipp Müller + + * 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 + + * ChangeLog: + Update ChangeLogs for 1.19.90 + +2022-01-28 15:47:44 +0200 Sebastian Dröge + + * ext/soup/gstsouphttpclientsink.c: + souphttpsink: Protect against spurious wakeups during startup + Part-of: + +2022-01-28 15:33:04 +0200 Sebastian Dröge + + * 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: + +2022-01-28 15:31:55 +0200 Sebastian Dröge + + * 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: + +2022-01-28 15:31:25 +0200 Sebastian Dröge + + * ext/soup/gstsouphttpsrc.c: + souphttpsrc: Don't set boolean to FALSE right after checking that it is FALSE + Part-of: + +2022-01-28 15:30:56 +0200 Sebastian Dröge + + * ext/soup/gstsouphttpsrc.c: + souphttpsrc: soup_session_new_with_options() can't fail with NULL + So don't check for it. + Part-of: + +2022-01-27 16:28:48 +0100 Stéphane Cerveau + + * gst/autodetect/gstautodetect.h: + autodetect: fix debug init category + Since the split of elements, the debug category + was default for autodetect. + Part-of: + +2022-01-21 16:09:30 +0100 Daniel Kolesa + + * 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: + +2022-01-27 01:38:39 +0000 Tim-Philipp Müller + + * po/de.po: + * po/fr.po: + * po/ro.po: + gst-plugins-good: update translations + Part-of: + +2022-01-26 11:22:31 +0530 Nirbheek Chauhan + + * 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: + +2022-01-24 10:45:33 +0200 Sebastian Dröge + + * 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: + +2022-01-25 15:05:47 +0530 Nirbheek Chauhan + + * 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: + +2022-01-21 14:13:12 -0500 Nicolas Dufresne + + * 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: + +2022-01-17 11:44:47 -0500 Nicolas Dufresne + + * 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: + +2022-01-16 14:41:41 +0000 Philippe Normand + + * 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: + +2022-01-16 14:40:11 +0000 Philippe Normand + + * ext/soup/gstsoupelement.c: + soup: Initialize debug category before use + Part-of: + +2022-01-16 14:39:42 +0000 Philippe Normand + + * ext/soup/gstsouploader.c: + soup: Fix return types for a couple VTable functions + Part-of: + +2022-01-14 19:53:29 +0530 Nirbheek Chauhan + + * ext/cairo/meson.build: + meson: Build cairo subproject when unavailable on the system + Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/952 + Part-of: + +2022-01-20 17:59:30 +0100 Aleksandar Topic + + * 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: + +2021-05-07 18:22:06 +0200 Bastien Nocera + + * 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: + +2021-10-13 15:33:14 +0200 Bastien Nocera + + * 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: + +2021-10-13 15:38:52 +0200 Bastien Nocera + + * 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: + +2021-05-11 11:28:57 +0200 Bastien Nocera + + * 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: + +2021-05-07 18:19:55 +0200 Bastien Nocera + + * ext/gtk/gstgtkbasesink.c: + * ext/gtk/gtkgstbasewidget.c: + gtk: Rename display pixel aspect ratio related constants + Part-of: + +2021-05-07 18:16:30 +0200 Bastien Nocera + + * 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: + +2022-01-05 02:07:59 +0530 Nirbheek Chauhan + + * 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: + +2021-12-30 16:31:33 +0000 Heinrich Kruger + + * 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: + +2021-12-24 14:52:38 +0900 Jeongki Kim + + * gst/rtp/gstrtpg726depay.c: + rtpg726depay: fix endian conversion + Part-of: + +2021-12-23 14:29:55 +0000 Corentin Damman + + * tests/check/elements/rtpjitterbuffer.c: + rtpjitterbuffer: fix typo in tests + Part-of: + +2021-12-20 09:28:50 +0000 Florian Zwoch + + * 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: + +2021-12-07 23:48:39 +0100 Mathieu Duponchelle + + * 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: + +2021-12-07 23:43:21 +0100 Mathieu Duponchelle + + * 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: + +2021-12-03 02:52:06 +0100 Mathieu Duponchelle + + * 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: + +2021-12-02 13:32:33 +0000 Thibault Saunier + + * 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: + +2021-12-10 16:08:27 +0100 Jakub Adam + + * 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: + +2021-12-10 17:36:30 +0100 Célestin Marot + + * 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: + +2021-12-06 15:37:06 +0100 Guillaume Desmottes + + * 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: + +2021-11-29 15:35:36 +0100 Wim Taymans + + * 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: + +2021-11-23 20:54:57 +0100 Mathieu Duponchelle + + * 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: + +2021-11-12 13:54:59 +0100 Jean Felder + + * ext/taglib/gstid3v2mux.cc: + id3v2mux: Map GST_TAG_MUSICBRAINZ_RELEASETRACKID + Part-of: + +2021-11-12 13:51:56 +0100 Jean Felder + + * ext/taglib/gstid3v2mux.cc: + id3v2mux: Map GST_TAG_MUSICBRAINZ_RELEASEGROUPID + Part-of: + +2021-11-18 16:27:17 +0000 Tobias Reineke + + * 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: + +2021-11-15 14:39:14 +1100 Matthew Waters + + * 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: + +2021-11-01 10:08:32 +0700 Trung Do + + * 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: + +2021-11-09 19:41:14 +0100 Mathieu Duponchelle + + * 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: + +2021-10-30 01:18:18 +0200 Mathieu Duponchelle + + * 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: + +2021-11-12 17:59:22 +0200 Sebastian Dröge + + * gst/isomp4/qtdemux.c: + qtdemux: Log cslg_shift that was determined + Part-of: + +2021-11-12 13:00:56 +0200 Sebastian Dröge + + * 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: + +2021-11-12 12:46:56 +0200 Sebastian Dröge + + * 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: + +2021-11-12 12:39:17 +0200 Sebastian Dröge + + * 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: + +2021-11-12 11:36:31 +0200 Sebastian Dröge + + * gst/isomp4/qtdemux.h: + qtdemux: Add a comment why only positive cslg shifts are considered + Part-of: + +2021-11-02 18:38:39 +0200 Sebastian Dröge + + * gst/isomp4/qtdemux.c: + qtdemux: Only adjust segment.stop by cslg_shift if stop is not -1 + Part-of: + +2021-11-02 18:29:53 +0200 Sebastian Dröge + + * gst/isomp4/qtdemux.c: + qtdemux: Handle negative composition offsets in the trun box the same way as for non-fragmented streams + Part-of: + +2021-11-02 17:43:17 +0200 Sebastian Dröge + + * 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: + +2021-11-02 17:41:01 +0200 Sebastian Dröge + + * 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: + +2021-11-02 17:54:46 +0200 Sebastian Dröge + + * gst/isomp4/qtdemux.c: + qtdemux: Don't free cslg data that we don't own on corrupt files + Part-of: + +2021-05-07 10:44:15 +0200 Rafał Dzięgiel + + * 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: + +2021-11-12 11:28:23 +0100 Rafał Dzięgiel + + * 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: + +2021-11-11 19:11:25 +0000 Tim-Philipp Müller + + * ext/cairo/gstcairooverlay.c: + * gst/equalizer/gstiirequalizernbands.c: + docs: fix unnecessary ampersand, < and > escaping in code blocks + Part-of: + +2021-11-12 03:17:44 +0100 Mathieu Duponchelle + + * 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: + +2021-11-11 15:49:19 +1100 Matthew Waters + + * 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: + +2021-09-27 16:52:22 +0100 James Cowgill + + * 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: + +2021-11-09 15:10:06 +1100 Matthew Waters + + * 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: + +2021-11-09 21:20:19 +0800 Zhao, Gang + + * 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: + +2021-11-09 13:36:28 +0800 Haihua Hu + + * 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: + +2021-11-06 16:48:20 +0800 Zhao, Gang + + * 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: + +2021-10-05 18:07:06 +0100 Joe Todd + + * sys/osxaudio/gstosxcoreaudio.h: + osxaudio: Increase max channels to 64 + Part-of: + +2021-11-05 15:17:20 +0530 Sanchayan Maity + + * gst/imagefreeze/gstimagefreeze.c: + imagefreeze: Only set caps if they do not match current caps + Part-of: + +2021-11-04 16:04:30 +0200 Sebastian Dröge + + * 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: + +2021-11-03 18:44:03 +0000 Tim-Philipp Müller + + * 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 + + * 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 + + * ChangeLog: + Update ChangeLogs for 1.19.3 + +2021-11-02 16:46:08 +0200 Sebastian Dröge + + * 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: + +2021-11-01 16:32:10 +0100 Erlend Eriksen + + * gst/isomp4/gstqtmux.c: + qtmux: Fix deadlock in gst_qt_mux_prepare_moov_recovery + Regression from 5766731bd4200c3a374522a749386f740347661a + Part-of: + +2021-10-30 16:22:39 +0300 Sebastian Dröge + + * docs/gst_plugins_cache.json: + video: Fix order of new video formats + Part-of: + +2021-10-30 00:58:55 +0100 Tim-Philipp Müller + + * tests/check/elements/rtphdrext-colorspace.c: + Couple more g_memdup() -> g_memdup2() fixes + Fixes deprecation warnings with newer GLib versions. + Part-of: + +2021-10-23 00:44:57 +0200 Piotrek Brzeziński + + * docs/gst_plugins_cache.json: + video-format: Add support for ARGB64 LE/BE and similar variants + Co-authored-by: Sebastian Dröge + Part-of: + +2021-10-29 03:46:25 +0200 Mathieu Duponchelle + + * gst/rtpmanager/rtptwcc.c: + rtptwcc: don't assume all PacketInfo->data are buffers + They can also be buffer lists + Part-of: + +2021-10-25 11:37:45 +0100 Tim-Philipp Müller + + * 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: + +2021-10-28 21:37:47 +1100 Jan Schmidt + + * 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: + +2021-10-25 01:02:07 +0100 Tim-Philipp Müller + + * 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: + +2021-10-23 14:38:06 +0300 Sebastian Dröge + + * gst/isomp4/qtdemux_types.c: + qtdemux: Add pasp box to the list of known boxes + Part-of: + +2021-01-20 11:53:51 +0100 Rafał Dzięgiel + + * 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: + +2021-01-20 11:33:39 +0100 Rafał Dzięgiel + + * 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: + +2021-10-21 20:32:05 +1100 Matthew Waters + + * 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: + +2021-10-18 15:47:00 +0100 Tim-Philipp Müller + + * 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: + +2021-10-18 00:40:14 +0100 Tim-Philipp Müller + + * 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: + +2021-10-18 00:03:47 +0100 Tim-Philipp Müller + + * meson.build: + meson: clean up conditional paths after version bump + Part-of: + +2021-09-15 14:19:06 -0400 Olivier Crête + + * 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: + +2021-06-05 03:13:52 +1000 Jan Schmidt + + * 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: + +2021-08-27 22:45:18 +1000 Jan Schmidt + + * 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: + +2021-08-27 21:58:25 +1000 Jan Schmidt + + * 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: + +2021-10-14 18:38:26 +0100 Tim-Philipp Müller + + * 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: + +2021-10-05 12:28:22 -0300 Thibault Saunier + + * 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: + +2021-10-05 10:50:32 -0300 Thibault Saunier + + * 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: + +2021-10-17 01:59:35 -0300 Thibault Saunier + + * ext/lame/meson.build: + lame:meson: Avoid using fallback when we could use system install + Part-of: + +2021-10-05 11:38:33 -0300 Thibault Saunier + + * ext/lame/gstlamemp3enc.h: + * ext/lame/meson.build: + meson: Support building lame as subproject + Part-of: + +2021-10-12 15:52:48 -0300 Thibault Saunier + + * docs/meson.build: + meson: Streamline the way we detect when to build documentation + Part-of: + +2021-10-13 14:42:15 +0100 Philippe Normand + + * ext/soup/stub/soup.h: + soup-stub: Gate G_URI_FLAGS_SCHEME_NORMALIZE behind glib version check + Part-of: + +2021-10-13 10:38:07 +0200 Bastien Nocera + + * 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: + +2021-10-04 09:31:02 +0100 Philippe Normand + + * 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 and + Patrick Griffis . + Part-of: + +2021-09-10 18:03:55 -0400 Olivier Crête + + * 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: + +2021-10-11 14:27:24 +0200 Bastien Nocera + + * 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: + +2021-10-11 10:22:41 +0200 Bastien Nocera + + * 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: + +2021-05-04 13:27:30 -0400 Olivier Crête + + * ext/gtk/gstgtkbasesink.c: + * ext/gtk/gstgtkglsink.c: + gtksink: Return reference to GtkWidget in the acquire function + This should ensure thread safety. + Part-of: + +2020-09-03 18:27:19 -0400 Olivier Crête + + * 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: + +2021-10-12 19:01:37 +0300 Sebastian Dröge + + * gst/multifile/gstsplitmuxsink.c: + splitmuxsink: Don't assert on the input side if no GOP is available when shutting down + Part-of: + +2021-10-12 11:43:16 +0530 Nirbheek Chauhan + + * 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: + +2020-06-05 16:20:18 +0200 Marek Vasut + + * 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 + Part-of: + +2021-09-21 13:37:35 +0300 Sebastian Dröge + + * 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: + +2021-09-16 19:36:27 +0300 Sebastian Dröge + + * 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: + +2021-09-16 14:07:27 +0300 Sebastian Dröge + + * gst/multifile/gstsplitmuxsink.c: + splitmuxsink: Reset timecodes when resetting the sink + Part-of: + +2021-09-16 13:11:20 +0300 Sebastian Dröge + + * 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: + +2021-09-16 13:02:29 +0300 Sebastian Dröge + + * gst/multifile/gstsplitmuxsink.c: + splitmuxsink: Only update max in/out running time if it's actually bigger + Part-of: + +2021-09-16 12:53:12 +0300 Sebastian Dröge + + * gst/multifile/gstsplitmuxsink.c: + splitmuxsink: Only count keyframes for the reference context, consistently + Part-of: + +2021-09-24 13:38:39 -0400 Olivier Crête + + * 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: + +2021-09-24 12:52:37 -0400 Olivier Crête + + * gst/rtpmanager/gstrtphdrext-rfc6464.c: + rtphdrext-rfc6464: Use helper function to set caps field + Part-of: + +2021-09-23 16:01:40 -0400 Olivier Crête + + * 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: + +2021-09-23 15:36:00 -0400 Olivier Crête + + * 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: + +2021-09-28 10:11:15 +1000 Brad Hards + + * README: + * RELEASE: + doc: update IRC links to OFTC + Part-of: + +2021-09-26 01:07:02 +0100 Tim-Philipp Müller + + * docs/gst_plugins_cache.json: + * meson.build: + Back to development + Part-of: + === release 1.19.2 === 2021-09-23 01:33:39 +0100 Tim-Philipp Müller @@ -5,6 +1374,7 @@ * ChangeLog: * NEWS: * RELEASE: + * docs/gst_plugins_cache.json: * gst-plugins-good.doap: * meson.build: Release 1.19.2