Commit graph

124 commits

Author SHA1 Message Date
Nirbheek Chauhan
7b96b06752 simple_server: Make the server class loop-aware
First step in making the class able to manage its own state.
2020-06-18 23:34:48 +10:00
Nirbheek Chauhan
b8c1bd1fa3 simple_server: Fix init of websockets log handler
This has changed since the original code was written:
https://websockets.readthedocs.io/en/stable/cheatsheet.html#debugging
2020-06-18 23:34:48 +10:00
Nirbheek Chauhan
78df1ca74c simple_server: Correctly pass health option
It was completely ignored. Also don't de-serialize options. Just parse
them directly in `__init__`. Less error-prone.
2020-06-18 23:34:48 +10:00
Sebastian Dröge
180e1ce24c Update dependencies of Rust demos 2020-06-18 23:34:48 +10:00
Philippe Normand
c0f303eacf janus: Remove unused parameters and refactor 2020-05-14 11:04:37 +01:00
Jan Schmidt
255fef3896 webrtc-recvonly-h264: Add a recvonly standalone example.
This example sets up a recvonly H.264 transceiver and receives
H.264 from a peer, while sending bi-directional Opus audio.
2020-05-09 19:13:52 +10:00
Jan Schmidt
8da8375986 sendonly: Fix transceivers leak.
Make sure to unref the transceivers array after use.
2020-05-09 19:13:52 +10:00
Matthew Waters
7445fc4928 signalling/server: python 3.8 asyncio has it's own TimeoutError 2020-05-06 06:01:57 +00:00
Matthew Waters
3a86a37c03 sendrecv: wait until the offer is set before creating answer
Pragmatically, an answer cannot be created until the offer is created as
the answer creation needs information from the offer.  Practically, due
to implementation details, the answer was always queued after the set of
the offer and so the call flow did not matter.

The current code also hid a bug in webrtcbin where ice candidates would be
generated before the answer had been created which is against the JSEP
specification.

Change to the correct call flow for exemplary effect.
2020-05-06 06:01:57 +00:00
Matthew Waters
615813ef93 check/validate: a few more tests and improvements
Tests a matrix of options:
- local/remote negotiation initiator
- 'most' bundle-policy combinations (some combinations will never work)
- firefox or chrome browser

Across 4 test scenarios:
- simple negotiation with default browser streams (or none if gstreamer
  initiates)
- sending a vp8 stream
- opening a data channel
- sending a message over the data channel

for a total of 112 tests!
2020-05-06 06:01:57 +00:00
Matthew Waters
c3f629340d check: first pass at a couple of validate tests 2020-05-06 06:01:57 +00:00
Matthew Waters
bc821a85d4 tests: first pass at some basic browser tests 2020-05-06 06:01:57 +00:00
Matthew Waters
37cf0dffb5 add __pycache__ to .gitignore 2020-05-06 06:01:57 +00:00
Costa Shulyupin
56a03add78 html: charset
Avoid warning:
The character encoding of the HTML document was not declared.
The document will render with garbled text in some browser configurations
if the document contains characters from outside the US-ASCII range.
The character encoding of the page must be declared in the document
or in the transfer protocol.
2020-04-16 17:53:17 +02:00
Costa Shulyupin
8c4345da7d android, mp-webrtc-sendrecv, sendonly: cleanup
webrtc-unidirectional-h264.c: removed empty lines

android: removed unused var
2020-04-16 17:34:11 +02:00
Costa Shulyupin
133a1593ee android, sendrecv: add missing break in switch case statements 2020-04-16 17:34:11 +02:00
Costa Shulyupin
2557eab9d5 gst-indent 2020-04-14 14:40:37 +03:00
Costa Shulyupin
ca96b6de86 gst-indent 2020-04-14 14:40:37 +03:00
Costa Shulyupin
804c0c2f5e gst-indent 2020-04-14 14:40:37 +03:00
Sebastian Dröge
65db695212 Set TURN server in Rust sendrecv example too
Previously it was only in the multiparty example.
2020-03-24 12:57:17 +02:00
Jan Schmidt
5bf67feae8 sendrecv: Add a switch for remote-offerer
Add a switch to the command line utility that makes it request
the initial offer from the peer instead of generating it.

