Commit Graph

344 Commits

Author SHA1 Message Date
Alex Browne
0f1ddf0825 Add JavaScript/WASM bindings
Resolves #478. Adds minimal JavaScript/WASM bindings. This makes it
possible to compile core parts of pions/webrtc to WASM and run it in the
browser. Only data channels are supported for now and there is
limited/no support for certificates and credentials.
2019-03-08 00:26:17 +01:00
Antoine Baché
6a68ca04a8 IVF records can now be longer than 30s
- Added timeout to save-to-disk example
- Writing number of IVF frames when closing the file
- Fixed typos

Relates to #471
2019-03-07 14:49:25 -08:00
backkem
911013755a Examples: serve WASM examples locally
The examples server now detects 'demo.wasm' files in
the jsfiddles. Examples layout updated to match Pion style.
Resolves #491
2019-03-07 22:44:51 +01:00
feixiao
1e3d7cecb0 Update janus-gateway/video-room with keepalive
Example wasn't sending keep-alives, causing Janus to eventually
end the session even if we weren't done sending
2019-03-06 22:49:10 -08:00
Sean DuBois
f46ebf7eff Provide easy example of video without browser
Combine `gstreamer-receive` and `gstreamer-send-offer` so people can
easily see how to transport audio/video without using their browser.

This moves the HTTP endpoint out of `examples/sfu` so it can be used in
multiple examples

Resolves #472
2019-03-04 11:10:07 -08:00
Woodrow Douglass
8a4878c2c4 Don't allow RTP codecs that violate RFC7587
Resolves #462
2019-03-01 16:00:33 -05:00
Antoine Baché
07e5c4e07e Implementation of opuswriter
- Implemented a common "Writer" interface
- Made IVFWriter compliant to the new interface
- Implemented an OGG Opus writer
- Updated the save-file example
- Updated janus-gateway/streaming example
- Wrote a few unit tests for opus-writer
- Wrote a few unit tests for ivf-writer
- Fixed filenames
- Improved API to allow tests using an io.Writer
2019-02-27 12:02:34 -08:00
frank
6fd4ee67f4 Docs: Build Janus example on OSX
Documented how to build the janus-gateway example on OSX.
2019-02-27 14:22:31 +01:00
Sean DuBois
6aeb3425b0 Move to new Track API
See v2.0.0 Release Notes[0] for all changes

Resolves #405

[0] https://github.com/pions/webrtc/wiki/v2.0.0-Release-Notes#media-api
2019-02-25 23:44:09 -08:00
backkem
f5d11df18d API: Review DataChannel
Resolves #427
2019-02-22 15:35:32 +01:00
backkem
36cf0df239 Avoid defaultAPI
Relates to #434
2019-02-22 07:31:20 +01:00
backkem
4fe2728721 Remove global API for settings engine
Limit global API to the basics needed to construct a PeerConnection.
2019-02-21 22:04:30 +01:00
backkem
64644e594b QUIC: Move out of tree
This moves the QUIC API out of tree to pions/quic.
2019-02-21 14:27:50 +01:00
backkem
ddcef2d84f Examples: Make examples/util internal
Resolves #424
2019-02-20 21:32:48 +01:00
backkem
bf422e0c0a API: Avoid exposing pkg/ice
OnICEConnectionStateChange now return a ICEConnectionState instead of
ice.ConnectionState.
Resolves #422
2019-02-20 20:47:34 +01:00
Max Hawkins
9d88f7c71a Rename Sdp -> SDP
Relates to #417
2019-02-18 11:47:05 -08:00
Max Hawkins
c6592e6c4b Rename Ssrc -> SSRC
This capitalization is consistent with other uses in the project,
and matches the Go convention of capitalizing initialisms.

https://github.com/golang/go/wiki/CodeReviewComments#initialisms

Relates to #417
2019-02-18 11:47:05 -08:00
Max Hawkins
0e7086d37a Remove RTC prefix from all names
Let's pull off the bandaid!

* Reduces studdering: webrtc.RTCTrack -> webrtc.Track
* Makes it easier to find types by editor autocomplete
* Makes code read more fluently (less repetition)

Since we're breaking the API in 2.0, our only chance to
do this is now.

Relates to #408
2019-02-17 16:22:56 -08:00
rob-deutsch
a071b8af09 Gstreamer-receive reserves main thread for Glib
The Glib loop is run in the main thread (in the OS point of view)
2019-02-16 02:01:20 -08:00
Sean DuBois
b67f73c34f Stop Create(Offer/Answer) from setting localDesc
This deviates from the WebRTC spec, so we need to fix it. This is a
massively breaking change, so we need to figure out the best way to help
users with this.

I also renamed our RTCPeerConnection constructor. The hope is that
people will refer to the examples/backlog and see what changed.

