Ruben González
6fed4acf53
quinn: add a new WebTransport server sink
...
Co-authored-by: Andoni Morales Alastruey <amorales@fluendo.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1867 >
2024-12-09 12:26:48 +00:00
Andoni Morales Alastruey
ef21a6aa3b
quinn: add a new WebTransport client element
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1867 >
2024-12-09 12:26:48 +00:00
Andoni Morales Alastruey
62e49b3ed5
quinn: add support for Sec1 keys
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1867 >
2024-12-09 12:26:48 +00:00
Andoni Morales Alastruey
cf8b49b257
quinn: make private key optional for clients
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1867 >
2024-12-09 12:26:48 +00:00
Andoni Morales Alastruey
4104ebca25
quinn: cleanup transport config creation
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1867 >
2024-12-09 12:26:48 +00:00
Sebastian Dröge
6aeb3f2af2
Fix / silence various new Rust 1.83 clippy warnings
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1954 >
2024-11-30 14:57:24 +02:00
Sanchayan Maity
c3de9e5927
net/quinn: Add examples for QUIC multiplexing & RoQ
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1937 >
2024-11-28 17:52:18 +00:00
Sanchayan Maity
28e66e150f
net/quinn: Use aggregator as base class for quinnroqmux
...
While at it, also update and fix the docs.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1775 >
2024-11-18 11:46:20 +05:30
Sanchayan Maity
accb6b02ea
net/quinn: Add muxer and demuxer for RTP over QUIC
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1775 >
2024-11-16 11:46:13 +05:30
Sanchayan Maity
d5425c5225
net/quinn: Fix test using QUIC Stream
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1634 >
2024-11-15 23:14:13 +00:00
Sanchayan Maity
5bf44b6187
net/quinn: Enable log feature
...
This is required if and when we do need to capture logs from quinn for
debugging.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1634 >
2024-11-15 23:14:13 +00:00
Sanchayan Maity
324f3531be
net/quinn: Use aggregator as base class for quinnquicmux
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1634 >
2024-11-15 23:14:13 +00:00
Sanchayan Maity
5c829e6ca8
net/quinn: Add quinnquicdemux to support stream demultiplexing
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1634 >
2024-11-15 23:14:13 +00:00
Sanchayan Maity
f4ecf3873b
net/quinn: Handle multiple stream connections in quinnquicsrc
...
While at it, use PushSrc as base class. quinnquicsrc never supported
seeking and only ever operated in push mode. Length and offset for
create from BaseSrc was also never really honoured. Use PushSrc as
the base class which is more appropriate.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1634 >
2024-11-15 23:14:13 +00:00
Sanchayan Maity
babb6f360b
net/quinn: Support stream multiplexing in quinnquicsink
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1634 >
2024-11-15 23:14:13 +00:00
Sanchayan Maity
1cc2682b55
net/quinn: Add quinnquicmux to support stream multiplexing
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1634 >
2024-11-15 23:14:13 +00:00
Sanchayan Maity
0eb3f52356
net/quinn: Add helper for queries
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1634 >
2024-11-15 23:14:13 +00:00
Sanchayan Maity
0e89a79727
net/quinn: Add helper for adding stream id as meta to buffers
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1634 >
2024-11-15 23:14:13 +00:00
Sebastian Dröge
ef39046e18
Update to thiserror 2
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1911 >
2024-11-06 11:02:41 +02:00
Sanchayan Maity
af54b2396b
net/quinn: Specify crypto provider explicitly
...
rustls allows the choice of ring or aws-lc-rs as the cryptographic
library implementation. This is enabled/selected via Cargo feature
flags. We have plugins directly or indirectly depending on rustls
like quinn, aws and spotify. In the presence of multiple plugins,
selecting different implementations as the default, rustls can
panic.
The safest way to avoid this is by using builder_with_provider
and selecting a provider explicitly.
See below issues for further discussion and clarifications.
https://github.com/rustls/rustls/issues/1877
https://github.com/seanmonstar/reqwest/pull/2225
While at it, also specify features explicitly for quinn and rustls.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1878 >
2024-10-23 21:24:22 +05:30
kingosticks
a81b7f380f
net/quinn: Fix test panic due to unset default crypto provider
...
If another dep in the workspace pulls in a different rustls crypto
provider then we need to explicitly specify our default provider.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1801 >
2024-10-23 12:37:05 +00:00
Sebastian Dröge
7e59c3f0fd
Remove once_cell dependency
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1868 >
2024-10-21 17:53:18 +00:00
Sanchayan Maity
d6e7031799
net/quinn: Fix panic due to unset default crypto provider
...
Fix CI failure that we see after the upgrade of rustls from
0.23.13 to 0.23.15.
Related docs/PR
https://docs.rs/rustls/latest/rustls/crypto/struct.CryptoProvider.html#using-the-per-process-default-cryptoprovider
https://github.com/quinn-rs/quinn/pull/1882
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1865 >
2024-10-21 09:27:33 +00:00
Sanchayan Maity
12be9a24a6
net/quinn: Fix generation of self signed certificate
...
The certificate chain was incorrectly being passed the private key instead
of certificate. With rustls 0.23.11 version, this error was being caught
and reported. As stated in the 0.23.11 release, it has a new feature
"API for determining whether a CertifiedKey's certificate and private key
matches: keys_match(). This is called from existing fallible functions
that accept a private key and certificate (for example, with_single_cert())
so these functions now detect this misconfiguration."
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1666 >
2024-07-12 12:26:54 +05:30
Sebastian Dröge
98b28d69ce
Update for new debug log macro syntax
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1658 >
2024-07-08 11:25:23 +03:00
Sanchayan Maity
0bd98e2c34
net/quinn: Allow dropping buffers when buffer size exceeds maximum datagram size
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1613 >
2024-06-25 20:15:40 +05:30
Sanchayan Maity
e00ebca63f
net/quinn: Add stats property for connection statistics
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1613 >
2024-06-25 20:15:40 +05:30
Sanchayan Maity
2b35f009fb
net/quinn: Update quinn to 0.11.2
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1613 >
2024-06-25 20:15:40 +05:30
Sanchayan Maity
cf7172248c
net/quinn: Allow setting some parameters from TransportConfig
...
As of now, we expose the below four properties from `TransportConfig`.
- Initial MTU
- Minimum MTU
- Datagram receive buffer size
- Datagram send buffer size
Maximum UDP payload size from `EndpointConfig` and upper bound from
`MtuDiscoveryConfig` are also exposed as properties.
See the below documentation for further details.
- https://docs.rs/quinn/latest/quinn/struct.TransportConfig.html
- https://docs.rs/quinn/latest/quinn/struct.MtuDiscoveryConfig.html
- https://docs.rs/quinn/latest/quinn/struct.EndpointConfig.html
While at it, also clean up passing function parameters to the functions
in utils.rs.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1613 >
2024-06-25 20:15:40 +05:30
Sanchayan Maity
bc5ed023e4
net/quinn: Improve datagram handling
...
We now check if the peer actually supports Datagram and refusing to
proceed if it does not. Since the datagram size can actually change
over the lifetime of a connection according to variation in path MTU
estimate, also check buffer size before trying to send.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1613 >
2024-06-25 20:15:40 +05:30
Sebastian Dröge
00aaecad07
quinn: Fix race condition when unlocking
...
It would be possible that there is no cancellable yet when unlock() is
called, then a new future is executed and it wouldn't have any
information that it is not supposed to run at all.
To solve this remember if unlock() was called and reset this in
unlock_stop().
Also actually implement unlock() / unlock_stop() for the sink, and don't
cancel in stop() as unlock() / unlock_stop() would've been called before
that already.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1602 >
2024-06-10 07:38:29 +00:00
Sanchayan Maity
8171a00943
net/quinn: Fix pad template naming typo
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1601 >
2024-06-05 13:44:40 +05:30
Tamas Levai
802ff6a67c
net/quinn: Make QUIC role configurable
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1575 >
2024-05-31 23:20:38 +02:00
Tamas Levai
71cd80f204
net/quinn: Enable client to keep QUIC conn alive
...
Co-authored-by: Felician Nemeth <nemethf@tmit.bme.hu>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1568 >
2024-05-11 08:51:00 +02:00
Tamas Levai
5884c00bd0
net/quinn: Improve stream shutdown process
...
Co-authored-by: Sanchayan Maity <sanchayan@asymptotic.io>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1565 >
2024-05-09 16:43:26 +02:00
Tamas Levai
13c3db7857
net/quinn: Port to quinn 0.11 and rustls 0.23
...
Co-authored-by: Felician Nemeth <nemethf@tmit.bme.hu>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1565 >
2024-05-09 13:49:33 +02:00
Sanchayan Maity
3a3cec96ff
net/quinn: Add pipeline example
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1558 >
2024-05-02 16:39:29 +00:00
Sanchayan Maity
80f8664564
net/quinn: Use camel case acronym
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1558 >
2024-05-02 16:39:29 +00:00
Sebastian Dröge
58106a42a9
quinn: Fix up dependencies
2024-05-02 09:59:55 +03:00
Sanchayan Maity
150ad7a545
net/quinn: Use separate property for certificate & private key file
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1036 >
2024-05-01 22:30:23 +05:30
Sanchayan Maity
0d2f054c15
Move net/quic to net/quinn
...
While at it, add this to meson.build.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1036 >
2024-05-01 22:30:23 +05:30