Nirbheek Chauhan
62e33e04ea
webrtc_sendrecv.py: Allow using a camera instead of test sources
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5504 >
2023-10-19 05:47:03 +00:00
Eva Pace
003e419ff5
examples: webrtc: rust: i64 -> u64 for session and handle ids
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5307 >
2023-09-11 06:21:32 +00:00
Sebastian Dröge
ae28e1035e
examples: webrtc: rust: Update to gstreamer-rs 0.21
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5181 >
2023-08-14 09:06:08 +00:00
Nirbheek Chauhan
639f8a24ae
webrtc/js: Support renegotiation during a call correctly
...
When a video track is muted, hide the video element to differentiate
it from a track that is stuck because we stopped receiving RTP data.
Show it again when it is unmuted.
When a video track is removed, remove the video element. It will be
re-added on renegotiation.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5045 >
2023-07-19 13:01:49 +00:00
Nirbheek Chauhan
57b6c743ef
webrtc/js: Remove obsolete mozilla stun server
...
Mozilla's public stun server is gone. Remove it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5045 >
2023-07-19 13:01:49 +00:00
Nirbheek Chauhan
80603746af
webrtc/js: Support pressing "enter" to connect
...
I press "enter" every time which doesn't work and then I click
"Connect", so let's fix that.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5045 >
2023-07-19 13:01:49 +00:00
Matthew Waters
c46805cb0d
examples/webrtc/android: fix build
...
Was missing a GstBus *bus; local variable
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4747 >
2023-06-03 23:21:35 +00:00
Matthew Waters
63b6071a4a
examples/webrtc/android: update for videoconvertscale addition
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4747 >
2023-06-03 23:21:34 +00:00
Matthew Waters
5889059cff
examples/android: specify the exact NDK (r25c) version to use
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4747 >
2023-06-03 23:21:34 +00:00
Nirbheek Chauhan
aa1fa50129
webrtc_sendrecv.py: Add AV1 support when creating the offer
...
Requires svtav1enc at present for simplicity.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4644 >
2023-05-17 16:20:36 +00:00
Nirbheek Chauhan
61e536b546
webrtc_sendrecv.py: Fix warnings about gi version
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4644 >
2023-05-17 16:20:36 +00:00
François Laignel
1abc8aa733
examples: webrtc/janus/rust: add mandatory ws HTTP request headers
...
Trying to run the `janus` Rust `gst-example`, `tungstenite` reports:
> Missing, duplicated or incorrect header sec-websocket-key
Indeed, all mandatory headers from the following list are missing
(code from `tungstenite:🤝 :client::generate_request`):
```rust
const WEBSOCKET_HEADERS: [&str; 5] =
["Host", "Connection", "Upgrade", "Sec-WebSocket-Version", KEY_HEADERNAME];
```
These headers are mandatory for the websocket handshake. This feature is
selected by async-tungstenite.
Prior to this commit, the HTTP request was created with the header
"Sec-WebSocket-Protocol" only. Delegating the request creation to tungstenite
adds the missing headers.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4240 >
2023-03-22 09:48:28 +00:00
Philippe Normand
906b90287c
webrtcbin: Relay add-ice-candidate errors from Ice implementation to Application
...
The `add_candidate` vfunc of the GstWebRTCICE interface gained a GstPromise
argument, which is an ABI break. We're not aware of any external user of this
interface yet so we think it's OK.
This change is useful in cases where the application needs to bubble up errors
from the underlying ICE agent, for instance when the agent was given an invalid
ICE candidate.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3960 >
2023-02-27 09:09:47 +00:00
Thibault Saunier
0f577533e6
examples: Add an option to disable tests
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3930 >
2023-02-10 12:59:55 +00:00
Sebastian Dröge
fc5bad5f75
examples: webrtc: rust: Fix a couple of minor clippy warnings
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3928 >
2023-02-10 11:43:00 +00:00
Sebastian Dröge
28ab612a88
examples: webrtc: rust: Update to gstreamer-rs 0.20
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3928 >
2023-02-10 11:43:00 +00:00
Nirbheek Chauhan
033a71e405
webrtc examples: Use webrtc.gstreamer.net
...
Actually just a CNAME to webrtc.nirbheek.in for now, but it allows
replacement / hosting without my involvement, so reduces the bus
factor.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3802 >
2023-02-04 13:37:02 +00:00
Tim-Philipp Müller
06e9d78ade
gst-examples: drop use of GSlice allocator
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3784 >
2023-02-03 17:48:09 +00:00
Matthew Waters
b134433e0b
examples/webrtc-sendrecv: add some dot file dumps on async-done and error messages
...
Just as a helpful thing if debugging is needed
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3823 >
2023-01-30 05:22:59 +00:00
Nirbheek Chauhan
32e8ff4e2a
webrtc_sendrecv.py: Fix PEP8 warnings in CI lint
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3742 >
2023-01-25 16:53:17 +00:00
Nirbheek Chauhan
6a83602601
webrtc_sendrecv.py: Handle LATENCY messages
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3742 >
2023-01-25 16:53:17 +00:00
Nirbheek Chauhan
5500c228f6
webrtc_sendrecv.py: Add bus message handling
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3742 >
2023-01-25 16:53:17 +00:00
Nirbheek Chauhan
9b2404e76d
webrtc_sendrecv.py: Add support for using H264 encoding
...
Currently only works when we are creating the offer or the offer only
contains H264.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3742 >
2023-01-25 16:53:17 +00:00
Nirbheek Chauhan
6f99faa080
webrtc_sendrecv.py: Use sine wave for audio instead of red-noise
...
Makes it easier to notice when there's packet loss or other audio
distortion.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3742 >
2023-01-25 16:53:17 +00:00
Sebastian Dröge
4e86c77270
examples: webrtc: rust: Update dependencies
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3758 >
2023-01-20 11:36:57 +00:00
Sebastian Dröge
f45136827b
examples: webrtc: multiparty-sendrecv: rust: Remove unnecessary macro recursion limit annotation
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3758 >
2023-01-20 11:36:57 +00:00
Sebastian Dröge
bf4a3c89cd
examples: webrtc: sendrecv: rust: Implement OFFER_REQUEST
handling
...
Allow requesting an offer from the peer if we're joining a call with a
peer, and allow the peer to request an offer from us if waiting for an
incoming call.
This implements all 4 variants the protocol allows for.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3758 >
2023-01-20 11:36:57 +00:00
Sebastian Dröge
638465908e
examples: webrtc: sendrecv: rust: Allow providing our ID via the commandline
...
Otherwise it continues to use a random ID as before.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3758 >
2023-01-20 11:36:57 +00:00
Sebastian Dröge
541c637910
examples: webrtc: sendrecv: rust: Implement TWCC support in both directions
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3758 >
2023-01-20 11:36:57 +00:00
Sebastian Dröge
6541dccaea
examples: webrtc: rust: Set keyframe-max-dist=2000 and picture-id-mode=15-bit for VP8 and perfect-timestamps=true for audio
...
This makes it in sync with the C sendrecv and generally behaves better.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3758 >
2023-01-20 11:36:57 +00:00
Sebastian Dröge
083b9f2a6e
examples: webrtc: sendrecv: rust: Use the correct payload types if the remote is the offerer
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3758 >
2023-01-20 11:36:57 +00:00
Sebastian Dröge
ac1d10f80c
gst-examples: Update Rust dependencies
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3750 >
2023-01-19 10:40:32 +02:00
Sebastian Dröge
085e6c036a
android: Update minimum SDK version to Android 21
...
Otherwise we can't bump the minimum version of the cerbero build without
it breaking linking of the applications.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3717 >
2023-01-12 20:11:14 +00:00
Olivier Crête
b7c0e8bc84
webrtc examples: Force regular non-MULTIOPUS
...
Using MULTIOPUS breaks with most browsers
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3675 >
2023-01-04 12:02:25 +00:00
Olivier Crête
c7bc6bc064
webrtc-unidirectional: Avoid critical
...
Don't unref the parameter passed to a signal, it's always owned by
the caller. Fixes a GLib critical.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3675 >
2023-01-04 12:02:25 +00:00
Sebastian Dröge
c739fcbe41
examples: webrtc: Add handling of the LATENCY messages to the Rust examples
...
Without this the configured latency on the pipeline will be wrong.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3609 >
2022-12-20 13:10:27 +02:00
Sebastian Dröge
284d22437e
examples: webrtc: Update dependencies
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3609 >
2022-12-20 13:06:43 +02:00
Sebastian Dröge
ec6290d63f
examples: webrtc: Remove the bus watch at the end
...
Otherwise a file descriptor will be leaked.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3609 >
2022-12-20 13:03:44 +02:00
Sebastian Dröge
1f4f338d85
examples: webrtc: Add handling of the LATENCY messages to the C examples
...
Without this the configured latency on the pipeline will be wrong.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3609 >
2022-12-20 13:03:15 +02:00
Sebastian Dröge
d10981f7b9
examples: webrtc: Add bus handling to the Android and C sendrecv examples
...
Without a bus, messages will just pile up and errors are not handled at
all. Also without handling the LATENCY messages the latency configured
on the pipeline will be wrong.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3609 >
2022-12-20 13:02:08 +02:00
Seungmin Kim
0db1ff532d
Change GstSdp.sdp_message_parse_buffer to GstSdp.SDPMessage.new_from_text in examples
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3477 >
2022-12-16 10:40:41 +00:00
Nirbheek Chauhan
7fd8e4001c
webrtc/signalling: Give a helpful error when starting a double-session
...
If the peer is already in a session and tries to start a new one, give
them a helpful error.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2460 >
2022-12-12 15:08:23 +00:00
byran77
1e5abde7b1
gst-examples: webrtc: signalling: simple-server Fix condition when calling a busy peer
...
When a session request is coming in, ERROR occurs when the callee is busy.
But peer_status is the status of the caller, which is of course None when
calling someone, while self.peers[callee_id][2] is that of the callee.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2460 >
2022-12-12 15:08:23 +00:00
Guillaume Desmottes
cbab7ffefb
examples: webrtc: fix unidirectional pipeline
...
'autoaudiosrc' does not have a 'is-live' property.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3550 >
2022-12-09 13:49:44 +01:00
Guillaume Desmottes
ebfbdf9076
examples: webrtc: fix plugins check
...
`videoconvert` and `videoscale` are now part of the `videoconvertscale`
plugin, see d11f13f476
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3529 >
2022-12-05 17:04:57 +00:00
Jan Schmidt
8177588250
examples/sendrecv: Remove extra unref of webrtcbin
...
The code now constructs webrtcbin with a floating ref and then
gives it to the pipeline. The extra unref is one too many.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3436 >
2022-11-19 19:51:54 +11:00
Jan Schmidt
f2ae481a69
examples/webrtc: Configure payload types
...
MR 2398 broke the webrtc sendrecv example
by not configuring the payload types, so both audio and video streams
get sent on payload 96.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3434 >
2022-11-19 13:12:58 +11:00
Nicolas Dufresne
4fb9f2a2b4
meson: Fix path for webrtc validate tests
...
This fixes a crash when trying to run gst-validate-launcher from inside
the meson devenv. The error was:
ModuleNotFoundError: No module named 'observer'
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3273 >
2022-10-26 18:16:25 +00:00
Patrick Griffis
2a59e8af97
webrtc: Fix double free in webrtc-recvonly-h264 demo
...
The "message" signal does not transfer ownership of the GBytes passed
to it so calling g_bytes_unref() on it is incorrect.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3257 >
2022-10-24 22:16:44 +00:00
Sebastian Dröge
7193a601b3
examples: webrtc: Update to gstreamer-rs 0.19 release
...
Also update the macOS workaround for gstreamer-gl requiring a
`NSRunLoop` / `NSApp` on the main thread, and update from strucopt to
clap 4.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3255 >
2022-10-24 11:50:09 +00:00