Resolves #309
2019-02-15 23:13:25 -08:00
jinleileiking
e982d6eda2 Check error when tcp port is used
Relates #400
2019-02-14 19:53:06 +08:00
jinleileiking
c40e4a53ef Add http endpoint to SFU example
Resolves #400
2019-02-13 23:32:35 -08:00
rob-deutsch
f5e8f0fa4a Gstreamer: avoid lock contention with pipeline
Stop one pipeline from preventing others from sending data
if it wasn't being serviced
2019-02-13 23:56:42 +11:00
rob-deutsch
737516efbd Gstreamer: gracefully stop pipeline sending
Stop pipelines from hanging because the appsink element was hanging
waiting for a channel receive.
2019-02-13 23:43:16 +11:00
rob-deutsch
72c51607d7 Fixed minor leak in examples/util
Fixed minor pipeline/element memory leak in examples/util
2019-02-10 18:50:21 +11:00
Sean DuBois
d9ba0533f5 Fix Codacy warnings
Run standardjs across all js files, fix all other issues by hand
2019-02-05 23:18:47 -08:00
Sean DuBois
2863555984 Export RTP/RTCP to unique packages
Resolves #272
2019-01-28 11:38:54 -08:00
backkem
db15e20c54 API: Expose SettingEngine
Enable passing custom settings and media engine to an API.
2019-01-24 20:35:49 +01:00
backkem
130fec6774 Data channel: Add Close and OnClose
Relates to #180
2019-01-23 23:17:26 +01:00
Sean DuBois
c2d637c7a5 Update examples/sfu to use RawRTP input/output
The example used the SampleBuilder before, which is buggy
and doesn't add any value. Move over the RawRTP input/output.

Resolves #343
2019-01-08 14:26:26 -08:00
Sean DuBois
1b19e2ae00 Better defaults for lossy realtime VP8
Update GStreamer examples to use some better defaults for real time
video. This isn't perfect, but improves the default experience for users
a little bit.

Relates to #303
2019-01-08 14:26:11 -08:00
backkem
81e5a31767 ORTC: Add RTCQuicTransport
Resolves #275
2019-01-08 13:43:49 -08:00
backkem
e203a0537c ORTC: Add basic data channel constructors
Resolves #273
2019-01-08 13:43:49 -08:00
Sean DuBois
114de5e33f Fix golint and misspell errors
Found by goreportcard
2018-12-28 00:53:47 -08:00
Sean DuBois
eec8f43b0c Extend gstreamer-src so src is an argument
This allows us to give better examples with webcam + file input

Relates to #206 #209
2018-12-25 14:16:11 -05:00
backkem
3762e8a09e Detach: Expose data channel networking
Resolves #277
2018-12-24 17:51:01 +01:00
Sean DuBois
bec4743e47 Update GStreamer examples to support G722
Update util/gstreamer-sink with case for G722. Also prefer Opus over
G722 in RegisterDefaultCodecs

Relates to #283
2018-12-20 05:19:48 -05:00
Woodrow Douglass
c1bfcc8367 Tweak g722 support code
* allow GST examples to use g722
* Assume G722 is mono -- that's what chrome likes,
  and i don't know if anyone's doing stereo g722 anyway

Relates to #283
2018-12-18 08:33:19 -05:00
Sean DuBois
12fd9b41e4 Add example of using with Janus video-room
Resolves #268
2018-12-09 16:16:10 +01:00
Sean DuBois
5b803c887b Update gstreamer-receive to match jsfiddle in git
Relates to #39
2018-12-08 17:08:10 -08:00
Sean DuBois
5d6262f63a Send PLI in all recv examples
Temporary fix until examples can respond to RTCP
2018-12-08 16:57:34 -08:00
backkem
7a527fadb3 Examples: exchange entire RTCSessionDescription
Resolves #39
2018-12-08 11:06:16 +01:00
Sean DuBois
756d74196d Update data-channels-create example to use STUN
Resolves #255
2018-12-06 00:07:07 -08:00
Sean DuBois
6bf22b014e DTLS is fast enough now that we don't need PLI
Remove temporary fix that only existed when handshaking was slow

Resolves #204
2018-12-04 00:10:14 -08:00
Sean DuBois
3546d10951 Update janus-gateway README
Janus now works everytime! Since we have DTLS retransmissions now we can
remove the note from the README about it

Resolves #204
2018-12-04 00:10:14 -08:00
Sean DuBois
02bc9ec2e7 Send PLI in all recv examples
DTLS Keying material is slower then OpenSSL, for now just send PLI on an
interval until we improve our DTLS implementation

Resolves #204
2018-12-04 00:10:14 -08:00
backkem
c6ebe602f4 Add Go modules
Resolves #244
2018-12-03 23:12:23 -08:00
Sean DuBois
a0892b2392 Update examples to use non-deprecated APIs
Move from NewRTCTrack -> NewRTCSampleTrack and a few other
simple cases

Resolves #238
2018-11-24 00:51:53 -08:00
Michael MacDonald
d5cf800ebb Safer Event Callbacks
Resolves #218

Change Event Callback APIs to setter functions which take care of
locking so that users don't need to know about or remember
to do this.
2018-11-19 12:42:15 -05:00
Michael MacDonald
d3984899d1 Fix build breakage in example
Relates to #231
2018-11-19 10:57:00 -05:00