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
Patrick Griffis
d0e2b31470
webrtc: Fix critical in webrtc-recvonly-h264 example
...
This signal only takes 2 properties yet a third was passed.
This would cause a critical in GLib.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3252 >
2022-10-23 22:51:28 +00:00
Sam Van Den Berge
094b251901
examples: webrtc: mp-sendrecv: add bus handler
...
Without this bus handler, messages posted to the bus will keep a ref to
their source elements, preventing them from being disposed.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3219 >
2022-10-19 00:51:44 +00:00
Sam Van Den Berge
93ed51cbb2
examples: webrtc: mp-sendrecv: set element states to NULL after removing them from pipeline
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3219 >
2022-10-19 00:51:44 +00:00
Sam Van Den Berge
17c111d2b9
examples: webrtc: mp-sendrecv: remove wrong gst_object_unrefs
...
In !2958 some gst_object_unrefs were added. However these two don't
belong there because ownership is transfered due to the gst_bin_add_many
call a bit above.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3219 >
2022-10-19 00:51:44 +00:00
Sebastian Dröge
64c376b5b2
webrtc: Add/fix various annotations
...
And mark string parameters as const.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3194 >
2022-10-18 08:56:58 +00:00
Matthew Waters
d586c2cc28
examples/webrtc: don't use factory_make_full() for enums
...
They are not currently translated into their respective enum values and
will produce an error.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3210 >
2022-10-18 01:30:37 +00:00
Sam Van Den Berge
07d8e53aac
examples/webrtc/signalling: Fix compatibility with Python 3.10
...
Fix asyncio throwing a deprecation warning when using
asyncio.get_event_loop().
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3196 >
2022-10-17 11:46:51 +02:00
Nirbheek Chauhan
6a3319c8f2
examples: Support multiple video streams in JS webrtc sendrecv
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3079 >
2022-09-27 19:48:56 +00:00
Stéphane Cerveau
0c96e838e8
docs: update to mono repo locations
...
Some links/repos in the documentation were still pointing to old
repositories, change to mono repository
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2982 >
2022-09-06 14:20:49 +02:00