Andoni Morales Alastruey
3000b08ec7
webrtcsrc: add support for navigation events
...
This provides support GstNavigation events handling in webrtcsrc so that
a GStreamer client can be used to control remotely a GStreamer server,
similar to how the web client is capable of controlling a wpesrc.
This is part of a larger set of patches that require more work on the
sinks and sources.
server: d3d11screencapturesrc ! webrtcsink enable-data-channel-navigation=true
client: webrtcsrc enable-data-channel-navigation=true ! d3d11videosink
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1281 >
2023-08-10 17:43:51 +00:00
Andoni Morales Alastruey
dd005a1e4c
threadshare: fix warning for unused variable
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1281 >
2023-08-10 17:43:51 +00:00
Loïc Le Page
e5e3dc6e19
net/webrtc/signaller: add property to get the connection client ID
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1296 >
2023-08-10 17:30:21 +02:00
Loïc Le Page
7af2ff0843
net/webrtc/signaller: advertise running producers in Listener mode
...
When starting a webrtcsrc-signaller client in Listener mode, only the producers
started after the client connection were advertised. All currently
running producers were ignored unlike the gstwebrtc-api behavior. This
commit now lists all running producers when the client Listener connects
and advertises them through the "producer-added" signal.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1296 >
2023-08-10 17:30:21 +02:00
Sebastian Dröge
d688aeb184
Update versions to 0.12.0-alpha.1
2023-08-10 17:21:11 +03:00
Sebastian Dröge
473bc94278
Add CHANGELOG.md for 0.11.0
2023-08-10 17:18:18 +03:00
Sebastian Dröge
23e1bfa720
deny: Temporarily allow a duplicated tungstenite dependency
...
See https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1293
2023-08-09 14:38:52 +03:00
Sebastian Dröge
3b41f206bc
Don't generate .def files for plugins
...
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/389
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1299 >
2023-08-09 13:54:34 +03:00
Sebastian Dröge
b3826c108d
webrtc: Update to async-tungstenite 0.23
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1299 >
2023-08-09 13:18:44 +03:00
Sebastian Dröge
508026d09a
Switch to resolver = "2"
for the workspace
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1298 >
2023-08-09 08:15:08 +00:00
Sebastian Dröge
5ee46a214c
webrtc: Use #[repr(C)]
to get a C-compatible layout for the Signaller
struct
...
This is required by GObject for class/interface and instance structs and
the reason why implementing the `glib::ObjectInterface` trait is unsafe.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/397
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1297 >
2023-08-09 10:32:44 +03:00
Sebastian Dröge
045b524bc6
deny: Remove dependencies that are not duplicated anymore
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1295 >
2023-08-07 20:04:52 +03:00
Sebastian Dröge
cac791a6ca
aws/webrtc: Update to AWS SDK 0.56/0.29
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1295 >
2023-08-07 20:03:51 +03:00
Sebastian Dröge
2591feb72e
Update a couple of dependencies
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1294 >
2023-08-07 11:42:32 +03:00
Sanchayan Maity
5b60ecbb18
net: webrtc/webrtchttp: Fix canceller usage
...
Commit 08b6251a
added the check to ensure only one canceller at a time for net/webrtc.
In `whipsink` and since `whipwebrtcsink` picked up the same implementation, there exists a
bug around the use of canceller. `whipsink` calls `wait_async` while passing the canceller
as an argument. The path `send_offer -> do_post -> parse_endpoint_response` results in the
canceller being replaced in each subsequent call to `wait_async`. Since `wait_async` call
does not ensure one canceller, with the async call the use of canceller/abort was subtly
broken. Similarly, for `whepsrc`.
We really don't need to use `wait_async` inside `do_post` for any `await` calls. If the
root future viz. `do_post` with `wait_async` is aborted, the child futures will be taken
care of.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1290 >
2023-08-04 10:01:11 +05:30
Nirbheek Chauhan
d6616fed3f
meson: Don't require Python 3.8 for cargo_wrapper.py
...
Documentation on gstreamer monorepo is disabled because the image we
use to build the docs only has Python 3.7
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2873
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1291 >
2023-08-02 13:37:49 +00:00
François Laignel
10902c0485
utils: fix further to glib change ControlFlow -> Propagation
...
See: https://github.com/gtk-rs/gtk-rs-core/pull/1144
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1292 >
2023-08-02 13:19:22 +02:00
Mathieu Duponchelle
9680805bdb
webrtcsink: don't forget to setup encoders for discoveries
...
The "encoder-setup" signal must also be emitted for the encoders
used in discovery pipelines in order for the default settings to
be applied.
This otherwise meant that for instance the x264 encoder would
use a 60 frames latency, greatly delaying startup.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1289 >
2023-08-01 00:28:52 +02:00
Mathieu Duponchelle
dbeb65da06
webrtc/utils: fix typos
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1289 >
2023-08-01 00:28:32 +02:00
Seungha Yang
516c623df5
transcriberbin: Configure audioresample in front of transcriber
...
Allows any samplerate and make it negotiable. Fixing a scenario
where transcriberbin is configured with passthrough enabled,
(and negotiated samplerate is not supported by transcriber)
and then setting passthrough=false later during playback.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1287 >
2023-07-24 22:51:07 +09:00
Sebastian Dröge
d4b3827efa
webrtcsink: NVIDIA V4L2 encoders always require NVMM memory
...
And if the input is not like that then a corresponding converter must be
inserted.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1283 >
2023-07-24 10:14:59 +00:00
Sebastian Dröge
0e26077722
Update CHANGELOG.md for 0.10.11
2023-07-20 14:45:50 +03:00
Sebastian Dröge
d999c1d3ba
ci: Directly use the CI images from gstreamer-rs
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1280 >
2023-07-20 02:59:51 +03:00
Sebastian Dröge
31b1cb8ca6
Update minimum supported Rust version to 1.70
...
gtk-rs will update soonish too.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1280 >
2023-07-19 09:19:34 +03:00
Sebastian Dröge
5532ea5d2a
fmp4mux: Update to dash-mpd 0.12
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1280 >
2023-07-19 09:18:50 +03:00
Sebastian Dröge
3661b4f95b
fmp4mux: Fix draining in chunk mode if keyframes are too late
...
We would create another chunk that ends after the fragment end, and
would from then on consider the stream always filled for the chunk
because it starts after the current fragment end (i.e. nothing would go
into this fragment).
This is obviously wrong because the actual fragment end moved further
ahead because of the additional chunk.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1277 >
2023-07-18 07:57:20 +00:00
Sebastian Dröge
2dc4ce5da5
ci: Remove omx=disabled from the documentation job
2023-07-17 09:45:21 +03:00
Mathieu Duponchelle
9707bb89e6
webrtcsink: fix pipeline when input caps contain max-framerate
...
GstVideoInfo uses max-framerate to compute its fps, but this leads
to issues in videorate when framerate is actually 0/1.
Fix this by stripping away max-framerate from input caps
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1276 >
2023-07-13 22:18:08 +02:00
Sebastian Dröge
0331522128
webrtcsink: Configure only 4 threads for x264enc
...
More threads can cause more slices to be created, and Chrome simply falls
apart if there are more than a few slices and fails decoding.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1275 >
2023-07-13 16:59:43 +03:00
Sebastian Dröge
ca51cf2509
webrtcsink: Translate force-keyunit events to force-IDR action signal for NVIDIA encoders
...
NVIDIA's v4l2 encoder elements don't handle the force-keyunit events but
instead provide a custom action signal based API for requesting a
keyframe.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1274 >
2023-07-12 10:09:32 +00:00
Nirbheek Chauhan
89002b4562
meson: Don't override RUSTFLAGS in the env
...
Meson does not add RUSTFLAGS to rustc.cmd_array(), so the effect of
this code is to override that value in the env.
This is hacky, since the env has to match during setup and compile
now, and rust_args added in the cross / native file will be ignored.
But at least it fixes this regression:
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/372
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1237 >
2023-07-12 13:44:17 +05:30
Sebastian Dröge
bbd3d9ffe0
Remove unnecessary mut
everywhere
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1273 >
2023-07-11 10:09:35 +03:00
Sebastian Dröge
c2201480cf
threadshare: Remove unnecessary call to default()
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1273 >
2023-07-11 10:09:22 +03:00
Sebastian Dröge
ee4aca3010
webrtcsink: Set config-interval=-1 and aggregate-mode=zero-latency on rtph26[45]pay
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1272 >
2023-07-10 19:48:37 +03:00
Sebastian Dröge
957a28f239
webrtcsink: Set VP8/VP9 payloader based on payloader element factory name
...
Instead of checking the encoder's name. There are more VP8/VP9 encoders
than the ones from the vpx plugin.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1272 >
2023-07-10 19:45:17 +03:00
Sebastian Dröge
1bb06d775c
fmp4: Update to dash-mpd 0.11
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1271 >
2023-07-10 08:29:29 +03:00
Sebastian Dröge
b6bc7fb6d5
Revert "cargo-deny: Remove bitflags from the list"
...
This reverts commit 64151790d0
.
Some dependencies still use bitflags 1
2023-07-07 09:08:50 +03:00
Mathieu Duponchelle
1dd13c4812
webrtcsink: fix session_id / peer_id confusion
...
In a few places, for instance parameter names, peer_id was still used
when session_id was actually getting passed.
Go through all instances of peer_id in webrtcsink/imp.rs and address
those mix-ups.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1269 >
2023-07-07 05:33:30 +00:00
Bilal Elmoussaoui
0fa2c861d6
Adapt to removal of glib::Inhibit
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1270 >
2023-07-06 22:02:31 +02:00
Jan Schmidt
2abc72b606
fallbackswitch: Change the threshold for trailing buffers
...
Only discard buffers on inactive pads if they are later
than the current output running time, rather than the
later timeout running time. That can mean switching
to a higher priority pad can happen quicker.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1198 >
2023-07-07 01:45:52 +10:00
Jan Schmidt
61e282af1a
fallbackswitch: Fix pad health calculation and notifies
...
Change the pad health calculation to consider a pad 'healthy'
if it has received data within the last 'timeout' window. Previously,
inactive pads were constantly flip-flopping between healthy and not
healthy depending on whether they were slightly ahead of or behind
the active pad running_time.
When the health status of a pad changes, make sure to always notify
the property, so that applications that are manually controlling
the active pad can make their switching decisions.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1198 >
2023-07-07 01:45:52 +10:00
Bilal Elmoussaoui
dd2d7d9215
Use re-exported once_cell
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1268 >
2023-07-06 17:50:49 +03:00
Bilal Elmoussaoui
2cc98bf410
Adapt to glib::Continue rename
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1268 >
2023-07-06 17:50:49 +03:00
Bilal Elmoussaoui
64151790d0
cargo-deny: Remove bitflags from the list
...
We now use bitflags 2.x
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1268 >
2023-07-06 15:26:13 +02:00
Sebastian Dröge
58adebb325
Fix a couple of typos
2023-07-06 13:50:17 +03:00
Sebastian Dröge
983f990fe9
Update docs after GStreamer update on the CI
2023-07-06 13:48:59 +03:00
Sebastian Dröge
4918bf0ab2
deny: Update
2023-07-06 08:55:14 +03:00
Olivier Crête
08b6251a7a
webrtc-utils: Ensure there is only one cancellable call at a time
...
Since we only have one canceller at a time, panic if one try to
use it twice in parallel.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1262 >
2023-07-05 21:43:17 +00:00
Olivier Crête
817b60a758
webrtc: Value.get() is already type checks in the property calls
...
GObject will have ensured we get a GValue of the right type.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1262 >
2023-07-05 21:43:17 +00:00
Olivier Crête
793ee66afa
webrtcsink: Add LiveKit WebRTC sink and signaller
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1262 >
2023-07-05 21:43:17 +00:00