Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.freedesktop.org/gstreamer/gst-plugins-rs.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-12-14threadshare: Fix a typo while loggingArun Raghavan
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1408>
2023-11-02Update for `gst::Rank` API changesSebastian Dröge
2023-10-01generic: threadshare: port to polling 3.1.0François Laignel
Also use `rustix` & `std::ffi` instead of `libc`. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1336>
2023-07-11threadshare: Remove unnecessary call to `default()`Sebastian Dröge
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1273>
2023-07-06Use re-exported once_cellBilal Elmoussaoui
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1268>
2023-05-12use Pad builders for optional name definitionFrançois Laignel
Also, apply auto-naming in the following cases * When building from a non wildcard-named template, the name of the template is automatically assigned to the Pad. User can override with a specific name by calling `name()` on the `PadBuilder`. * When building with a target and no name was provided via the above, the GhostPad is named after the target. See https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/448 Auto-naming discussion: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1255#note_1891181 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1197>
2023-04-10fix typosGuillaume Desmottes
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1170>
2023-03-17threadshare: jitterbuffer: Rename C symbols to avoid conflicts with the same ↵Sebastian Dröge
symbols from the rtpmanager plugin Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/326 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1128>
2022-12-13Fix various new clippy warningsSebastian Dröge
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1011>
2022-11-01Fix various new clippy warningsSebastian Dröge
2022-10-24ts/pad: use `gst::Pad` in handlers trait functions...François Laignel
... instead of the `Pad{Src,Sink}Ref` wrappers: - In practice, only the `gst::Pad` is useful in these functions. Some of these which need a `Pad{Src,Sink}Ref`, but it's the one for the opposite stream direction. In those cases, it is accessed via the element's implementation. - It saves a few `clone`s. - The implementations usually use the `gst::Pad` for logging. They no longer need to access it via `pad.gst_pad()`.
2022-10-24ts/pad: don't pass self as ref in remaining handler traits functionsFrançois Laignel
- They are either unit types or `Clone` (in which case they are implemented as pointers). - Internally, we already use an owned version, so there's no need to get a reference. - It facilitates implementation if the handler must be moved into a closure or a `Future`.
2022-10-23Move from `imp.instance()` to `imp.obj()`Sebastian Dröge
It's doing the same thing and is shorter.
2022-10-23Remove `&` for `obj` in log macrosFrançois Laignel
This is no longer necessary. See https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1137
2022-10-23Fix GObject type names, GStreamer debug category names and element factory namesSebastian Dröge
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/198
2022-10-18Use new format constructorsFrançois Laignel
See https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1128
2022-10-12ts: better use of `imp` & `elem` args in `Pad{Sink,Src}Handler`sFrançois Laignel
This is a follow-up to commit 7ee4afac. This commit cleans up the `Pad{Sink,Src}Handler` by - Keeping arguments which are strictly necessary. - Passing arguments by value for the trait functions which return a `Future`. The arguments which were previously passed by reference were `clone`d internally and then `clone`d again in most implementations. There are unfortunate differences in trait function signatures between those which return a `Future` and the sync functions. This is due to the requirement for the arguments to be moved to the resulting `Future`, whereas sync functions can rely on references. One particular notable difference is the use of the `imp` in sync functions instead of the `elem` in functions returning a `Future`. Because the `imp` is not guaranteed to implement `Clone`, we can't move it to the resulting `Future`, so the `elem` is used.
2022-10-10Change *Impl trait methods to only take &self and not Self::Type in additionSebastian Dröge
2022-10-07Update for glib::Object::new() API changesSebastian Dröge
2022-09-21jitterbuffer: fix typo when calculating max_misorder_timeMathieu Duponchelle
2022-09-21ts-jitterbuffer: Declare `request-pt-map` signalMac Thi Kieu Van
2022-09-13ts/timers: multiple improvementsFrançois Laignel
This commit improves threadshare timers predictability by better making use of current time slice. Added a dedicate timer BTreeMap for after timers (those that are guaranteed to fire no sooner than the expected instant) so as to avoid previous workaround which added half the max throttling duration. These timers can now be checked against the reactor processing instant. Oneshot timers only need to be polled as `Future`s when intervals are `Stream`s. This also reduces the size for oneshot timers and make user call `next` on intervals. Intervals can also implement `FusedStream`, which can help when used in features such as `select!`. Also drop the `time` module, which was kepts for compatibility when the `executor` was migrated from tokio based to smol-like.
2022-09-12ts/jitterbuffer: extra robustness for Windows CIFrançois Laignel
jitterbuffer tests crash on Windows CI sometimes. Activating logs showed time values which are probably not expected in a regular environment, but which can happen there. Adding extra robustness to `next_wakeup` computation seems to fix the problem judging by the few runs I triggered.
2022-09-05Update for GLib ParamSpec builder API changesSebastian Dröge
2022-09-03tsjitterbuffer: Fix latency type when getting propertyThibault Saunier
2022-08-22plugins: Simplify code using ParamSpecBuilderVivia Nikolaidou
2022-08-10ts: migrate elements to try_next / handle_itemFrançois Laignel
See previous commit for details. Also switched to panicking for some programming errors.
2022-08-09ts: update elements for new TransitionStatusFrançois Laignel
See previous commit
2022-07-21Update per glib::SignalBuilder changesBilal Elmoussaoui
2022-05-11ts-jitterbuffer: set jbuf delay when instantiating itMathieu Duponchelle
The internal (C) jitterbuffer needs to know about the configured latency when calculating a PTS, as it otherwise may consider that the packet is too late, trigger a resync and cause the element to discard the packet altogether. I could not identify when this was broken, but the net effect was that in the current state, ts-jitterbuffer was discarding up to half of all the incoming packets.
2022-05-08threadshare: Use `into_glib_ptr()` instead of `into_ptr()`Sebastian Dröge
2022-04-09threadshare: Remove glib::SendUnique usageSebastian Dröge
It's being removed from the GLib bindings because it does not add much value.
2022-03-28ts/jitterbuffer: don't wake up immediately...François Laignel
... when next wakeup delay is shorter than the max throttling duration. See https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/169
2022-03-28ts/examples: add rtp mode with jitter-buffer & trace stop durationFrançois Laignel
2022-02-28Remove now unnecessary `Send+Sync` impls for element/etc subclassesSebastian Dröge
This is now automatically implemented.
2022-02-21Update to gst::_log_macro_François Laignel
See the details: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/980
2022-01-19Update for event/message/query view API changesSebastian Dröge
2022-01-17Replace `Foo::from_instance(foo)` with `foo.imp()`Sebastian Dröge
2022-01-15Add SPDX-License-Identifier to all file headersSebastian Dröge
2021-12-25ts/executor: replace tokio with smol-like implementationFrançois Laignel
The threadshare executor was based on a modified version of tokio which implemented the throttling strategy in the BasicScheduler. Upstream tokio codebase has significantly diverged from what it was when the throttling strategy was implemented making it hard to follow. This means that we can hardly get updates from the upstream project and when we cherry pick fixes, we can't reflect the state of the project on our fork's version. As a consequence, tools such as cargo-deny can't check for RUSTSEC fixes in our fork. The smol ecosystem makes it quite easy to implement and maintain a custom async executor. This MR imports the smol parts that need modifications to comply with the threadshare model and implements a throttling executor in place of the tokio fork. Networking tokio specific types are replaced with Async wrappers in the spirit of [smol-rs/async-io]. Note however that the Async wrappers needed modifications in order to use the per thread Reactor model. This means that higher level upstream networking crates such as [async-net] can not be used with our Async implementation. Based on the example benchmark with ts-udpsrc, performances seem on par with what we achieved using the tokio fork. Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/118 Related to https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/604
2021-11-30Fix or silence various new 1.57 clippy warningsSebastian Dröge
2021-11-21Update for GLib signal `emit_by_name()` API changesSebastian Dröge
2021-11-20Update for glib constructor renamesSebastian Dröge
See https://github.com/gtk-rs/gtk-rs-core/pull/384
2021-11-08adapt to ObjectExt improvementsBilal Elmoussaoui
2021-11-06Update for GLib/GStreamer API changesSebastian Dröge
And clean up a lot of related property/caps/structure code.
2021-10-23Update for GstObjectImpl API changeSebastian Dröge
2021-10-18Improve usability thanks to opt-opsFrançois Laignel
The crate option-operations simplifies usage when dealing with `Option`s, which is often the case with `ClockTime`.
2021-07-30Fix various needless-borrow clippy warnings and othersSebastian Dröge
2021-06-05fix clippy warningsFrançois Laignel
2021-06-05generic: migrate to new ClockTime designFrançois Laignel