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
Sebastian Dröge
8606b54671
Update dependencies of Rust example
2019-07-08 16:45:08 +03:00
Sebastian Dröge
b3f9959a30
Add support for RTX with --rtx commandline parameter in the Rust example
2019-07-08 16:45:08 +03:00
Seungha Yang
60dbf27896
Add meson build script
...
make build easy with meson
2019-07-02 14:40:36 +01:00
Bernhard Jung
62469f1155
unref sinkpad also in mp version
2019-07-01 13:21:20 +03:00
Bernhard Jung
21e5f4fbda
unref sinkpad
2019-07-01 13:21:20 +03:00
Bernhard Jung
92050d6a59
do no use gst_element_link but gst_pad_link in pad-added callbacks to prevent situations where
...
on multiple incoming streams they might not get linked correctly and leave a stream unconnected
2019-07-01 13:21:20 +03:00
Sebastian Dröge
d74e2ac147
Add support for creating the offer in the Rust sendrecv client
2019-06-27 14:35:47 +03:00
Sebastian Dröge
d393063868
Update Rust sendrecv example to latest GLib/GStreamer bindings
2019-06-27 13:57:42 +03:00
Sebastian Dröge
a47bdbb21f
Port Rust sendrecv example to asynchronous IO and completely rewrite
...
Code should be easier to follow now and also supports TLS WebSockets
now.
Fixes https://github.com/centricular/gstwebrtc-demos/issues/70
2019-06-27 13:54:23 +03:00
Yevgeny Kazakov
bb36c08126
Add video tag playsinline to enable autoplay in iOS Safari
2019-04-12 18:07:38 +00:00
Yevgeny Kazakov
49e1478150
Replace deprecated onaddstream with ontrack; fixes #98
2019-04-12 18:07:38 +00:00
Emmanuel Gil Peyrot
1595972c90
Update Rust dependencies
2019-02-26 19:56:49 +02:00
svangasse
6620b49d50
Java demo ( #81 )
...
Added working demo using GStreamer Java bindings
2019-02-26 13:41:15 +01:00
Jason Sun
92bce589d8
Improve building documentation
...
- Add apt-get install lines for Ubuntu 18.04
- add gstreamer-webrtc-1.0 and gstreamer-sdp-1.0 to CFLAGS
- make the CLAGS match LIBS in Makefile dependencies
2018-11-22 05:23:15 +00:00
Matthew Waters
a63902e621
webrtc: fix data channel usage after requiring a READY webrtcbin
...
c4fe52395b
7bf18ad258
Fixes https://github.com/centricular/gstwebrtc-demos/issues/55
2018-11-06 15:44:14 +11:00
Mathieu Duponchelle
4df6d21992
sendrecv: port all examples to use a max-bundle policy
2018-10-15 20:46:28 +02:00
Sebastian Dröge
5c4b9a7f53
Update Rust dependencies
2018-10-15 15:54:06 +03:00
Sebastian Dröge
adadc2de63
Add Rust instructions to README.md
2018-10-15 15:53:56 +03:00
Matthew Clark
738e969a06
Add check_plugins() to Python example, matching C and Rust versions
2018-09-24 03:33:11 +00:00
Jan Alexander Steffens (heftig)
fd1d53b04a
on_server_message: Do not unref message GBytes
...
We don't own the reference. Since GLib 2.58, the g_bytes_unref that
follows the signal emission in libsoup loudly complains about the
attempt to underflow the refcount.
2018-09-21 13:12:43 +00:00
Mathieu Duponchelle
547f296293
sendrecv: try to add a data channel
2018-09-21 13:12:16 +00:00
Mathieu Duponchelle
7865c31387
webrtc.js: fix tearing down
2018-09-21 13:12:16 +00:00
Sebastian Dröge
fe6267fe0d
Update to releases of glib/gstreamer bindings
2018-09-10 14:06:01 +03:00
meldron
dc1163ab95
Fix stun server address
...
The stun server address has a space as suffix which is not allowed in the rust bindings.
2018-07-26 12:11:37 +00:00
Thibault Saunier
122c4106a4
Implement the demo in C# with GStreamerSharp
...
Based on https://github.com/ttustonic/GStreamerSharpSamples from
Tomislav Tustonić <ttustonic@outlook.com>
2018-07-11 10:05:38 +00:00
Nirbheek Chauhan
c5e5a7cfd3
Update README.md
2018-07-03 19:26:56 +05:30
Leon Tan
b6300d3b92
Fix bug in Rust sendrecv demo
2018-06-27 22:58:19 +02:00
Matthew Clark
37e8853041
Correct signalling usage instructions
2018-06-27 01:29:54 +00:00
Mathieu Duponchelle
1958814680
webrtc-sendrecv.py: required gstreamer 1.14.2
...
Addresses #25
2018-06-25 14:45:57 +02:00
Sebastian Dröge
9cf3aa088e
General code cleanup of the Rust sendrecv demo
...
Fewer clones and more borrowing, if let instead of match, match instead
of multiple ifs, insert a few newlines all over the place to make code
less dense, and a few changes to make code a bit more idiomatic.
2018-06-21 13:16:15 +03:00
Sebastian Dröge
2614249149
Fix various clippy warnings in the Rust sendrecv demo
2018-06-21 09:03:18 +03:00
maxmcd
b826f968cb
Add --disable-ssl flag to webrtc-sendrecv.c
2018-06-18 09:02:05 +03:00
maxmcd
83b9c4efd7
Add --disable-ssl option to simple-server.py
2018-06-18 09:02:05 +03:00
maxmcd
bb56d6eab7
Add Rust version of sendrecv example
...
This also comes with a docker image to collect all dependencies and
build everything.
Fixes https://github.com/centricular/gstwebrtc-demos/pull/20
2018-06-18 09:02:05 +03:00
Mathieu Duponchelle
3603899291
webrtc-sendrecv.py: improve debug and documentation
2018-06-11 20:26:07 +02:00
Mathieu Duponchelle
56c17d6487
sendrecv: python version
2018-06-11 18:49:53 +02:00
Nirbheek Chauhan
bba6c92392
Fix heading levels
2018-04-11 19:04:47 +05:30
Eloi Bail
d6741c1f80
mp-webrtc-sendrecv.c: add missing comma in the list of package required
...
A comma is missing in the list of package required. Thus the package
'srtprtpmanager' is checked instead of packages srtp and rtpmanager.
2018-04-03 15:04:57 +00:00
Nirbheek Chauhan
ea8e960e29
sendrecv/js: Improve more logging and errors
2018-04-01 01:53:44 +05:30
Nirbheek Chauhan
9cc57d2dd1
sendrecv/js: Fix some null/undefined checks
2018-04-01 01:52:46 +05:30
Nirbheek Chauhan
669d234ebd
sendrecv/js: Don't reuse peer_id across sessions
...
It increases the likelihood of a collision with someone else, and it
was an unintended side-effect anyway.
2018-04-01 01:30:23 +05:30
Nirbheek Chauhan
47bfa3cc27
sendrecv/gst: Add no-op audio/video converters
...
This reduces the chance that someone will try to change the
audio/video source elements and get an error because they don't know
about the conversion elements. They will be no-ops in the usual case.
Closes https://github.com/centricular/gstwebrtc-demos/issues/8
2018-04-01 01:15:16 +05:30
Nirbheek Chauhan
7c5fbf1aca
sendrecv/js: custom getUserMedia constraints
...
The html page now contains a text area in which the default
constraints will be added and can be edited.
Closes https://github.com/centricular/gstwebrtc-demos/issues/11
2018-04-01 01:10:22 +05:30
Nirbheek Chauhan
fe40c70536
sendrecv/js: Simplify local stream management
...
Just use the fulfilled value of the promise directly instead of
storing it separately
2018-04-01 01:10:09 +05:30
Nirbheek Chauhan
9f4783fb60
sendrecv/js: Allow overriding peer_id and ws_server
...
This allows people to easily use a custom peer id or their own server
if the automatic values are not appropriate for them.
2018-04-01 01:10:09 +05:30
Nirbheek Chauhan
3879a5078d
sendrecv/js: Explicitly close the local stream when done
...
This immediately releases the webcam and mic instead of lazily at some
unpredictable time in the future.
2018-04-01 01:10:00 +05:30
Nirbheek Chauhan
3eabe5cb0b
sendrecv/js: Make error statuses more prominent
...
Colour errors in red, and ensure that later status updates don't
overwrite existing error statuses.
2018-04-01 01:09:54 +05:30
Nirbheek Chauhan
bd6deaca46
sendrecv/js: Call getUserMedia on incoming call
...
Instead of registering it on page load. This will allow us to add an
option for users to override the default constraints later.
This is also generally nicer because the browser won't open the webcam
immediately when you load the page and keep recording from it.
2018-04-01 01:09:46 +05:30
Nirbheek Chauhan
563826deaf
sendrecv: Don't set pipeline state if it's NULL
...
Avoids ugly CRITICAL warnings when erroring out.
2018-03-31 10:28:51 +05:30
Nirbheek Chauhan
82314cabbb
Don't use strict ssl certificate checking for localhost
...
When using localhost signalling servers, we don't want to use
strict ssl because it's probably using a self-signed certificate
and there's no need to do certificate checking over localhost anyway.
2018-03-31 10:27:05 +05:30
Nirbheek Chauhan
0e1be2a63f
Add Makefiles for all C demos
2018-03-23 19:00:37 +05:30
Nirbheek Chauhan
2d2bc0fe0e
Fix compiler warnings in all C demos
2018-03-23 19:00:37 +05:30
Nirbheek Chauhan
20cf2503ee
sendrecv: Fix SDP message format
...
The format is {'sdp': {'sdp': <sdp>, 'type': <sdptype>}}
The multiparty-sendrecv demo already uses this format.
2018-03-23 19:00:37 +05:30
Sebastian Kilb
2b82525bb0
Fix audio/video linking error on windows
...
Closes https://github.com/centricular/gstwebrtc-demos/issues/5
2018-03-21 06:26:49 +05:30
Nirbheek Chauhan
429f4bb65f
README.md: Document the binaries and Cerbero
...
Also mention where to file bug reports about the plugin itself.
2018-03-10 13:21:34 +05:30
Nirbheek Chauhan
55e86469d9
Check for all necessary plugins at startup
...
People seem to be having problems ensuring that they have all the
right plugins built, so make it a bit easier for them.
2018-03-10 01:54:48 +05:30