Sebastian Dröge
4ad101b53b
Use once_cell crate directly again
...
The glib crate does not depend on it anymore and also does not re-export
it anymore.
Also switch some usages of OnceCell to OnceLock from std.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1441 >
2024-01-31 18:07:57 +02:00
Sebastian Dröge
451d928026
webrtc: Update AWS signaller to http 1
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1441 >
2024-01-31 18:07:57 +02:00
Sanchayan Maity
95c007953c
webrtchttp: Allow audio or video caps to be specified as None with WHEP
...
We were setting audio and video caps by default even when the user
might have requested only video or audio. This would then result
in a `Could not reuse transceiver` error from the webrtcbin.
Fix this by allowing the user to specify audio or video caps as
None. This allows us to maintain the earlier behaviour for backward
compatibility while allowing the user to not request audio or video
as need be.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1433 >
2024-01-18 15:43:19 +05:30
Sebastian Dröge
764143d971
webrtc: Remove unnecessary manual Send+Sync
implementations for signallers
...
These are automatically implemented.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/483
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1432 >
2024-01-18 10:01:25 +02:00
Sebastian Dröge
1af18f3028
webrtc: Require Send+Sync
for signaller implementations
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1432 >
2024-01-18 10:01:01 +02:00
Eva Pace
80b58f3b45
net/webrtc/janusvr: add JanusVRWebRTCSink plugin/signaller
...
The JanusVRWebRTCSink is a new plugin that integrates with the Video
Room plugin of the Janus Gateway, which simplifies WebRTC communication.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1362 >
2024-01-17 20:33:57 +00:00
Maksym Khomenko
773ebc7854
webrtcsrc: don't restrict RTP extensions to TWCC only
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1381 >
2024-01-17 07:34:01 +00:00
Sebastian Dröge
dfa95d8ed3
webrtc: Update to livekit-api / livekit-protocol 0.3
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1427 >
2024-01-16 07:52:48 +00:00
Maksym Khomenko
fecbe01e06
webrtcsink: make 'extensions' property usage conditional
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1423 >
2024-01-16 07:13:56 +00:00
Sebastian Dröge
73a53e38c4
aws: s3: Disable remaining tests too for now
...
They fail state changes, which cases `GstHarness` to abort.
2024-01-16 09:13:41 +02:00
Arun Raghavan
fd3675aac0
aws: s3: Temporarily disable putobject tests
...
Disabling while we figure out why it's failing.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1429 >
2024-01-15 21:43:25 -05:00
Arun Raghavan
8b18ca15b5
Revert "aws: Disable putobjectsink tests for now"
...
This reverts commit b128d127c2
.
Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/472
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1416 >
2024-01-11 15:38:36 -05:00
Arun Raghavan
06213714c5
aws: putobjectsink: Fix a couple of minor log typos
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1416 >
2024-01-11 15:38:36 -05:00
Nirbheek Chauhan
2d85048925
webrtc/signalling: We get the address when accepting
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1412 >
2023-12-29 13:28:48 +00:00
Nirbheek Chauhan
63b568f4a0
webrtc/signalling: Fix potential hang and FD leak
...
If a peer connects via TCP and never initiates TLS, then the server
will get stuck in the accept loop. Spawn a task when accepting a TLS
connection, and timeout if it doesn't complete in 5 seconds.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1412 >
2023-12-29 13:28:48 +00:00
Maksym Khomenko
17f0b61576
webrtcsink: add payloader-setup signal
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1389 >
2023-12-23 08:02:08 +00:00
Sebastian Dröge
b128d127c2
aws: Disable putobjectsink tests for now
...
See https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/472
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1413 >
2023-12-22 13:25:12 +02:00
Arun Raghavan
6d47045a60
aws: s3sink: Fix spelling of debug category
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1337 >
2023-12-18 16:13:48 -05:00
Arun Raghavan
410d104ad6
aws: s3putobjectsink: Add a flush-on-error property
...
Makes sure we can send out data even if the pipeline shutdown in error.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1337 >
2023-12-18 16:13:48 -05:00
Arun Raghavan
12dbf50ddc
aws: s3putobjectsink: Add some thresholds for flushing
...
Lets us connect when we perform a flush
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1337 >
2023-12-18 16:13:48 -05:00
Arun Raghavan
a54b2dd39e
aws: s3: Add a new awss3putobjectsink
...
When streaming small amounts of data, using awss3sink might not be a
good idea, as we need to accumulate at least 5 MB of data for a
multipart upload (or we flush on EOS).
The alternative, while inefficient, is to do a complete PutObject of
_all_ the data periodically so as to not lose data in case of a pipeline
failure. This element makes a start on this idea by doing a PutObject
for every buffer.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1337 >
2023-12-18 10:39:23 -05:00
Sebastian Dröge
81dd45c814
webrtc: Downgrade aws-smithy-http to 0.60
...
Version 0.61 was yanked from crates.io.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1407 >
2023-12-14 09:11:07 +02:00
Sebastian Dröge
2f2bf6ca8f
webrtc: Update to aws-smithy-http 0.61
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1404 >
2023-12-09 12:21:38 +02:00
Sebastian Dröge
0bae18fe0d
rtp: Update to bitstream-io 2.0
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1404 >
2023-12-09 12:17:51 +02:00
Sebastian Dröge
181bd13103
Update to async-tungstenite 0.24
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1404 >
2023-12-09 12:17:11 +02:00
Guillaume Desmottes
6dfd1c1496
use new debug and parse API
...
Changes from https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1355
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1403 >
2023-12-04 15:58:21 +01:00
Sebastian Dröge
f13574d8ed
Update further AWS SDK crates to 1.0
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1400 >
2023-11-26 10:26:02 +02:00
Mathieu Duponchelle
cf1c7600a2
webrtcsink: don't panic on failure to request pad from webrtcbin
...
webrtcbin will refuse pad requests for all sorts of reasons, and should
be logging an error when doing so, simply post an error message and let
the application deal with it, the reason for the refusal should
hopefully be available in the logs to the user.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1399 >
2023-11-24 19:53:38 +01:00
Sebastian Dröge
c3ced8c7e6
Update to AWS SDK 1.0 / 0.60 / 0.39
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1397 >
2023-11-21 10:32:59 +02:00
Sebastian Dröge
1d9c89e3fe
Update to AWS SDK 0.101 / 0.59 / 0.38
2023-11-20 10:13:13 +02:00
Sebastian Dröge
66c62d69b9
aws: Stop using deprecated aws_config function in the test
2023-11-18 10:16:24 +02:00
Taruntej Kanakamalla
43ee6bfc1c
net/webrtc: add whipserversrc
...
Implement new signaller WhipServerSignaller
- an http server using 'warp'
- handlers for the POST, OPTIONS, PATCH and DELETE
- fixed path `/whip/endpoint` as the URI
- fixed value 'whip-client' as the producer peer id
- fixed resource url `/whip/resource/whip-client`
Derive whipserversrc element from BaseWebRTCSrc
- implement constructed method for ObjectImpl to set
non-default signaller, i.e., WhipServerSignaller
- bind the properties stun-server and turn-servers to those on
the Signaller
Connect to 'webrtcbin-ready' signal in the constructor of WhipServerSignaller
- it will be emitted by the webrtcsrc when the webrtcbin element is ready
- the closure for this signal will in turn connect to webrtcbin's ice-gathering-state
and perform send with the answer sdp via the channel
- the WhipServer will hold its HTTP response in POST handler until this signal
is received or timeout which happens early
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1284 >
2023-11-17 18:08:44 +00:00
Taruntej Kanakamalla
ed3aa740be
net/webrtc: deprecate consumer-added on the signaller
...
add a new signal webrtcbin-ready in this place doing same
thing but can be used for both consumers and producers
Please note this change is only to the consumer-added
signal on the signaller interface.
The consumer-added signal on the webrtcsink is unchanged
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1284 >
2023-11-17 18:08:44 +00:00
Taruntej Kanakamalla
2d3d03b4d3
net/webrtc: rename WhipSignaller as WhipClientSignaller
...
remove generalized names to accommodate for the WhipServer
- name the Signaller for whipsink as WhipClient
- name the Settings for whipsink as WhipClientSettings
- name the State for whipsink as WhipClientState
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1284 >
2023-11-17 18:08:44 +00:00
Taruntej Kanakamalla
a0638ec983
net/webrtc: Extract BaseWebRTCSrc
...
Define a Base for all the webrtcsrc type elements
so they can all be derived from it. Similar to base
element defined for webrtcsink type elements
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1284 >
2023-11-17 18:08:44 +00:00
Sebastian Dröge
dee27e35b7
Update to latest AWS SDK
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1395 >
2023-11-17 11:22:29 +02:00
Sebastian Dröge
58723f2a8c
Update to AWS SDK 0.36
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1394 >
2023-11-15 17:20:58 +02:00
François Laignel
9250c592a7
ndi: don't accumulate meta with audio only streams
...
Currently, only closed caption metadata are supported. When the next video
frame is received, pending meta are dequeued and parsed. If close captions
are found, they are attached to the video frame.
For audio only streams, it doesn't make sense to enqueue metadata. They would
accumulate in `pending_metadata` and would never be dequeued.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/460
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1392 >
2023-11-13 19:26:23 +01:00
Sebastian Dröge
39155ef81c
ndisrc: Implement zerocopy handling for the received frames if possible
...
Also move processing from the capture thread to the streaming thread.
The NDI SDK can cause frame drops if not reading fast enough from it.
All frame processing is now handled inside the ndisrcdemux.
Also use a buffer pool for video if copying is necessary.
Additionally, make sure to use different stream ids in the stream-start
event for the audio and video pad.
This plugin now requires GStreamer 1.16 or newer.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1365 >
2023-11-13 13:22:48 +02:00
Sebastian Dröge
2afffb39dd
ndi: Don't mark private type as public
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1365 >
2023-11-13 10:29:25 +02:00
Sebastian Dröge
99d7cce0d6
ndi: Refactor frame structs to have static lifetimes
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1365 >
2023-11-13 10:29:25 +02:00
Sebastian Dröge
eb137ec6dc
ndi: Remove wrong Clone
impl on RecvInstance
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1365 >
2023-11-13 10:29:25 +02:00
Arun Raghavan
771741c10c
Revert "s3: tests: Remove emoji-based tests for now"
...
This reverts commit a49a5dcb11
.
Now that hotdoc should work with emoji, let's bring the tests back.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1386 >
2023-11-09 11:50:53 -05:00
Maksym Khomenko
e5fd2c3568
webrtcsrc: add turn-servers property
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1380 >
2023-11-04 10:19:45 +00:00
Mathieu Duponchelle
5371eb52ad
Port to AWS SDK 0.57/0.35
...
Co-authored-by: Sebastian Dröge <sebastian@centricular.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1379 >
2023-11-03 15:13:45 +00:00
Sebastian Dröge
f7745a336f
aws: Update to test-with 0.12
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1379 >
2023-11-03 15:13:45 +00:00
Sebastian Dröge
16b917abb1
Update for gst::Rank
API changes
2023-11-02 14:10:59 +02:00
Piotr Brzeziński
436b6d8efb
gstwebrtc-api: Patch webrtc-adapter to fix Safari behaviour
...
There's currently a Safari-side bug causing webrtc-adapter to be unable to correctly shim the empty-candidate scenario
which we're using. This patch is very much a workaround and should be removed as soon as Safari and/or webrtc-adapter
fixes this on their side.
https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/439
https://github.com/webrtcHacks/adapter/issues/1140
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1377 >
2023-10-30 16:36:11 +00:00
Sebastian Dröge
16c00ae3f5
Set sync=false in rsfilesink / s3sink
...
BaseSink defaults to sync=true and that doesn't make much sense for
these elements.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1376 >
2023-10-30 17:38:46 +02:00
Sebastian Dröge
855b03a9ea
Use let-else instead of match for weak reference upgrades
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1375 >
2023-10-30 11:34:35 +02:00