platform/upstream/gstreamer.git
5 years agoPort Rust sendrecv example to asynchronous IO and completely rewrite
Sebastian Dröge [Thu, 27 Jun 2019 10:54:23 +0000 (13:54 +0300)]
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

5 years agoAdd video tag playsinline to enable autoplay in iOS Safari
Yevgeny Kazakov [Fri, 12 Apr 2019 07:35:38 +0000 (09:35 +0200)]
Add video tag playsinline to enable autoplay in iOS Safari

5 years agoReplace deprecated onaddstream with ontrack; fixes #98
Yevgeny Kazakov [Thu, 11 Apr 2019 21:33:50 +0000 (23:33 +0200)]
Replace deprecated onaddstream with ontrack; fixes #98

5 years agoUpdate Rust dependencies
Emmanuel Gil Peyrot [Tue, 26 Feb 2019 17:19:13 +0000 (18:19 +0100)]
Update Rust dependencies

5 years agoJava demo (#81)
svangasse [Tue, 26 Feb 2019 12:41:15 +0000 (12:41 +0000)]
Java demo (#81)

Added working demo using GStreamer Java bindings

5 years agoImprove building documentation
Jason Sun [Thu, 22 Nov 2018 05:23:15 +0000 (21:23 -0800)]
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

5 years agowebrtc: fix data channel usage after requiring a READY webrtcbin
Matthew Waters [Tue, 6 Nov 2018 04:41:28 +0000 (15:41 +1100)]
webrtc: fix data channel usage after requiring a READY webrtcbin

https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/commit/c4fe52395b21b54fd6ee6b9a5010737404889242
https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/commit/7bf18ad258bfd81200197378dbedde125f813fad

Fixes https://github.com/centricular/gstwebrtc-demos/issues/55

6 years agosendrecv: port all examples to use a max-bundle policy
Mathieu Duponchelle [Mon, 15 Oct 2018 18:45:57 +0000 (20:45 +0200)]
sendrecv: port all examples to use a max-bundle policy

6 years agoUpdate Rust dependencies
Sebastian Dröge [Mon, 15 Oct 2018 12:54:06 +0000 (15:54 +0300)]
Update Rust dependencies

6 years agoAdd Rust instructions to README.md
Sebastian Dröge [Mon, 15 Oct 2018 12:53:56 +0000 (15:53 +0300)]
Add Rust instructions to README.md

6 years agoAdd check_plugins() to Python example, matching C and Rust versions
Matthew Clark [Fri, 21 Sep 2018 20:13:44 +0000 (21:13 +0100)]
Add check_plugins() to Python example, matching C and Rust versions

6 years agoon_server_message: Do not unref message GBytes
Jan Alexander Steffens (heftig) [Thu, 20 Sep 2018 08:48:06 +0000 (10:48 +0200)]
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.

6 years agosendrecv: try to add a data channel
Mathieu Duponchelle [Fri, 21 Sep 2018 13:03:43 +0000 (15:03 +0200)]
sendrecv: try to add a data channel

6 years agowebrtc.js: fix tearing down
Mathieu Duponchelle [Fri, 21 Sep 2018 13:02:55 +0000 (15:02 +0200)]
webrtc.js: fix tearing down

6 years agoUpdate to releases of glib/gstreamer bindings
Sebastian Dröge [Mon, 10 Sep 2018 11:06:01 +0000 (14:06 +0300)]
Update to releases of glib/gstreamer bindings

6 years agoFix stun server address
meldron [Thu, 26 Jul 2018 11:20:55 +0000 (13:20 +0200)]
Fix stun server address

The stun server address has a space as suffix which is not allowed in the rust bindings.

6 years agoImplement the demo in C# with GStreamerSharp
Thibault Saunier [Tue, 3 Jul 2018 13:49:46 +0000 (09:49 -0400)]
Implement the demo in C# with GStreamerSharp

Based on https://github.com/ttustonic/GStreamerSharpSamples from
Tomislav Tustonić <ttustonic@outlook.com>

6 years agoUpdate README.md
Nirbheek Chauhan [Tue, 3 Jul 2018 13:56:56 +0000 (19:26 +0530)]
Update README.md

6 years agoFix bug in Rust sendrecv demo
Leon Tan [Wed, 27 Jun 2018 20:25:30 +0000 (22:25 +0200)]
Fix bug in Rust sendrecv demo

6 years agoCorrect signalling usage instructions
Matthew Clark [Tue, 26 Jun 2018 22:05:16 +0000 (23:05 +0100)]
Correct signalling usage instructions

6 years agowebrtc-sendrecv.py: required gstreamer 1.14.2
Mathieu Duponchelle [Mon, 25 Jun 2018 12:44:58 +0000 (14:44 +0200)]
webrtc-sendrecv.py: required gstreamer 1.14.2

Addresses #25

6 years agoGeneral code cleanup of the Rust sendrecv demo
Sebastian Dröge [Thu, 21 Jun 2018 10:16:15 +0000 (13:16 +0300)]
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.

6 years agoFix various clippy warnings in the Rust sendrecv demo
Sebastian Dröge [Thu, 21 Jun 2018 06:03:18 +0000 (09:03 +0300)]
Fix various clippy warnings in the Rust sendrecv demo

6 years agoAdd --disable-ssl flag to webrtc-sendrecv.c
maxmcd [Wed, 6 Jun 2018 16:51:15 +0000 (12:51 -0400)]
Add --disable-ssl flag to webrtc-sendrecv.c

6 years agoAdd --disable-ssl option to simple-server.py
maxmcd [Wed, 6 Jun 2018 16:42:07 +0000 (12:42 -0400)]
Add --disable-ssl option to simple-server.py

6 years agoAdd Rust version of sendrecv example
maxmcd [Sun, 27 May 2018 19:37:52 +0000 (15:37 -0400)]
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

6 years agowebrtc-sendrecv.py: improve debug and documentation
Mathieu Duponchelle [Mon, 11 Jun 2018 18:26:07 +0000 (20:26 +0200)]
webrtc-sendrecv.py: improve debug and documentation

6 years agosendrecv: python version
Mathieu Duponchelle [Mon, 11 Jun 2018 16:49:53 +0000 (18:49 +0200)]
sendrecv: python version

6 years agoFix heading levels
Nirbheek Chauhan [Wed, 11 Apr 2018 13:34:47 +0000 (19:04 +0530)]
Fix heading levels

6 years agomp-webrtc-sendrecv.c: add missing comma in the list of package required
Eloi Bail [Tue, 3 Apr 2018 14:53:24 +0000 (16:53 +0200)]
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.

6 years agosendrecv/js: Improve more logging and errors
Nirbheek Chauhan [Sat, 31 Mar 2018 20:23:44 +0000 (01:53 +0530)]
sendrecv/js: Improve more logging and errors

6 years agosendrecv/js: Fix some null/undefined checks
Nirbheek Chauhan [Sat, 31 Mar 2018 20:22:46 +0000 (01:52 +0530)]
sendrecv/js: Fix some null/undefined checks

6 years agosendrecv/js: Don't reuse peer_id across sessions
Nirbheek Chauhan [Sat, 31 Mar 2018 19:58:02 +0000 (01:28 +0530)]
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.

6 years agosendrecv/gst: Add no-op audio/video converters
Nirbheek Chauhan [Sat, 31 Mar 2018 19:45:16 +0000 (01:15 +0530)]
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

6 years agosendrecv/js: custom getUserMedia constraints
Nirbheek Chauhan [Sat, 31 Mar 2018 19:37:51 +0000 (01:07 +0530)]
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

6 years agosendrecv/js: Simplify local stream management
Nirbheek Chauhan [Sat, 31 Mar 2018 19:11:40 +0000 (00:41 +0530)]
sendrecv/js: Simplify local stream management

Just use the fulfilled value of the promise directly instead of
storing it separately

6 years agosendrecv/js: Allow overriding peer_id and ws_server
Nirbheek Chauhan [Sat, 31 Mar 2018 19:09:48 +0000 (00:39 +0530)]
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.

6 years agosendrecv/js: Explicitly close the local stream when done
Nirbheek Chauhan [Sat, 31 Mar 2018 17:31:32 +0000 (23:01 +0530)]
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.

6 years agosendrecv/js: Make error statuses more prominent
Nirbheek Chauhan [Sat, 31 Mar 2018 16:54:15 +0000 (22:24 +0530)]
sendrecv/js: Make error statuses more prominent

Colour errors in red, and ensure that later status updates don't
overwrite existing error statuses.

6 years agosendrecv/js: Call getUserMedia on incoming call
Nirbheek Chauhan [Sat, 31 Mar 2018 08:22:02 +0000 (13:52 +0530)]
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.

6 years agosendrecv: Don't set pipeline state if it's NULL
Nirbheek Chauhan [Sat, 31 Mar 2018 04:58:51 +0000 (10:28 +0530)]
sendrecv: Don't set pipeline state if it's NULL

Avoids ugly CRITICAL warnings when erroring out.

6 years agoDon't use strict ssl certificate checking for localhost
Nirbheek Chauhan [Sat, 31 Mar 2018 04:57:05 +0000 (10:27 +0530)]
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.

6 years agoAdd Makefiles for all C demos
Nirbheek Chauhan [Fri, 23 Mar 2018 06:40:26 +0000 (12:10 +0530)]
Add Makefiles for all C demos

6 years agoFix compiler warnings in all C demos
Nirbheek Chauhan [Fri, 23 Mar 2018 06:35:09 +0000 (12:05 +0530)]
Fix compiler warnings in all C demos

6 years agosendrecv: Fix SDP message format
Nirbheek Chauhan [Fri, 23 Mar 2018 06:06:40 +0000 (11:36 +0530)]
sendrecv: Fix SDP message format

The format is {'sdp': {'sdp': <sdp>, 'type': <sdptype>}}

The multiparty-sendrecv demo already uses this format.

6 years agoFix audio/video linking error on windows
Sebastian Kilb [Wed, 21 Mar 2018 00:56:49 +0000 (01:56 +0100)]
Fix audio/video linking error on windows

Closes https://github.com/centricular/gstwebrtc-demos/issues/5

6 years agoREADME.md: Document the binaries and Cerbero
Nirbheek Chauhan [Sat, 10 Mar 2018 07:51:34 +0000 (13:21 +0530)]
README.md: Document the binaries and Cerbero

Also mention where to file bug reports about the plugin itself.

6 years agoCheck for all necessary plugins at startup
Nirbheek Chauhan [Fri, 9 Mar 2018 20:24:48 +0000 (01:54 +0530)]
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.

6 years agoFix crash on Windows by delimiting option entries with NULL
Nirbheek Chauhan [Thu, 8 Mar 2018 14:40:55 +0000 (20:10 +0530)]
Fix crash on Windows by delimiting option entries with NULL

Also use more verbose forms of g_assert which print values on failure

6 years agoREADME: link to blog post, document multiparty example
Nirbheek Chauhan [Sat, 17 Feb 2018 02:40:59 +0000 (08:10 +0530)]
README: link to blog post, document multiparty example

Also add TODO stubs for MCU and SFU

6 years agoREADME: fix formatting
Tim-Philipp Müller [Fri, 2 Feb 2018 08:41:21 +0000 (08:41 +0000)]
README: fix formatting

6 years agowebrtc-sendrecv: define GST_USE_UNSTABLE_API to avoid compiler warnings
Tim-Philipp Müller [Fri, 2 Feb 2018 08:39:04 +0000 (08:39 +0000)]
webrtc-sendrecv: define GST_USE_UNSTABLE_API to avoid compiler warnings

6 years agoUpdate README
Tim-Philipp Müller [Fri, 2 Feb 2018 08:23:30 +0000 (08:23 +0000)]
Update README

Point to upstream repos now that it's been merged

6 years agosendrecv: Add a Google STUN server to the configuration
Nirbheek Chauhan [Tue, 12 Dec 2017 16:10:09 +0000 (21:40 +0530)]
sendrecv: Add a Google STUN server to the configuration

Without this, the example will only work on link-local and localhost
networks.

6 years agoserver/js: also allow running on localhost
Matthew Waters [Wed, 22 Nov 2017 13:21:36 +0000 (00:21 +1100)]
server/js: also allow running on localhost

6 years agoUpdate to new promise API
Mathieu Duponchelle [Wed, 22 Nov 2017 12:15:48 +0000 (13:15 +0100)]
Update to new promise API

7 years agomultiparty sendrecv: Add a queue before the audio sink
Nirbheek Chauhan [Mon, 30 Oct 2017 07:54:21 +0000 (13:24 +0530)]
multiparty sendrecv: Add a queue before the audio sink

Missed this, fixes the bug where removing a peer causes the pipeline to
get stuck. However, when peers leave, there is still a chance that the
pipeline will get stuck.

7 years agoWIP: Add a new multiparty sendrecv gstreamer demo
Nirbheek Chauhan [Mon, 30 Oct 2017 03:39:36 +0000 (09:09 +0530)]
WIP: Add a new multiparty sendrecv gstreamer demo

You can join a room and an audio-only call will be started with all
peers in that room. Currently uses audiotestsrc only.

BUG: With >2 peers in a call, if a peer leaves, the pipeline stops
     outputting data from the remaining peers to the (audio) sink.

TODO: JS code to allow a browser to join the call
TODO: Cleanup pipeline when a peer leaves
TODO: Add ICE servers to allow calls over the Internet
TODO: Perhaps setup a TURN server as well

7 years agosendrecv: Rename function for greater clarity
Nirbheek Chauhan [Mon, 30 Oct 2017 03:42:06 +0000 (09:12 +0530)]
sendrecv: Rename function for greater clarity

7 years agoUpdate Protocol.md
Nirbheek Chauhan [Sat, 28 Oct 2017 22:38:45 +0000 (04:08 +0530)]
Update Protocol.md

Fix indentation typos

7 years agosimple-server: Add support for multi-party rooms
Nirbheek Chauhan [Sat, 28 Oct 2017 13:30:42 +0000 (19:00 +0530)]
simple-server: Add support for multi-party rooms

Also add a new room-client.py to test the protocol which is documented
in Protocol.md

7 years agoProtocol.md: Fix headings
Nirbheek Chauhan [Sat, 28 Oct 2017 13:32:56 +0000 (19:02 +0530)]
Protocol.md: Fix headings

7 years agosignalling/client.py: Rename to session-client.py
Nirbheek Chauhan [Sat, 28 Oct 2017 13:30:03 +0000 (19:00 +0530)]
signalling/client.py: Rename to session-client.py

Also fix CALL -> SESSION naming

7 years agoAdd sendrecv implementation in js and gst webrtc
Nirbheek Chauhan [Sat, 21 Oct 2017 14:27:29 +0000 (19:57 +0530)]
Add sendrecv implementation in js and gst webrtc

JS code runs on the browser and uses the browser's webrtc
implementation.

C code uses gstreamer's webrtc implementation, for which you need the
following repositories:

https://github.com/ystreet/gstreamer/tree/promise
https://github.com/ystreet/gst-plugins-bad/tree/webrtc

You can build these with either Autotools gst-uninstalled:

https://arunraghavan.net/2014/07/quick-start-guide-to-gst-uninstalled-1-x/

Or with Meson gst-build:

https://cgit.freedesktop.org/gstreamer/gst-build/

7 years agoAdd a simple python3 webrtc signalling server
Nirbheek Chauhan [Sat, 21 Oct 2017 14:26:52 +0000 (19:56 +0530)]
Add a simple python3 webrtc signalling server

+ client for testing + protocol documentation

7 years agoInitial commit
Nirbheek Chauhan [Sat, 21 Oct 2017 14:13:01 +0000 (19:43 +0530)]
Initial commit