Commit Graph

54 Commits

Author SHA1 Message Date
Sean DuBois
1202dbaa06 Migrate SDP generation to Unified Plan
This commit has breaking changes. This API change means we
can no longer support an arbitrary number of receivers. For every track
you want to receive you MUST call PeerConnection.AddTransceiver

We do now support sending an multiple audio/video feeds. You can see
this behavior via gstreamer-receive and gstreamer-send currently.

Resolves #54
2019-04-04 12:55:36 -07:00
Sean DuBois
bc94eaa968 Rewrite gstreamer-src/Pipeline for multi-track
This allows us to demonstrate multi-track easier, without having to
worry about encoding multiple times

Relates to #54
2019-04-04 12:55:36 -07: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
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
36cf0df239 Avoid defaultAPI
Relates to #434
2019-02-22 07:31:20 +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
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
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
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
backkem
e203a0537c ORTC: Add basic data channel constructors
Resolves #273
2019-01-08 13:43:49 -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
Sean DuBois
12fd9b41e4 Add example of using with Janus video-room
Resolves #268
2018-12-09 16:16:10 +01:00
backkem
7a527fadb3 Examples: exchange entire RTCSessionDescription
Resolves #39
2018-12-08 11:06:16 +01: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
backkem
2eddc94642 Examples: make uniform
Resolves #231
2018-11-19 00:42:16 -08:00
Sean DuBois
e500917a6e Implement SampleBuilder
SampleBuilder provides a simple API to build an
RTCSample from RTP packets. This is useful when proxying
audio/video data to multiple peers. This is the alternative
to allowing users to push RTP Packets directly. This would be
confusing as we would throw away some of the information that users
give us and could lead to weird edge cases

Resolves #112
2018-09-09 23:16:19 -07:00
Konstantin Itskov
cf2fdf0776 Revert public API name changes for on event handlers 2018-09-04 19:15:55 -04:00
Konstantin Itskov
f738cec9da Change the names of event handlers and attributes for readability 2018-09-04 09:33:05 -04:00
Konstantin Itskov
20191a4974 Add an almost complete rfc complaint RTCConfiguration 2018-08-28 01:03:09 -07:00
Sean DuBois
b431455273 Add STUN to all examples 2018-08-16 14:51:57 -07:00
Sean DuBois
78b6a76cc5 Revert "Move ICE package from public to internal folder structure"
ICE Package needs to be public for peerConnection.OnICEConnectionStateChange

This reverts commit b831f87d28.
2018-08-16 10:10:29 -07:00
Konstantin Itskov
b831f87d28 Move ICE package from public to internal folder structure 2018-08-16 01:28:48 -07:00
Sean DuBois
d9e6b8b61f Update examples to only generate SDP when candidates are done gathering 2018-08-11 13:56:28 -07:00
Sean DuBois
cf6e2d9e03 Enable STUN by default in examples 2018-07-21 12:27:38 -07:00
backkem
ab6910899c api: support a custom media engine 2018-07-16 14:20:18 -07:00
backkem
f7c5ecd57f api: fix typos 2018-07-16 14:20:18 -07:00
backkem
7f682d2d2e api: match WebRTC api more closely 2018-07-16 14:20:18 -07:00
Sean DuBois
2564609560 Disable STUN in examples temporarily
When we have multiple candidates that resolve we need to share DTLS
state across them
2018-07-14 13:26:01 -07:00
Sean DuBois
f440fc32d4 Finish STUN implementation
* Do not increment component id (this is used for marking RTP/RTCP)
* Add STUN to all examples so that they work out of the box
* Cast Addr from STUN client to UdpAddr instead of parsing
2018-07-11 21:58:49 -07:00
Sean DuBois
76a07068c9 Use HTTPS for jsfiddle examples 2018-07-07 11:32:58 -07:00
Sean DuBois
7aa47c7d99 Add empty css files to jsfiddle demos 2018-07-07 11:32:58 -07:00
Sean DuBois
074e3391bf Move JSfiddle snippets to git
jsfiddle provides a way to create snippets from Github via a URL. This
way we can still provide easy demos, but get all the nice things from
having them in Git

Closes #32
2018-07-07 11:32:58 -07:00
Raphael Randschau
98ea0b791e fix warnings in examples 2018-07-06 15:23:40 -07:00
Raphael Randschau
4f6983307f update examples with new constructor 2018-07-06 15:23:40 -07:00
John Bradley
cfba14cfea Add H264 send/receive and packetization support 2018-07-05 17:16:51 -05:00
Sean DuBois
c6d8334cf7 Update gstreamer-send jsfiddle 2018-07-04 00:49:23 -07:00
Sean DuBois
24a312c34d Fix poorly named function in RTCPeerConnection
CreateOffer -> CreateAnswer currently `pion-WebRTC` can only generate
offers not answers.
2018-07-04 00:46:01 -07:00
Sean DuBois
3b3ed9a544 Fix lint, vet and fmt errors 2018-07-03 21:11:25 -07:00
Sean DuBois
366f9ec268 Implement sample count generation in gstreamer-send
Audio+Video now works in gstreamer-send
2018-07-03 20:55:10 -07:00
Sean DuBois
a5cf1702e8 Use unique names for static globals in GStreamer cgo 2018-07-03 17:34:16 -07:00
Sean DuBois
b1da546d24 Implement multi-pipeline gstreamer-send example 2018-07-03 17:11:56 -07:00
John Bradley
912a8e18f8 Add opus sending support 2018-07-03 18:00:45 -05:00
Sean DuBois
f7ae8e3d0a Copy @backkem doc fixes to gstreamer-receive and save-to-disk 2018-07-03 11:42:40 -07:00
backkem
8df477e38d gstreamer-send: document running in Windows. 2018-07-03 11:18:46 -07:00
Sean DuBois
6eb22ad669 Add 'gstreamer-send' to README.md 2018-07-03 00:10:38 -07:00
Sean DuBois
093a4efac4 Gofmt 2018-07-02 21:58:08 -07:00
John R. Bradley
799e02d8f8 Add VP8 payloading 2018-07-02 23:28:53 -05:00
Sean DuBois
de2fb09778 Add support for receiving audio
Update gstreamer-receive to create pipelines for each input.

Currently we don't allow the user to pass in what codecs they support and we don't
take into account the offer. The API will need to be updated to catch
both these signaling errors. The user will pass a slice of support
codecs.
2018-07-01 02:04:47 -07:00