Maksym Khomenko
5b03f7d7b0
webrtcsrc: use @watch instead of @to-owned
...
@to-owned increases refcount of the element, which prevents the object from proper destruction, as the initial refcount with ElementFactory::make is larger than 1.
Instead, use @watch to create a weak reference and unbind the closure automatically if the object gets destroyed
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1355 >
2023-10-11 11:54:51 +03:00
Sebastian Dröge
3fc6220009
Update to AWS SDK 0.33
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1354 >
2023-10-09 11:28:05 +03:00
Taruntej Kanakamalla
245185d2f6
net/webrtc/whip_signaller: Use the correct URL during redirect
...
Copy of 90e06dc3
for whipclientsink
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1351 >
2023-10-06 13:11:46 +00:00
Maksym Khomenko
e4096b5157
webrtcsink: README: add documentation for custom signaller
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1340 >
2023-10-06 12:58:04 +03:00
Maksym Khomenko
a9719cada2
webrtcsink: add custom signaller example
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1340 >
2023-10-06 12:58:03 +03:00
Sebastian Dröge
1c4833bc5d
Update to AWS SDK 0.32
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1352 >
2023-10-06 09:11:17 +03:00
Sebastian Dröge
4569b7eca6
Fix various new 1.73 clippy warnings
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1347 >
2023-10-03 17:47:30 +03:00
Piotr Brzeziński
fe4273ca2a
webrtc: Fix paths in README
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1342 >
2023-09-29 17:05:29 +02:00
Sebastian Dröge
9595c6a1e5
Update to AWS SDK 0.31
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1334 >
2023-09-25 13:36:12 +03:00
Seungha Yang
225482f7ed
webrtcsink: Propagate GstContext messages
...
Implement CustomBusStream so that NEED_CONTEXT and HAVE_CONTEXT
messages from session/discovery can be forwarded to parent
pipeline and also GstContext can be shared.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1322 >
2023-09-15 00:26:08 +09:00
Seungha Yang
1de7754616
webrtcsink: Add support for d3d11 memory and qsvh264enc
...
Adding d3d11 memory and qsvh264enc support
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1322 >
2023-09-15 00:26:04 +09:00
Robert Ayrapetyan
18967dadbf
gstwebrtc-api: drop guacamole
...
fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/417
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1317 >
2023-09-11 19:21:41 +00:00
Mathieu Duponchelle
2381558169
webrtcsink: fix codec selection discoveries
...
Since ab1ec12698
:
webrtcsink: Add support for pre encoded streams
Discovery pipelines for remote offers were no longer fed any buffers.
While some encoders could already produce caps with no input buffers,
others, such as x264enc, simply hung forever. This resulted in no answer
getting produced if for instance video-caps were constrained to H264.
Fix this by tracking discovery pipelines at the State rather than the
InputStream level, removing the useless distinction of Initial vs.
CodecSelection discoveries, and always feeding all the current
discovery pipelines with incoming buffers.
For reference, the issue here was that codec selection discoveries were
assigned to local clones of InputStreams, not tracked anywhere, and thus
not iterated for discoveries when queuing incoming buffers from the
chain function, as it only looked at the original instance of
InputStream's in state.streams.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1319 >
2023-09-08 12:58:08 +00:00
Robert Ayrapetyan
e83238b681
webrtcsink: fix TWCC extension adding
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1310 >
2023-09-04 18:27:51 +00:00
Sebastian Dröge
8d433761d1
Fix indentation of let-else blocks
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1308 >
2023-08-29 12:21:38 +00:00
Taruntej Kanakamalla
de6d2e7f40
net/webrtc: rename whipwebrtcsink as whipclientsink
...
add a deprecation warning in whipsink to indicate it
should be used only for RTP content
add documentation in whipsink code regarding usage and
deprecation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1282 >
2023-08-26 10:53:30 +05:30
Sebastian Dröge
905da44958
Update to AWS SDK 0.30
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1313 >
2023-08-25 09:46:52 +03:00
Andoni Morales Alastruey
3c1f05cdc3
webrtcsrc: document how to use the element for remote control
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1281 >
2023-08-10 17:43:51 +00:00
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Sebastian Dröge
58adebb325
Fix a couple of typos
2023-07-06 13:50:17 +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
Sebastian Dröge
c350f3c2af
webrtcink: Use correct property types for nvvideoconvert
...
These are enums and not plain integers.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1256 >
2023-06-26 14:48:58 +00:00
Mathieu Duponchelle
84a33ca7b9
webrtcsink: bring in signalling code from whipsink as a signaller
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1168 >
2023-06-16 00:32:56 +02:00
Mathieu Duponchelle
f00a169081
webrtcsrc: add twcc extension to codec-preferences when present
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1245 >
2023-06-15 20:41:53 +00:00
Mathieu Duponchelle
1200ae0ee6
webrtcsink: improve debug
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1239 >
2023-06-14 22:27:15 +02:00
Mathieu Duponchelle
64056c5527
net/webrtc: improve documentation layout
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1239 >
2023-06-14 22:27:15 +02:00
Sebastian Dröge
8a7a1f519c
webrtc: Update to fastrand 2
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1240 >
2023-06-09 09:36:51 +03:00
Mathieu Duponchelle
81ae675f2d
webrtcsink: don't try to use cudaconvert if not present
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1238 >
2023-06-08 15:32:49 +02:00