Commit graph

400 commits

Author SHA1 Message Date
Mathieu Duponchelle
56c17d6487 sendrecv: python version 2018-06-11 18:49:53 +02:00
Olivier Crete
697458e91e Update iOS project for newer XCode and embed-bitcode
Forces the GCC libstdc++ instead of LLVM libc++ and
updates the settings with the new recommended XCode settings.
2018-05-06 10:57:04 +02:00
Stephan Hesse
4e66ccac60 ios player: add HLS test streams from video-dev (Hls.js org) 2018-05-04 14:22:23 +02:00
Stephan Hesse
4a62c09504 ios playback: introduce macro to enable photos/ library
Until now the photo library integration is broken (that API was
deprecated by Apple) and the iTunes integration is better to have
optional to put our test files in the forefront (and have better way to
browse large iTunes libs).
2018-05-04 14:22:23 +02:00
Stephan Hesse
a9a8e36475 ios playback: Xcode project: Force Dwarf debug symbols (build time speedup)
Until now it was using dSYM by default. Each build was taking forever.
2018-05-04 14:22:23 +02:00
Stephan Hesse
30e730bccc ios playback: initialize slider value (position) at 0 at first
Until now the slider was displaying center position before playback was
started.
2018-05-04 14:22:23 +02:00
Stephan Hesse
49c92a9752 ios playback: initialize slider min/max values at zero at first 2018-05-04 14:22:23 +02:00
Stephan Hesse
5188475abd ios playback: remove time_slider.frame forced set (fix for non-functional slider UI)
It's unclear why this line was there, but it renders the slider
unresponsive currently
2018-05-04 14:22:23 +02:00
Philippe Normand
d6c033bf92 playback/android: Update the sample application for GStreamer 1.14
Gradle was also updated to a more recent version. The x86_64 abi
is disabled temporarily due to build failures reported in:
https://bugzilla.gnome.org/show_bug.cgi?id=795454

https://bugzilla.gnome.org/show_bug.cgi?id=795456
2018-04-24 11:11:22 +01: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
Philippe Normand
3f29b46283 meson: Bump version to 1.15.0.1 2018-03-29 18:58:09 +01:00
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
Nirbheek Chauhan
fa2adc717b Fix crash on Windows by delimiting option entries with NULL
Also use more verbose forms of g_assert which print values on failure
2018-03-08 20:10:55 +05:30
Nirbheek Chauhan
492d13a7c9 README: link to blog post, document multiparty example
Also add TODO stubs for MCU and SFU
2018-02-17 08:13:36 +05:30
Tim-Philipp Müller
2e5204ae3b README: fix formatting 2018-02-02 08:41:21 +00:00
Tim-Philipp Müller
72c10e8243 webrtc-sendrecv: define GST_USE_UNSTABLE_API to avoid compiler warnings 2018-02-02 08:39:04 +00:00
Tim-Philipp Müller
43a27385c3 Update README
Point to upstream repos now that it's been merged
2018-02-02 08:23:30 +00:00
Philippe Normand
48247c6ab6 meson: fix version number
Current development version is 1.13.0.1.
2017-12-31 13:21:30 +00:00
Nirbheek Chauhan
97cf763420 sendrecv: Add a Google STUN server to the configuration
Without this, the example will only work on link-local and localhost
networks.
2017-12-12 21:40:48 +05:30
Matthew Waters
e4e83a648b server/js: also allow running on localhost 2017-11-23 00:29:39 +11:00
Mathieu Duponchelle
e5c5767298 Update to new promise API 2017-11-22 22:28:55 +10:00
Nirbheek Chauhan
0c5e799952 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.
2017-10-30 13:24:21 +05:30
Nirbheek Chauhan
9b1a0e5389 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
2017-10-30 09:14:29 +05:30
Nirbheek Chauhan
569aff43f9 sendrecv: Rename function for greater clarity 2017-10-30 09:14:29 +05:30
Nirbheek Chauhan
96e4f39fd8 Update Protocol.md
Fix indentation typos
2017-10-29 04:08:45 +05:30
Nirbheek Chauhan
d687ff3d91 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
2017-10-28 19:20:44 +05:30
Nirbheek Chauhan
2db85c41cc Protocol.md: Fix headings 2017-10-28 19:03:11 +05:30
Nirbheek Chauhan
c2961305e3 signalling/client.py: Rename to session-client.py
Also fix CALL -> SESSION naming
2017-10-28 19:00:03 +05:30
Nirbheek Chauhan
e9b0656bad 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/
2017-10-21 20:02:19 +05:30
Nirbheek Chauhan
663ad7ba98 Add a simple python3 webrtc signalling server
+ client for testing + protocol documentation
2017-10-21 19:56:52 +05:30
Nirbheek Chauhan
8d782e4460 Initial commit 2017-10-21 19:43:01 +05:30
Matthew Waters
fed396ff8e playback/android: expose after setting the window handle
Fixes the view not updating in PAUSED after a surface change from an
orientation change/explicit surface change.
2017-10-12 16:28:47 +11:00