Modify the webrtc.js example to support a new REQUEST_OFFER
message, and generate the offer when receiving it.
2020-03-05 03:03:17 +11:00
Jan Schmidt
c8e79c9671 webrtc-sendrecv.py: Add a stun server
Fixes https://github.com/centricular/gstwebrtc-demos/issues/160
2020-02-21 14:01:58 +11:00
Jan Schmidt
d2236266dc Android: Update build for android example 2020-02-07 23:00:20 +11:00
Sebastian Dröge
699b830213 Update Rust examples to async-tungstenite 0.4 2020-02-01 15:21:08 +02:00
Jan Schmidt
1f1233064f janus: Add picture-id-mode=2 to VP8 payloading
This writes an extended header and Picture-ID into each RTP packet
which makes Janus able to detect which frames are keyframes and
to request replacement keyframes.
2020-01-28 00:05:59 +11:00
Jan Schmidt
d8e7687132 janus: Add options near the top
Add some script configuration options to choose
between VP8 and H.264 near the top, to modify the video input
source, and to enable/disable RTX support
2020-01-28 00:05:59 +11:00
Sebastian Dröge
42c6eac7f1 Update dependencies of Rust examples and simplify slightly 2020-01-23 08:36:21 +02:00
Jan Schmidt
3cabee61c7 Add python Janus videoroom streaming example.
Added with permission and copyright @tobiasfriden and @saket424
on github. See https://github.com/centricular/gstwebrtc-demos/issues/66
2020-01-15 10:47:27 +11:00
Jan Schmidt
666f982882 Add a sendonly example 2020-01-15 10:47:27 +11:00
Sebastian Dröge
d995a00774 Update Rust examples to async-tungstenite 0.3 2020-01-05 11:41:31 +02:00
Sebastian Dröge
f5e4df464f Update Rust demos to gstreamer 0.15 bindings release 2019-12-19 01:04:01 +02:00
Sebastian Dröge
5e18b460b3 multiparty/rust: Add Rust version of multiparty demo
Different to the C version this also mixes all participants into a grid
with videomixer.
2019-11-29 20:49:46 +01:00
Sebastian Dröge
9a46977a4c sendrecv/rust: Port from tokio to async-std and use async/await 2019-11-29 20:47:21 +01:00
Sebastian Dröge
3d2b63615a Update dependencies of Rust sendrecv example 2019-10-25 02:05:16 +03:00
Sebastian Dröge
8b44f32435 Return gst::BusSyncReply::Drop from the bus sync handler in the Rust sendrecv example
Otherwise all messages accumulate on the queue inside the bus and
nothing is ever removing them from there.

We handle messages elsewhere and only intercept them from the sync
handler.
2019-10-25 02:02:59 +03:00
Jan Schmidt
b3625eca9f android: Reenable x86/x86_64 ABI builds 2019-09-16 14:55:58 +00:00
Jan Schmidt
1ba85de76c Android: Restrict camera capture size, and add 1 keyframe / sec. 2019-09-16 14:55:58 +00:00
Jan Schmidt
46ea108b5e Android: Add 25% FEC to the video stream 2019-09-16 14:55:58 +00:00
Jan Schmidt
68f30a2431 android: Expand gradle memory to avoid Metaspace out of memory errors 2019-09-16 14:55:58 +00:00
Jan Schmidt
d022b7c61e android: Change the default URL to webrtc.nirbheek.in 2019-09-16 14:55:58 +00:00
Jan Schmidt
1c3c194fd2 android: Switch to the camera for input 2019-09-16 14:55:58 +00:00
Jan Schmidt
91b3002fa0 android: Fix missing sentinel and return value compiler warnings 2019-09-16 14:55:58 +00:00
Jan Schmidt
75fd7046fb android: update gradle and build tools versions
Also disable erroring out on lint failure for now.
2019-09-16 14:55:58 +00:00
Jan Schmidt
0b116cc2be android: Fix build with r18b by linking libc++_shared 2019-09-16 14:55:58 +00:00
Matthew Waters
421f21adb1 Simple android app 2019-09-16 14:55:58 +00:00
Shane Perry
7b8d466cbb Make health check route configurable 2019-08-12 17:58:30 +00:00
Shane Perry
b60d0d112c Added a basic health check endpoint to the server 2019-08-12 17:58:30 +00:00
Nirbheek Chauhan
7fe9f8e092 signalling/simple-server: Listen on both ipv4 and ipv6 by default
Empty string or `None` mean all interfaces. Specifying 0.0.0.0 means
ipv4 interfaces only.

Fixes https://github.com/centricular/gstwebrtc-demos/issues/120
2019-07-16 02:31:56 +05:30
Sebastian Dröge
48130e07a1 Add FIXME comment to the Rust sendrecv example for implementation proper SDP negotiation 2019-07-09 14:51:41 +03:00
Sebastian Dröge
a8fca4037d Enable RTX in the Rust sendrecv example only for video
Chrome et al don't like RTX for audio streams.
2019-07-09 14:50:19 +03:00