Tim-Philipp Müller
92c0cf1285
rtp: opus: add test for payloader dtx packet handling
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1571 >
2024-05-18 09:29:29 +00:00
Tim-Philipp Müller
2585639054
rtp: Add Opus RTP payloader/depayloader
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1571 >
2024-05-18 09:29:29 +00:00
Sebastian Dröge
0215339c5a
Update Cargo.lock
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1576 >
2024-05-17 07:50:51 +00:00
Sebastian Dröge
539000574b
aws: Update to base32 0.5
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1576 >
2024-05-17 07:50:51 +00:00
Robert Ayrapetyan
bac5845be1
webrtc: add support for insecure tls connections
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1553 >
2024-05-16 19:34:57 +00:00
Mathieu Duponchelle
c282bc1bca
examples/dash_vod: compare durations to the millisecond
...
Otherwise when the segment durations aren't as clean cut as in the
example, multiple segments with the exact same duration in milliseconds
will get output, even though they could have been repeated.
Fix this so that people copying this code don't encounter the bug.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1574 >
2024-05-15 06:28:14 +00:00
Martin Nordholts
9a7f37e2b7
rtpgccbwe: Support linear regression based delay estimation
...
In our tests, the slope (found with linear regression) on a
history of the (smoothed) accumulated inter-group delays
gives a more stable congestion control. In particular,
low-end devices becomes less sensitive to spikes in
inter-group delay measurements.
This flavour of delay based bandwidth estimation with Google
Congestion Control is also what Chromium is using.
To make it easy to experiment with the new estimator, as
well as add support for new ones in the future, also add
infrastructure for making delay estimator flavour selectable
at runtime.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1566 >
2024-05-14 16:25:48 +00:00
Martin Nordholts
71e9c2bb04
rtpgccbwe: Also log self.measure
in overuse_filter()
...
Also log `self.measure` in overuse_filter() since tracking
`self.measure` over time help a lot in making sense of
`self.estimate` (and `amplified_estimate`).
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1566 >
2024-05-14 16:25:48 +00:00
Martin Nordholts
d9aa0731f4
rtpgccbwe: Rename variable t
to amplified_estimate
...
We normally multiply `self.estimate` with `MAX_DELTAS` (60).
Rename the variables that holds the result of this
calculation to `amplified_estimate` to make the distinction
clearer.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1566 >
2024-05-14 16:25:48 +00:00
Sebastian Dröge
49d3dd17a2
gtk4: Clean up Python example
...
It's not more or less equivalent to the Rust example.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1573 >
2024-05-13 10:06:32 +03: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
Rafael Caricio
5549dc7a15
fmp4mux: Support AV1 packaging in the fragmented mp4 plugin
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1544 >
2024-05-10 20:59:49 +00:00
Sebastian Dröge
613ed56675
webrtcsink: Add a custom signaller example in Python
...
This re-implements the default webrtcsink/src signalling protocol in
Python for demonstration purposes.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1569 >
2024-05-10 15:59:12 +00:00
Martin Nordholts
a719cbfcc6
rtp: Change RtpBasePay2::ssrc_collision from AtomicU64 to Option<u32>
...
Rust targets without support for `AtomicU64` is still
somewhat common. Running
git grep -i 'max_atomic_width: Some(32)' | wc -l
in the Rust compiler repo currently counts to 34 targets.
Change the `RtpBasePay2::ssrc_collision` from `AtomicU64` to
`Mutex<Option<u32>>`. This way we keep support for these
targets.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1562 >
2024-05-10 14:23:41 +00:00
7d75e263f8
fmp4mux: Add language from tags
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1557 >
2024-05-10 13:01:58 +00:00
Martin Nordholts
aabb011f5a
rtpgccbwe: Log effective bitrate in more places
...
While monitoring and debugging rtpgccbwe, it is very helpful
to get continuous values of what it considers the effective
bitrate. Right now such prints will stop coming once the
algorithm stabilizes. Print it in more places so it keeps
coming. Use the same format to make it simpler to extract
the values by parsing the logs.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1567 >
2024-05-10 11:56:51 +00:00
Martin Nordholts
e845e3575c
rtpgccbwe: Add mising 'ps' suffix to 'kbps' of 'effective bitrate'
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1567 >
2024-05-10 11:56:51 +00:00
Sebastian Dröge
f265c3197b
Update plugins cache JSON for new CI GStreamer version
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1570 >
2024-05-10 14:14:51 +03:00
Sebastian Dröge
e8e173d0d0
webrtc: Update Signallable interface to new interface definition API
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1570 >
2024-05-10 14:13:55 +03:00
Sebastian Dröge
f842aff6df
Update Cargo.lock
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1570 >
2024-05-10 14:09:27 +03:00
Sebastian Dröge
7e09481adc
rtp: Add JPEG RTP payloader/depayloader
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1543 >
2024-05-10 11:12:49 +03:00
Sebastian Dröge
1b48fb7ae7
deny: Re-add rustls override because the AWS SDK still uses an old version
2024-05-10 09:41:19 +03:00
Sanchayan Maity
fe55acb4c9
net/hlssink3: Refactor out HlsBaseSink & hlscmafsink from hlssink3
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1564 >
2024-05-09 21:50:32 +05:30
Tamas Levai
fe3607bd14
net/quinn: Remove dependency locks
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1565 >
2024-05-09 16:45:38 +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
Martin Nordholts
2b7488a4c8
rtpgccbwe: Log delay and loss target bitrates separately
...
When debugging rtpgccbwe it is helpful to know if it is
delay based or loss based band-width estimation that puts a
bound on the current target bitrate, so add logs for that.
To minimize the time we need to hold the state lock, perform
the logging after we have released the state lock.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1561 >
2024-05-08 19:12:44 +00:00
Sebastian Dröge
b4576a0074
gtk4: Fix description of the plugin
...
A paintable is not a widget and that aspect does not belong in the short
description anyway.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1563 >
2024-05-07 20:21:03 +03:00
Mathieu Duponchelle
8861fc493b
webrtcsink: improve error when no discovery pipeline runs
...
If for instance no encoder was found or the RTP plugin was missing,
it is possible that no discovery pipeline will run for a given stream.
Provide a more helpful error message for that case.
Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/534
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1560 >
2024-05-06 11:39:48 +00:00
Sanchayan Maity
2bfb6ee016
Add quinn
to default-members
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1558 >
2024-05-02 16:39:29 +00:00
Sanchayan Maity
edd7c258c8
Add quinn
plugin to README
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1558 >
2024-05-02 16:39:29 +00: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
be3ae583bc
Fix new Rust 1.78 clippy warnings
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1559 >
2024-05-02 18:36:23 +03:00
Sebastian Dröge
58106a42a9
quinn: Fix up dependencies
2024-05-02 09:59:55 +03:00
Sanchayan Maity
096538989b
docs: Add documentation for gst-plugin-quinn
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1036 >
2024-05-01 22:30:23 +05:30
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
Sanchayan Maity
18cf5292b7
net/quic: Fix inconsistencies around secure connection handling
...
This set of changes implements the below fixes:
- Allow certificates to be specified for client/quicsink
- Secure connection being true on server/quicsrc and false on
client/quicsink still resulted in a successful connection
instead of server rejecting the connection
- Using secure connection with ALPN was not working
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1036 >
2024-05-01 18:09:16 +05:30
Sanchayan Maity
97d8a79d36
net/quic: Drop private key type property
...
Use read_all helper from rustls_pemfile and drop the requirement for the
user having to specify the private key type.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1036 >
2024-05-01 18:09:16 +05:30
Sanchayan Maity
a306b1ce94
net/quic: Use a custom ALPN string
...
`h3` does not make sense as the default ALPN, as there likely isn't
going to be a HTTP/3 application layer, especially as our transport
is unidirectional for now. Use a custom string `gst-quinn` for now.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1036 >
2024-05-01 18:09:16 +05:30
Sanchayan Maity
22c6a98914
net/quic: Rename to quinnquicsink/src
...
There might be other QUIC elements in the future based on other
libraries. To prevent namespace collision, namespace the elements
with `quinn` prefix.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1036 >
2024-05-01 18:09:16 +05:30
Sanchayan Maity
8b64c734e7
net/quic: Use separate property for address and port
...
While at it, do not duplicate call to settings lock in property
getter and setter for every property.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1036 >
2024-05-01 18:01:49 +05:30
Tamas Levai
befd8d4bd2
net/quic: Allow SSL keylog file for debugging
...
rustls has a KeyLog implementation that opens a file whose name is
given by the `SSLKEYLOGFILE` environment variable, and writes keys
into it. If SSLKEYLOGFILE is not set, this does nothing.
See
https://docs.rs/rustls/latest/rustls/struct.KeyLogFile.html
https://docs.rs/rustls/latest/rustls/trait.KeyLog.html
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1036 >
2024-05-01 18:01:49 +05:30
Sanchayan Maity
ce930eab5f
net/quic: Allow setting multiple ALPN transport parameters
...
For reference, see
https://datatracker.ietf.org/doc/html/rfc9000#section-7.4
https://datatracker.ietf.org/doc/html/rfc7301
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1036 >
2024-05-01 18:01:49 +05:30
Tamas Levai
75b25d011f
net/quic: Allow specifying an ALPN transport parameter
...
See https://datatracker.ietf.org/doc/html/rfc9000#section-7.4 .
This controls the Transport Layer Security (TLS) extension for
application-layer protocol negotiation within the TLS handshake.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1036 >
2024-05-01 18:01:49 +05:30
Sanchayan Maity
953f6a3fd7
net: Add QUIC source and sink
...
To test, run receiver as
```bash
gst-launch-1.0 -v -e quicsrc caps=audio/x-opus use-datagram=true ! opusparse ! opusdec ! audio/x-raw,format=S16LE,rate=48000,channels=2,layout=interleaved ! audioconvert ! autoaudiosink
```
run sender as
```bash
gst-launch-1.0 -v -e audiotestsrc num-buffers=512 ! audio/x-raw,format=S16LE,rate=48000,channels=2,layout=interleaved ! opusenc ! quicsink use-datagram=true
```
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1036 >
2024-05-01 18:01:49 +05:30
Robert Mader
8e675de690
gtk4paintablesink: Add some documentation
...
And sync with `README.md` in order to make the environment variables
`GST_GTK4_WINDOW` and `GST_GTK4_WINDOW_FULLSCREEN` discoverable - and
because it's generally useful.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1555 >
2024-04-30 09:59:49 +03:00
Robert Mader
4326c3bfce
gtk4paintablesink: Also create window for gst-play
...
So it can be easily tested with
```
gst-play-1.0 --videosink=gtk4paintablesink ...
```
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1555 >
2024-04-29 22:44:56 +02:00
Robert Mader
47b788d44b
gtk4paintablesink: Add env var to fullscreen window
...
For testing purposes with e.g. gst-launch.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1555 >
2024-04-29 20:44:05 +00:00