Commit graph

23 commits

Author SHA1 Message Date
Thibault Saunier cf176bdd93 Update plugins/src/webrtcsink/imp.rs
Co-authored-by: Sebastian Dröge <slomo@coaxion.net>
2022-01-03 18:29:45 +01:00
Thibault Saunier 300adda41b Dot 'caps inspection' pipelines 2022-01-03 18:29:45 +01:00
Thibault Saunier 85fd7175de Add support for cuda and GL memory
This way we don't need to download/upload when unnecessary
2022-01-03 18:29:45 +01:00
Sebastian Dröge d6ba009742 Fix various clippy warnings 2021-12-28 18:28:09 +01:00
Thibault Saunier da0a934307 nvh264enc: Do not wrongly set vbv-buffer-size and use the cbr-ld-hq rc-mode
vbv-buffer-size which is in kbits can't be set while playing so we
can't really use it for our use case.
2021-12-23 17:02:50 +01:00
Mathieu Duponchelle 8128c14fa9 API: refactor error signalling
* Expect Box<dyn Error> from custom signaller

* Use thiserror to define the error codes returned to custom
  signallers
2021-12-21 23:37:29 +01:00
Mathieu Duponchelle a4df10b112 webrtcsink: reset default values when disabling congestion control 2021-12-10 03:33:02 +01:00
Mathieu Duponchelle d230345d90 webrtcsink: make sure we always scale to multiple of 2 dimensions
Some encoders do not like odd widths or heights
2021-12-10 01:16:10 +01:00
Mathieu Duponchelle 1826111278 Implement support for FEC / retransmission 2021-12-10 01:12:19 +01:00
Mathieu Duponchelle 7bd7c4e960 webrtcsink: tune homegrown CC algorithm
Make control decisions based on packet loss closer in intent to
the algorithm described in gcc section 6., and raise the threshold
for decreasing the bitrate based on delay_factor
2021-12-08 22:31:03 +01:00
Thibault Saunier b12d91775d Respect user provided max-bitrate when congestion controler is disabled 2021-12-08 22:30:37 +01:00
Thibault Saunier 5904e1ccb4 Allow changeing Congestion control algorithm at runtime 2021-12-08 22:30:37 +01:00
Thibault Saunier 57f459f43b Dot consumer pipelines when finalizing the pipeline 2021-12-03 16:22:11 +01:00
Mathieu Duponchelle 921ca7fbab webrtcsink: expose stats property 2021-11-30 22:55:28 +01:00
Thibault Saunier 40a4b745e3 Add properties to configure min/max bitrate values 2021-11-24 15:27:06 +01:00
Mathieu Duponchelle 7ce0ef5b88 webrtcsink: change method for constraining final caps
See discussion at:

https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1278#note_1154282
2021-11-23 14:52:40 +01:00
Sebastian Dröge e7a9c2b054 Update dependencies
This involves removing lots of unnecessary `unwrap()`s and simplifies
the `lookup_codecs()` function a bit.
2021-11-21 18:44:00 +01:00
Sebastian Dröge ac60e7b101 Remove needless to_value() calls 2021-11-20 14:56:34 +02:00
Thibault Saunier 63337c7df1 sink: Add a new-webrtcbin signal
Allowing user to add a data channel for example
2021-11-19 12:58:57 +01:00
Thibault Saunier 444ee40f09 sink: Dot comsumer pipeline on state changes 2021-11-19 12:57:39 +01:00
Thibault Saunier ac0f9f41df sink: Add properties to set stun and turn servers 2021-11-19 12:57:39 +01:00
Mathieu Duponchelle 8c6ff24052 webrtcsink: Initial congestion control implementation
Naive heuristic lifted from an earlier proof of concept,
augmented with logic from
https://datatracker.ietf.org/doc/html/draft-ietf-rmcat-gcc-02#section-5.5

A property is exposed to disable congestion control for
testing purposes, it can be extended in the future to allow
selecting a different congestion control scheme.

+ Update the documentation
2021-11-10 02:55:46 +01:00
Mathieu Duponchelle 79fb66f338 Initial commit 2021-10-28 05:14:41 +02:00