------------------------------------------------------------------- Wed Nov 15 11:01:48 UTC 2023 - Antonio Larrosa - Update to version 0.11.2: + Fixed - filesink / s3sink: Set sync=false to allow processing faster than real-time. - hlssink3: Various minor bugfixes and cleanups. - livesync: Various minor bugfixes and cleanups that should make the element work more reliable. - s3sink: Fix handling of non-ASCII characters in URIs and keys. - sccparse: Parse SCC files that are incorrectly created by CCExtractor. - ndisrc: Assume > 8 channels are unpositioned. - rtpav1depay: Skip unexpected leading fragments instead of repeatedly warning - about the stream possibly being corrupted. - rtpav1depay: Don't push stale temporal delimiters downstream but wait until a complete OBU is collected. - whipwebrtcsink: Use correct URL during redirects. - webrtcsink: Make sure to not miss any ICE candidates. - webrtcsink: Fix deadlock when calling set-local-description. - webrtcsrc: Fix reference cycles that prevented the element from being freed. - webrtcsrc: Define signaller property as CONSTRUCT_ONLY to make it actually possible to set different signallers. - webrtc: Update livekit signaller to livekit 0.2. - meson: Various fixes to the meson-based build system. + Added - audiornnoise: Attach audio level meta to output buffers. - hlssink3: Allow adding EXT-X-PROGRAM-DATE-TIME tag to the manifest. - webrtcsrc: Add turn-servers property. + Changed - aws/webrtc: Update to AWS SDK 0.57/0.35. - The last update to 1.22.6 was actually a downgrade to the 0.9 branch that upstream seems to tag following the gstreamer version number but we should stick to the gstreamer-plugins-rs versioning scheme. - To see the changes between 0.10.11 and 0.11.2, please check: https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/blob/main/CHANGELOG.md - Add a vendor-for-dav1d-1.3.0.tar.zst vendor file specifically for Tumbleweed where dav1d 1.3.0 is used and is not supported by the dav1d crate used in 0.11.2 by default, so in this manually created vendor file, the dav1d 0.10 crate is forced. ------------------------------------------------------------------- Tue Oct 24 15:06:02 UTC 2023 - Bjørn Lie - Add ix86 to excluded arches. ------------------------------------------------------------------- Fri Sep 22 14:29:14 UTC 2023 - Bjørn Lie - Update to version 1.22.6: + fallbackswitch: locking/deadlock fixes + onvifmetadataparse: Skip metadata frames with unrepresentable UTC time + transcriberbin: Configure audioresample in front of transcriber + webrtcsink: - Propagate GstContext messages - Add support for d3d11 memory and qsvh264enc - Fix TWCC extension adding - Don't forget to setup encoders for discoveries - NVIDIA V4L2 encoders always require NVMM memory + meson: Fix handling of optional deps, and don't require Python-3.8 - Switch service to do the tag released with the other gstreamer packages. Gstreamer-plugins-rs are now released at the same time as the gstreamer main packages. - Switch compression to zst both in service and tarball produced. ------------------------------------------------------------------- Tue Jul 25 11:34:26 UTC 2023 - Bjørn Lie - Update to version 0.10.11: + fallbackswitch: - Change the threshold for trailing buffers - Fix pad health calculation and notifies + fmp4mux: Fix draining in chunk mode if keyframes are too late + webrtcsink: - fix pipeline when input caps contain max-framerate - Configure only 4 threads for x264enc - Translate force-keyunit events to force-IDR action signal for NVIDIA encoders - Set config-interval=-1 and aggregate-mode=zero-latency on rtph264pay and rtph265pay - Set VP8/VP9 payloader based on payloader element factory name - Update to version 0.10.10: + webrtcsink: - Avoid panic on unprepare from an async tokio context - Use correct property types for nvvideoconvert + webrtc/signalling: fix race condition in message ordering + livesync: - Wait for the end timestamp of the previous buffer before looking at queue - Improve EOS handling + videofx: Minimize dependencies of the image crate + togglerecord: - Clip segment before calculating timestamp/duration - Error out if main stream buffer has no valid running time ------------------------------------------------------------------- Wed Jul 5 10:49:41 UTC 2023 - Bjørn Lie - Update to version 0.10.9: + Fixed: - mp4mux/fmp4mux: Fix byte order in Opus extension box. - webrtcsrc: Add twcc extension to the codec-preferences when present. - webrtcsink: Don't try using cudaconvert if it is not present. - mccparse: Don't offset the first timecode to a zero PTS. - Correctly use MPL as license specifier instead of MPL-2 for plugins that compile with GStreamer < 1.20. + Added: fallbackswitch: Add stop-on-eos property. - Changes from version 0.10.8: + Fixed: - fmp4mux: . Use updated start PTS when checking if a stream is filled instead of a stale one. . Fix various issues with stream gaps, especially in the beginning. . Fix waiting in live pipelines. - uriplaylistbin: Prevent deadlocks during property notifications. - webrtcsink: Fix panics during twcc-stats callback and related issues. - awstranscriber: Handle stream disconts correctly. - roundedcorners: Fix caps negotiation to not use I420 if a border radius is configured. - whipsink: Use the correct pad template to request pads from the internal webrtcbin. - fallbacksrc: Don't apply fallback audio caps to the main stream. - webrtcsrc: Fix caps handling during transceiver creation. + Changed: rtpgccbwe: Improve packet handling. - Changes from version 0.10.7: + Fixed: - ffv1dec: Drop rank until the implementation is feature-complete. - spotifyaudiosrc: Check cached credentials before use and fix usage of credentials cache. - tttocea608: Specify raw CEA608 field. - gtk4paintablesink: Fix compilation on non-Linux UNIX systems. - webrtcsrc: Don't set stun-server to the empty string if none was set. - webrtcsink: Abort statistics collection before stopping the signaller. - rtpgccbwe: Don't process empty lists. + Changed: - ndi: Update to libloading 0.8. - aws: Update to AWS SDK 0.55/0.27. - webrtcsink: Order pads by serial number. - Update to async-tungstenite 0.22. + Added: webrtcsink/webrtcsrc: Add request-encoded-filter signal to add support for inserting custom filters between encoder/payloader or depayloader/decoder. This allows interacting with the "insertable streams" API from Chrome. - Disable cargo audit service for now, something is not working correctly in the service. - Use %build_rustflags instead of the deprecated %__default_rustflags macro. Requires at least cargo-packaging 1.2.0+3. ------------------------------------------------------------------- Wed Apr 12 11:50:33 UTC 2023 - Bjørn Lie - Update to version 0.10.6: + Fixed: - webrtcsink: Fix max/min-bitrate property blurb/nick. - uriplaylistbin: Add missing queues to example. - tttocea608: . Fix pushing of caps events that sometimes contained unfixed caps. . Fix disappearing text after special character in non-popon mode. - transcriberbin: . Fix deadlock on construction. . Fix initial bin setup. - fallbacksrc: Handle incompatible downstream caps without panicking. - ndisrc: Fix copying of raw video frames with different NDI/GStreamer strides. - livesync: Correctly assume zero upstream latency if latency query fails. + Added: webrtcsink: Add ice-transport-policy property that proxies the same webrtcbin property. - Switch to cargo-packaging: Drop cargo and rust BuildRequires and rustflags global. Add cargo-packaging BuildRequires and rustflags macro where needed. Use autosetup macro. ------------------------------------------------------------------- Fri Mar 31 20:55:39 UTC 2023 - Bjørn Lie - Update to version 0.10.5: + gtk4: Fix build with OpenGL support on macOS. + threadshare: Fix symbol conflicts when statically linking the plugin. - Enable LTO as it works fine now (use FAT lto objects). ------------------------------------------------------------------- Thu Mar 16 08:50:57 UTC 2023 - Bjørn Lie - Update to version 0.10.4: * Fixed: - fmp4mux: . Return a running time from AggregatorImpl::next_time() to fix waiting in live pipelines. . Fix hls_live example to set properties on the right element. - uriplaylistbin: Reset element when switching back to NULL state. - livesync: Handle variable framerates correctly in fallback buffer duration calculation. - meson: Fix GStreamer version feature detection. * Added: webrtc: New webrtc element. ------------------------------------------------------------------- Thu Mar 09 19:19:14 UTC 2023 - bjorn.lie@gmail.com - Update to version 0.10.3: * Added: - tracers: `queue_levels` tracer now also supports printing the `appsrc` levels. - webrtc: `webrtcsink` can use `nvvidconv` if `nvvideoconvert` does not exist on an NVIDIA platform. * Fixed: - gtk4: Set the sync point on the video frame after mapping it as otherwise the frame might not be ready yet for further usage. - livesync: Correctly calculate the fallback buffer duration from the video framerate. - ndi: Handle caps changes correctly in `ndisinkcombiner`. * Changed: webrtc: Minor cleanup. ------------------------------------------------------------------- Tue Mar 7 07:00:49 UTC 2023 - Antonio Larrosa - Increase constraints so it doesn't fail to build for lack of disk space. ------------------------------------------------------------------- Mon Feb 27 15:10:02 UTC 2023 - bjorn.lie@gmail.com - Update to version 0.10.2: * Fixed: - hlssink3: Allow signal handlers to return `None` - gtk4: . Make GL context sharing more reliable in pipelines with multiple `gtk4paintablesinks` . Attach channel receiver to the main context from the correct thread to make it possible to start the sink from a different thread than the main thread without having retrieved the paintable from the main thread before. - fmp4mux/mp4mux: Ignore caps changes if only the framerate changes. * Changed: gtk4: Simplify and refactor GL context sharing. Apart from being more reliable this reduces GL resource usage. - Stop using git date and commitid in version, we are using upstream released tags now. ------------------------------------------------------------------- Thu Feb 16 15:14:03 UTC 2023 - Antonio Larrosa - Disable the aws plugin in big endian architectures since it requires the ring crate which doesn't support big endian systems (see gh#briansmith/ring#1555). Fixes bsc#1208795 ------------------------------------------------------------------- Thu Feb 16 09:42:41 UTC 2023 - Antonio Larrosa - Add BuildRequires: zstd so it build in SLE/Leap now that the sources are compressed with zstd ------------------------------------------------------------------- Tue Feb 14 18:15:43 UTC 2023 - bjorn.lie@gmail.com - Update to version 0.10.1+git20230213.9cd68ff: * rtpav1pay: Fix calculation of Leb128 size size to work correctly with streams from certain encoders. - Changes from version 0.10.0: * Fixed: - audiornnoise: Use correct value range for the samples - awss3sink: Treat stopping without EOS as an error for multipart upload - awss3hlssink: . Fix the name of the hlssink child element . Fix deadlock on EOS - dav1d: Various fixes to improve performance, to handle decoding errors more gracefully and to make sure all frames are output in the end - fmp4mux: Various fixes to fragment splitting behaviour, output formatting and header generation - gtk4: Various stability and rendering fixes - meson: Various fixes and improvements to the meson-based build system - ndi: provide non-Linux/macOS UNIX fallback for the soname - ndisrc: Use default channel mask for audio output to allow >2 channels to work better - rav1e: Correctly enable threading support - rtpav1: Various fixes to the payloader and depayloader to handle streams more correctly and to handle errors more cleanly - rtpav1depay: Set caps on the source pad - spotify: fix "start a runtime from within a runtime" with static link - textahead: fix previous buffers - textwrap: Don't panic on empty buffers - tttocea608: Don't fail if a GAP event contains no duration - webrtchttp: whipsink: construct TURN URL correctly - webrtcsink: fix panic on pre-bwe request error - whipsink: . Send ICE candidates together with the offer . Various cleanups and minor fixes * Added: - audiornnoise: Add voice detection threshold property - awss3hlssink: Add stats property - awss3sink: Add properties to set Content-Type and Content-Disposition - fmp4mux: . Add 'offset-to-zero' property . Add support for CMAF-style chunking, e.g. low-latency / LL HLS and DASH - fmp4mux/mp4mux: . Add support for muxing Opus, VP8, VP9 and AV1 streams . Make media/track timescales configurable - gtk4: Support for rendering GL textures on X11/EGL, X11/GLX, Wayland and macOS - hlssink3: Allow generating i-frame-only playlist - livesync: New element that alllows maintaining a contiguous live stream without gaps from a potentially unstable source. - mp4mux: New non-fragmented MP4 muxer element - spotifyaudiosrc: Support configurable bitrate - textahead: add settings to display previous buffers - threadshare: Introduce new ts-audiotestsrc - webrtcsink: Support nvv4l2vp9enc - whepsource: Add a WebRTC WHEP source element * Changed: - audiofx: Derive from AudioFilter where possible - dav1ddec: Lower rank to primary to allow usage of hardware decoders with higher ranks - fmp4mux: Only push fragment_offset if write-mfra is true to reduce memory usage - webrtcsink: . Make the turn-server property a turn-servers list . Move from async-std to tokio ------------------------------------------------------------------- Wed Jan 25 22:24:43 UTC 2023 - bjorn.lie@gmail.com - Update to version 0.9.8+git20230124.d9e9468: * aws: Update to AWS SDK 0.53/0.23 * dav1d: - Don't flush the decoder when draining - Don't treat any kind of bitstream error immediately as fatal - Get rid of some unnecessary `unwrap()`s - Only drain at most one decoded frame per input frame unless the decoder requires more before accepting new data - Remove unnecessary frame dropping loop * Downgrade clap dependency to 4.0 * gtk4: - Asynchronously flush frames from GDK - Keep `GstGLMemory` alive as long as it is used inside GDK - Make no caps in the allocation query a non-error - Only provide a buffer pool to upstream if it requested one * livesync: fix late-threshold property min value * meson: - Only enable cargo features when options are enabled (bis) - Update version to 0.9.8 ------------------------------------------------------------------- Fri Jan 13 15:12:47 UTC 2023 - bjorn.lie@gmail.com - Update to version 0.9.5+git20230111.df3b908: * awss3hlssink: Add stats property. * aws: - Update to AWS SDK 0.52/0.22 - Update to test-with 0.9 * cargo_wrapper: - Fix setting of PKG_CONFIG_PATH and CARGO_TARGET_DIR - Handle windows paths for depfiles - Write to log with line-buffering * deny: - Ignore duplicated base64 dependency for now - Remove duplicated windows dependencies - Update * fmp4mux: - Only push fragment_offset if write_mfra is true - Remove obsolete comment * gtk4: - Add support for GL on macOS - Don't error out when the main context channel does not exist anymore when rendering - Don't try to use GL mapped video frames as raw RGB memory - Flush frames from the paintable when shutting down the sink - Handle more GL context creation failures gracefully - Propagate the GL display to the remainder of the pipeline - Reduce number of unwraps during GL context creation and query handling - Release GStreamer GL context and display when going back to NULL state - Remove 'gst' from gtksink debug category name - Remove 'gst' prefix from another debug category - Rename a variable to make more sense - Reset app context and display if GL context creation fails - Update dependencies to releases - Use `glib::ThreadGuard` instead of the fragile crate - Use GL implicitly without the gst_gl feature on macOS * meson: - Add an option to build examples - Add options for all plugins - Disable webp plugin on Windows and macOS - Do not serialize env, use env: kwarg - Enable gstreamer-gl-1.0 features in gtk4 plugin - Fix pkgconfig detection when specified in machine file - Handle windows path separator correctly - Only enable cargo features when options are enabled - Require gstreamer-gl-1.0 for gtkpaintablesink - Require tomllib / tomli python modules explicitly * rav1e: Enable threading support * Revert "Revert "rav1e: Update to rav1e 0.6"" * rtpav1depay: Implement srcpad set_caps * textahead: fix previous buffers * Update Cargo.lock * video/gtk4: Fix typo in info logs * webrtcsink: fix panic on pre-bwe request error - Pass sodium=enabled instead of sodium=system to meson following upstream changes. ------------------------------------------------------------------- Fri Dec 23 17:42:20 UTC 2022 - bjorn.lie@gmail.com - Update to version 0.9.3+git20221216.b701003: * Add a WebRTC WHEP source element * Add livesync plugin * audiornnoise: - Add debug output for voice activity to help you choose a threshold - Add voice detection threshold - Use correct value range for the samples * aws: - s3sink: Treat stopping without EOS as an error for multipart upload - Update to env_logger 0.10 for the tests * ci: Disable gst-build job for now * dav1ddec: Lower rank to primary * deny: - Remove another dependency that is not duplicated anymore - Remove dependencies that are not duplicated anymore - Update * Fix various new clippy warnings * fmp4mux: - Crank clock for the first fragment in more tests - For video with N/1001 framerates use N as timescale - Handle EOS correctly if it happens before a fragment start time was determined - Re-work buffer dequeueing and calculations of timestamps - Skip gap buffers earlier to consider them for the sample durations and fragment start durations * gif: Update to gif 0.12 * gst-plugin-mp4: Add new MP4 plugin with a non-fragmented MP4 muxer * gtk4: - Deactivate application GL context again after `fill_info()` - Deactivate the context if we fail to fill_info - example: Use a bin with a `videoconvert` in the non-GL case - Make GL support fully optional - Only require GTK 4.6 if GL support is enabled * livesync: - Add missing version to the gst-plugin-gtk4 / gst-plugin-version-helper dependencies - Fix version - Use release versions of the GLib/GStreamer bindings * meson: Fix build of static plugins * mp4: - Add ONVIF non-fragmented MP4 muxer - Add version to gst-plugin-version-helper dependency - Remove unneeded cast in tests - Update to url 2 * mp4mux: - Adjust durations and possibly stream start time on encountering a gap buffer - Don't write empty chunks at the end if the last buffer of a stream started a new chunk and happened to be a from a gap event - Don't write gap edit lists if their duration would be zero - Factor out running time to UTC time calculation into a function - Fix edit list shift for streams with initial DTS smaller earliest PTS but initial DTS positive - For video with N/1001 framerates use N as timescale - Remove unnecessary error case of negative PTS when doing the ONVIF UTC time calculations - Skip gap buffers instead of writing empty samples * mux/{mp4, fmp4}: Hard depend on feature v1_18 * ndisrc: - Use actual number of channels in positions_from_mask - Use default channel mask for audio output * net/ndi: fix build with --no-default-features * net: Update to async-tungstenite 0.19 * Provide explicit type to `Iterator::sum()` calls to avoid ambiguity * spotify: fix "start a runtime from within a runtime" with static link * textahead: add settings to display previous buffers * textwrap: Don't panic on empty buffers * threadshare: Update to concurrent-queue 2 * tttocea608: Don't fail if a gap event contains no duration * Update Cargo.lock * video/gtk4: - Implement support for GLTextures when possible. - Rename Object types and struct to something simpler - Restrict visibility of struct related to the Frame * webrtchttp: - Do not block webrtcbin signal handlers for sending candidates - Do not import element_imp_error - Don't use let-else for now - Drop unused dependencies - Factor out the common bits for WHIP and WHEP - Fix documentation JSON - Fix formatting - Fix missing import for docs build - Implement timeout for waiting on futures - Remove unnecessary clippy warning override - Use a proper Rust type name for ICE transport policy - Use tokio runtime for spawning thread used for candidate offer - whipsink: . Add candidates when sending the offer . Construct TURN URL correctly . Miscellaneous clean up * webrtc/README: update command to run the signalling server * webrtcsink: Support nvv4l2vp9enc * whipsink: Handle offer creation errors more gracefully ------------------------------------------------------------------- Thu Nov 17 16:19:32 UTC 2022 - alarrosa@suse.com - Update to version 0.9+git20221113.274e57a: * Update Cargo.lock * Update versions to 0.9.1 * closedcaption: Update for deprecated chrono functions * version-helper: Update for deprecated chrono functions * Update Cargo.lock * webrtc: README: fix couple of links * webrtcsink: improve debug * ci: add trigger job and only run documentation job post-merge * ci: add integration stage and move documentation job to that * ts/udpsink: handle items in the PadSinkHandler * ts: introduce ts-audiotestsrc * ts/standalone: add new Sinks * ts/standalone: move current sink under task_sink * deny: Update * Add missing `doc` features to WebRTC plugins * fmp4mux: Make media/trak timescales configurable * ci: Update to cargo-c 0.9.14 * meson: optionalize pango dependency used by net/onvif * ndi: provide Unix fallback after 3fe9e4a207f8 * fmp4mux: Don't allow VP9 for CMAF * fmp4mux: Add initial Opus support * docs: Remove some stale entries of renamed elements * aws: Skip s3 test on Windows until we figure out why it times out * Fix various new clippy warnings * fmp4mux: For VP9, write resolution into the tkhd and include a stss box to signal that not all frames are sync samples * webrtc: Update to human_bytes 0.4 * aws: Update to aws 0.21/0.51 * fmp4mux: Remove unused uuid dependency * Update Cargo.lock * fmp4mux: Clip negative PTS to zero/last PTS instead of erroring out * fmp4mux: Send force-keyunit events for now if the ideal position has already passed * fmp4mux: Add debug log when writing the mfra box * fmp4mux: Reset timing infos to None if a stream only contained gap events for a whole fragment * fmp4mux: If a stream is longer than the main stream at EOS, simply include all of its buffers in the last fragment nonetheless * whipsink: Add object to debug logs * fmp4mux: don't require dts for predictive-only formats like vp9 * aws: fix title in README * deny: Update * fmp4: add support for muxing VP9 streams in cmaf, dash and iso fmp4 * Add Cargo.lock * Update to release versions of gtk-rs and gstreamer-rs * Update versions to 0.9.0 * Update to async-tungstenite 0.18 * pngenc: Encode every frame individually * ts/pad: use `gst::Pad` in handlers trait functions... * ts/pad: don't pass self as ref in remaining handler traits functions * textwrap: Update to textwrap 0.16 * Move from `imp.instance()` to `imp.obj()` * Remove `&` for `obj` in log macros * Update docs * Add all missing plugins/elements to the README.md * Fix GObject type names, GStreamer debug category names and element factory names * Add new mux subdirectory for container formats * rtp: Move GCC bandwidth estimation element from webrtc to rtp plugin * Make GStreamer plugin/crate/library/directory names and descriptions consistent * Rename rtpav1 plugin to just rtp * videocompare: Update README with reference * Sort members in Cargo.toml and meson.build alphabetically and the same in both files * Various minor cleanups * meson: Fix warning * videocompare: Fix warning * Take advantage of `Into>` args * onvifmetadatacombiner: On timeout don't wait for metadata to arrive anymore but output the current video frame * onvifmetadatacombiner: Add a lot of trace debug output * spotifyaudiosrc: convert to PushSrc ------------------------------------------------------------------- Fri Oct 21 06:18:44 UTC 2022 - bjorn.lie@gmail.com - Update to version 0.9.alpha.1+git20221020.5c89c3d: * meson: add plugins list to summary * fallbacksrc: Don't configure conversion elements for normal stream * webrtc: - Rename and add to meson build the signalling server - Enhance documentation - Minor cleanup - Rename signaller and protocol crates - Update and unify rust-version and edition - Uniformise GType names - Port to new ElementBuilder API - Add ppc ppc64 ppc64le s390 ExcludeArch: Current versions of gstreamer-plugins-rs depends on rs-ring, and rs-ring does not yet support building on these targets. ------------------------------------------------------------------- Mon Oct 10 15:17:09 UTC 2022 - bjorn.lie@gmail.com - Update to version 0.9.alpha.1+git20221010.b1b7070: * Change *Impl trait methods to only take &self and not Self::Type in addition * fallbacksrc: - Always restart the fallback stream on EOS and make sure to EOS all streams if the main stream is EOS - Retry fallback stream on errors too * jsontovtt: - Add timeout property - Print object information to debug message * Update for glib::Object::new() API changes * update-version.sh: Also update version in meson.build * Use `GFV::none_for_format` where applicable ------------------------------------------------------------------- Thu Oct 06 11:58:03 UTC 2022 - bjorn.lie@gmail.com - Update to version 0.9.alpha.1+git20221005.0b13bfe: * Add missing Since markers to new plugins * Add RTP de/payloader elements for AV1 * Allow "unused_doc_comments" as we use hotdoc and not rustdoc * awstranscriber: - fix set_property for language-code - only set vocabulary filter when vocabulary is set * aws: Update to aws 0.48/0.18 * build: Update versions to be 0.9.0-alpha.1 * cargo: - Sort members and default-members lists - Update default-members list * cea608tojson: Clip column number if it exceeds allowed value * csound: Fix score-offset getter * dav1ddec: Require dav1d 1.0.0 in meson * dav1d: Update to dav1d 0.9 * doc: Mark request::user-agent as doc show default * docs: Remove cruft * examples: Update to clap 4 * fallbacksrc: - Always restart the fallback stream on EOS and make sure to EOS all streams if the main stream is EOS - Implement support for fallback streams - Retry fallback stream on errors too * fallbackswitch: - Fix lock order problem between state and stream lock - Flush and deactivate pads before releasing them - Make sure to flush/reset pads during pad (de)activation - Port the example to GTK 4 * Fixes for removal of SpecificFormattedValues ops on ref * Fix missing pkgconfig requires * fmp4mux: - Drop GAP buffers before doing ONVIF UTC time re-timestamping - Drop gap buffers before further processing - Implement a better strategy for splitting fragments and deciding which buffers go into which fragment - Split huge drain function into separate functions * Generate plugins documentation using hotdoc * jitterbuffer: fix typo when calculating max_misorder_time * jsontovtt: Don't push zero-duration cue data * meson: - Blacklist csound and threadshare plugins for gst-full - Define gst_plugins with list of dependencies - Fix deprecation warning - Fix directory/plugin name mapping for new webrtchttp plugin - Fix gstwebrtc/gstsdp subproject usage - Fix usage of python3 variable which was renamed recently - Import python module only once - Use workspace Cargo.toml to find crates path * net/onvif: update with new `gst::Signed` features * onvif: - Fix for `gst::meta::CustomMeta::register()` API change - Rename onvif(de)pay to rtponvifmetadata(de)pay and include the metadata specifier in the other element names too * onvifmetadatacombiner: - Do not classify as Muxer - Drop gap metadata buffers * onvifmetadataparse: - Drop initial buffers if their UTC time would be negative - Drop initial buffers until an UTC/running time mapping can be established - Handle negative running times in debug output - Pass through other XML as is with the UTC times based on the buffer PTSs - Push buffers from a separate source pad task to guarantee latency and generally improve correctness - Refactor clock/condvar waiting - Schedule EOS events after the last currently queued up frame - Simplify some code - Start source pad task on StreamStart if needed * pngenc: Allow using deprecated compression levels * rav1e: Pin `v_frame` dependency to version 0.2.5 for now * rtpav1depay: Don't unnecessary map RTP payload a second time * rtpav1pay: Don't push buffers downstream while holding mutexes * rtpav1: - Remove some unneeded lifetime annotations - Reset state on FlushStop/Eos in all conditions and reset all of the state - Specify version helper dependency by path - Use GStreamer types by namespace instead of importing dozens of types directly into the scope * s3sink: Dont set call_timeout,call_attempt_timeout is enough with retry. * s3sink, s3src: Max 1 (re)try when retry-duration < request_timeout. * text/json: - hard depend on ser_de feature of gst crate - use renamed gst feature 'serde' * threadshare: disable tests that can't work on windows * togglerecord: Port example to GTK 4 * tracers: - Fix documentation comment using gtk-doc style - queue-levels: Update for `gst::TracerImpl` API changes * ts: add feature to add counters for performance evaluation * ts/executor: clear the reactor instead of closing it... * ts-jitterbuffer: - Declare `request-pt-map` signal - extra robustness for Windows CI - Fix latency type when getting property * ts/scheduler: - fix shutdown - improve tasks / io & timers polling balance * ts/standalone: multiple improvements * ts/Task: don't drain sub tasks after state transition and iteration * ts/timers: multiple improvements * Update for GLib ParamSpec builder API changes * Update minimum supported Rust version to 1.63 * update-version.sh: Also update version in meson.build * uriplaylistbin: Port example from structopt to clap * video/rspng: add missing doc feature gate * whipsink: A GstBin implementation for WHIP - Add python3-tomli and pkgconfig(gstreamer-webrtc-1.0) BuildRequires: New dependencies. - Pass default-library=shared and doc=disabled to meson, ensure we build the shared lib as default and disable build of docs. ------------------------------------------------------------------- Mon Sep 12 21:23:10 UTC 2022 - Bjørn Lie - Update constraints for i586, bump to 22 G here too. ------------------------------------------------------------------- Mon Aug 29 23:16:32 UTC 2022 - bjorn.lie@gmail.com - Update to version 0.8.4+git20220824.052092cd: * Add RaptorQ RTP FEC plugins * audioloudnorm: Drain on segment event * audio: Use gst_audio::AudioCapsBuilder in some plugins * audio, video: Use AudioCapsBuilder::new_interleaved where applicable * aws: Document the s3hlssink element in README * aws: s3sink: Add a deprecation warning for retry duration properties * aws: s3sink,s3src,transcriber: Add property to set temporary credentials * aws_transcriber: expose filtering related properties * aws_transcriber: Fix regression with credentials mechanism * aws: Update to aws 0.17/0.47 * ci: Update image version * ci: Update to cargo-c 0.9.11 * deny: Update * fallbackswitch: fix gap processing regression * fallbackswitch: Remove unused libc dependency/feature * Fix a couple of new 1.62 clippy warnings * Fix build after glib SignalBuilder::param_types() API change * Fix/silence a couple new clippy warnings * fmp4mux: Add debug output for each fragment's start PTS * fmp4mux: Consider invalid running times as zero and before anything else * fmp4mux: Dequeue as many buffers as are available in each aggregate call * fmp4mux: Dequeue the earliest buffer from any pad first instead of dequeueing up to a whole fragment from the same pad * fmp4mux: Ensure that DTS (or PTS for intra-only streams) are monotonically increasing * fmp4mux: Fix draining if there are no GOPs for a stream * fmp4mux: Fix some clippy warnings * fmp4mux: Fix usage of first_sample_flags/default_sample_flags * fmp4mux: Handle PTS` * hrtfrender: Switch back to hrtf 0.7 * m3u8-rs: Depend on version exactly 3.0.0 * mccparse/sccparse: Don't log gst::FlowError::Flushing or Eos as error to the debug logs * meson: - Cleanup our meson integration - Fix building when git isn't available * net/onvif: implement ONVIF metadata processing elements * onvifaggregator: - always push current media buffer on timeout - implement proper EOS support - refactor to support duration-less media buffers - Update for minor `PadTemplate` API changes * rav1enc: - Use `AtomicRefCell` instead of `Mutex` for the state - Don't handle `NeedMoreData` as "soft" error - Expose various new settings - Include stream-format and alignment in the caps - Put container sequence header into the caps - Set mastering display info, content light level and HDR related colorimetry - Simplify code - Support 8 bit grayscale input - Switch from speed preset 5 to 6 as default * README: Mention the colordetect element * Re-license LGPL-2.1 plugins to MPL-2 * Remove now unnecessary `Send+Sync` impls for element/etc subclasses * Rename `self_` variables to `imp` for consistency * Replace `Foo::from_instance(foo)` with `foo.imp()` * reqwest: Don't unnecessarily borrow dereferenced values explicitly * Revert - "fallbackswitch: Forward custom downstream events from active sinkpad" - "Revert "uriplaylistbin: disable test deadlocking"" - "uriplaylistbin: disable test deadlocking" * rtponvifdepay: Set caps on the source pad * rusoto: - Add missing license file - Export AwsTranscriberResultStability enum - s3sink: Expose property to control all timeout/retry durations - s3sink: Implement timeout/retry for part uploads - s3sink: Make remaining requests bounded in time - s3sink, s3src: Retry on server errors - s3src: Implement timeout and retries - Update async-tungstenite dependency to 0.17 - Update to crc 3 and rusoto 0.48 * rustfmt.toml: Add file * s3src: Consolidate stream reading into get object retries * Simplify some code around event/query views * spotifyaudiosrc: Update to librespot 0.4 * textahead: `PadTemplate::caps()` returns a caps reference now * textwrap: Update for textwrap 0.15 API changes * threadshare: - fix build on Windows - Remove glib::SendUnique usage - Use `into_glib_ptr()` instead of `into_ptr()` * transcriberbin: - Add caption-source property - Don't notify signal inside lock - Fix deadlock - make audioqueue leaky - Protect runtime "passthrough=false" change * ts/examples: add rtp mode with jitter-buffer & trace stop duration * ts/jitterbuffer: - don't wake up immediately... - set jbuf delay when instantiating it * ts: log max throttling when creating Context * ts/rt/Task: - awake the iteration loop when it needs to be aborted - use light weight executor blocking on ack or join handle * tttocea608: expose roll-up timeout property * tutorial/sinesrc: Use pushsrc as direct superclass in the glib::wrapper macro too * Update for event/message/query view API changes * Update license text in the README.md * Update minimum supported GStreamer version to 1.14 * Update minimum supported Rust version to 1.57 * Update README.md with all the new plugins/elements * Update to gst::_log_macro_ * Update to m3u8-rs 4.0 * Update to parking_lot 0.12 and hrtf 0.8 * Update versions to 0.9.0 * uridecodebin: stop using crossbeam_channel * uriplaylistbin: - add Status::ShuttingDown - break reference cycle - disable more tests - disable more tests - disable test deadlocking - display invalid state when panicing - fix deadlock when shutting down - fix number of streaming items - fix race when handling topology change - handle waiting items no longer being set - implement Debug on State - remove pad probe when shutting down - remove useless uridecodebin clone - replace errored with Status enum - skip missing_http test - Update to more-asserts 0.3 * Use SPDX license format in Cargo.toml * videofx: Add colordetect video filter ------------------------------------------------------------------- Thu Jun 09 15:47:40 UTC 2022 - bjorn.lie@gmail.com - Update to version 0.8.4: * audiofx: Update nnoiseless dependency to 0.4 * awstranscribe: increase presisigned url duration to 5 mins from 60s * cea608tott: Don't zero-pad SRT indices but zero-pad hours to at least two digits * ci: cargo test --all-features too... * ci: run tests with RUST_BACKTRACE * closedcaption: Update to uuid 1.0 * Correctly check for the `DISCONT` buffer flag to be set * deny: Ignore duplicated wasi dependency * fallbacksrc: - Changing the URI of the video fallback is supported in NULL state - Disconnect signals on ReadyToNull - Flush source before restarting on errors * fallbackswitch: - Add missing requires_private - add support for buffers without pts - export GEnum used in properties - factor out handle_main_timed_item() - properly handle GAP events * generic/threadshare: fix for nightly build * meson: - Cleanup our meson integration - Fix building when git isn't available * rusoto: s3sink: - Expose property to control all timeout/retry durations - Implement timeout/retry for part uploads - Make remaining requests bounded in time - s3src: Retry on server errors * rusoto: s3src: Implement timeout and retries * rusoto: - Update async-tungstenite dependency to 0.17 - Update to crc 3 and rusoto 0.48 * rustfmt.toml: Add file * s3src: Consolidate stream reading into get object retries * textwrap: Update for textwrap 0.15 API changes * transcriberbin: - Add caption-source property - Don't notify signal inside lock - Fix deadlock - make audioqueue leaky - Protect runtime "passthrough=false" change * ts/examples: add rtp mode with jitter-buffer & trace stop duration * ts/jitterbuffer: don't wake up immediately... * ts: log max throttling when creating Context * ts/rt/Task: - awake the iteration loop when it needs to be aborted - use light weight executor blocking on ack or join handle * Update Cargo.lock * Update license text in the README.md * Update to m3u8-rs 4.0 * uridecodebin: stop using crossbeam_channel * uriplaylistbin: - add Status::ShuttingDown - break reference cycle - disable more tests - disable test deadlocking - display invalid state when panicing - fix deadlock when shutting down - fix number of streaming items - fix race when handling topology change - handle waiting items no longer being set - implement Debug on State - remove pad probe when shutting down - remove useless uridecodebin clone - replace errored with Status enum - skip missing_http test * Use SPDX license format in Cargo.toml ------------------------------------------------------------------- Wed Mar 23 08:59:08 UTC 2022 - Andreas Schwab - Update constraints for riscv64 ------------------------------------------------------------------- Mon Feb 28 12:39:44 UTC 2022 - bjorn.lie@gmail.com - Update to version 0.8.2: * Update Cargo.lock * ci: Use correct gstreamer-rs images template * deny: Remove num-rational override * dav1ddec: - Use `AtomicRefCell` instead of `Mutex` for the state - Fix compilation after some API changes - Release input frames that immediately caused a decoding error ------------------------------------------------------------------- Fri Feb 04 20:27:29 UTC 2022 - bjorn.lie@gmail.com - Update to version 0.8.1: * Update Cargo.lock * Update versions to 0.8.1 * cdg: update image and cdg_renderer * gtk4: Attach main context receiver from the main context's thread * dav1ddec: Add 8/16 bit grayscale support * rav1enc: Support 8 bit grayscale input * dav1ddec: Require correct alignment and stream format when running with GStreamer 1.20 * rav1enc: Include stream-format and alignment in the caps * dav1ddec: Clean up state tracking a bit - Add automatic .changes generation to service, as upstream seems to not want to make release notes or changelogs. ------------------------------------------------------------------- Wed Jan 19 14:17:20 UTC 2022 - Antonio Larrosa - Add a BuildRequires: pkgconfig(libwebp) to fix loading libgstrswebp.so which was failing with an `undefined symbol: WebPAnimDecoderDelete` error. ------------------------------------------------------------------- Tue Jan 18 09:04:54 UTC 2022 - Antonio Larrosa - Increase the disk constraint since i586 builds take ~15.6 GB, s390x over 22 GB and other archs ~18.8 GB. ------------------------------------------------------------------- Mon Jan 17 16:22:51 UTC 2022 - Antonio Larrosa - Update to version 0.8.0: * No changelog provided by upstream ------------------------------------------------------------------- Wed Nov 10 18:52:14 UTC 2021 - Bjørn Lie - Disable csound plugin for now, mask all macros, BuildRequires and set option passed to meson to disabled (was auto), wait for upstream to fix the issues identified. ------------------------------------------------------------------- Tue Nov 2 19:51:56 UTC 2021 - Bjørn Lie - Filter out pkgconfig(csound) Requires, add manual csound-devel BuildRequires to devel package. csound-devel does not provide a .pc file so the autogenerated Requires on pkconfig(csound) is wrong. ------------------------------------------------------------------- Tue Nov 2 11:00:09 UTC 2021 - Bjørn Lie - Drop baselibs.conf, this is a new package, lets not build 32bit unless we have to. ------------------------------------------------------------------- Sat Oct 16 10:54:15 UTC 2021 - Bjørn Lie - No longer disabled LTO, drop macro. ------------------------------------------------------------------- Sat Sep 4 23:21:39 UTC 2021 - Bjørn Lie - Update to version 0.7.2: - Switch service to using an explicit released tag. - Drop 0001-Fix-cast-to-f64-so-it-builds-in-i586.patch: Fixed upstream. ------------------------------------------------------------------- Mon Apr 19 15:00:36 UTC 2021 - Antonio Larrosa - Update to 0.6.0+git20210412.c3fb55f - Add patch to fix build in the i586 architecture (Submitted in glfo#gstreamer/gst-plugins-rs#502): * 0001-Fix-cast-to-f64-so-it-builds-in-i586.patch ------------------------------------------------------------------- Thu Dec 24 13:28:20 UTC 2020 - Bjørn Lie - Enable build of dav1d plugin, do this via: + Disable LTO via macro. + Add clang and pkgconfig(dav1d) BuildRequires. + No longer pass dav1d=disabled to meson, nor remove dav1d from cargo.toml via sed call. - Add pkgconfig(libsodium) BuildRequires and pass sodium=system to meson, do not use package internal version of sodium. - Drop pkgconfig(gtk+-3.0) BuildRequires, not needed. - Add pkgconfig(pango) BuildRequires: Mandatory, previously pulled in by pkgconfig(gtk+-3.0), and add optional nasm BuildRequires. - Drop gcc-c++ BuildRequires, no longer needed, nor used. - Replace llvm-devel with llvm BuildRequires, this is sufficent. - Do general cleanup of spec, make package ready for submit to TW. Use normal meson macros. - Add _constraints, ensure the build have enough harddisk space. ------------------------------------------------------------------- Tue Dec 1 11:28:33 UTC 2020 - Antonio Larrosa - Update to git version 0.6.0+git20201201.58786fa - Use obs-service-cargo_vendor in the _service file and replace vendor-cargo-config with cargo_config - Enable the build of sodium and threadshare plugins - Remove special Cargo.lock source file which is not needed anymore ------------------------------------------------------------------- Wed Oct 28 16:42:07 UTC 2020 - Antonio Larrosa - Fix version, since the initial release wasn't 1.18.0 but 0.6.0 - Update to git version 0.6.0+git20201026.d16e7d1 ------------------------------------------------------------------- Sat Oct 24 12:59:22 UTC 2020 - Dominique Leuenberger - Use %_vpath_builddir instead of hardcoded 'build' directory name: meson allows for the path to be changed. ------------------------------------------------------------------- Wed Sep 16 11:14:49 UTC 2020 - Antonio Larrosa - Initial release of gstreamer-plugins-rs 1.18.0