Commit Graph

92 Commits

Author SHA1 Message Date
Sean DuBois
cc4160f3ad Fix deprecation cutover, and bad SDP creation
Methods that were marked as deprecated weren't properly handled. There
was a mix of old+new ones supported which caused broken behavior.

SDP creation didn't add SCTP to Offer

Resolves #156
2018-09-19 00:38:17 -07:00
Sean DuBois
8f1e32abf8 Remove panics and fix lint
Don't allow panics in library code, pion-WebRTC should never
cause a user's application to exit

Resolves #125
2018-09-12 00:07:27 -07: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
fde197b31c Revert some RTCPeerConnection changes that broke the date channels 2018-09-05 17:51:31 -04:00
Konstantin Itskov
685a18c792 Fix data channel creation startup for backwards compatibility 2018-09-05 17:51:31 -04:00
Konstantin Itskov
ed7261638e Add new versions of the deprecated event handler function names 2018-09-05 17:51:31 -04:00
Konstantin Itskov
af2033741d Fix data-channel-create example segfault issue 2018-09-05 08:16:45 -04:00
Konstantin Itskov
cf2fdf0776 Revert public API name changes for on event handlers 2018-09-04 19:15:55 -04:00
Konstantin Itskov
12c871b66f Add fixes to the linting to pass ci testing 2018-09-04 12:27:23 -04:00
Konstantin Itskov
0a2568695a Re-organize CreateDataChannel function and add limited spec compliance 2018-09-04 12:11:17 -04:00
Konstantin Itskov
885c333884 Move RTCSctpTransportState into its own file 2018-09-04 09:33:05 -04:00
Konstantin Itskov
ec78f2ac9c Reorganize functions into different files without meaningful code change 2018-09-04 09:33:05 -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
147ac1e2d1 Export RTCIceConnectionState and RTCIceGatheringState out from pkg/ice 2018-09-04 09:33:05 -04:00
backkem
8f45380600 CreateAnswer: fix nodejs fails to apply answer with empty bundle attribute 2018-09-02 17:42:23 +02:00
Konstantin Itskov
7cff07091f Resolve gofmt and goimports linting issues 2018-08-28 20:34:23 -04:00
Konstantin Itskov
e6a7ea45b8 Change the pkg name from pkg/dom to pkg/rtcerr 2018-08-28 20:34:23 -04:00
Konstantin Itskov
77e6da4b9b Move DOM wrapper errors into their own package 2018-08-28 20:34:23 -04:00
Sean DuBois
92c0024848 Bring back pushing of Remote Candidates onto ICEAgent 2018-08-28 01:03:09 -07:00
Konstantin Itskov
f4f42bc581 Add dummy commit to force ci to retest everything 2018-08-28 01:03:09 -07:00
Konstantin Itskov
12894d097b Fix all issues related to math/rand 2018-08-28 01:03:09 -07:00
Sean DuBois
81d673b05d GoFmt+GoImport 2018-08-28 01:03:09 -07:00
Konstantin Itskov
5741990d3a Uncomment a few more last things related to IceAgent 2018-08-28 01:03:09 -07:00
Sean DuBois
d9f636a798 Run GoFmt+GoImports 2018-08-28 01:03:09 -07:00
Konstantin Itskov
902cf087aa Add corrections to comply with govet, golint, etc. 2018-08-28 01:03:09 -07:00
Konstantin Itskov
7b7a349071 Add a bunch of documentation all over the library strucutres 2018-08-28 01:03:09 -07:00
Konstantin Itskov
a5e7a17580 Add temporary code for backward compatability with current IceAgent 2018-08-28 01:03:09 -07:00
Konstantin Itskov
a08b5d51cf Add a bunch of default basic unittests to boost coverage 2018-08-28 01:03:09 -07:00
Konstantin Itskov
d7697f88bc Add almost 100% unittest set for SetConfiguration 2018-08-28 01:03:09 -07:00
Konstantin Itskov
6fbfcf809c Add prereview changes for RTCConfiguration and everything it involves 2018-08-28 01:03:09 -07:00
Konstantin Itskov
eead1349da Add default unittest for a new rtcpeerconnection 2018-08-28 01:03:09 -07:00
Konstantin Itskov
e8364dc5e9 Add fully working RTCIceServer with 100% unit-test code coverage 2018-08-28 01:03:09 -07:00
Konstantin Itskov
c32dd50b97 Add almost completely working stun/turn uri parser 2018-08-28 01:03:09 -07:00
Konstantin Itskov
9e2484ea40 Move all of signaling code to rtcpeerconnection.go file 2018-08-28 01:03:09 -07:00
Konstantin Itskov
e74ed36c4a Fix a minor bug with initConfiguration 2018-08-28 01:03:09 -07:00
Konstantin Itskov
bb2b73aabf Add a few more unittests for SetConfiguration 2018-08-28 01:03:09 -07:00
Konstantin Itskov
c6bc9ab4e7 Add proper x509 certificate generation 2018-08-28 01:03:09 -07:00
Konstantin Itskov
20191a4974 Add an almost complete rfc complaint RTCConfiguration 2018-08-28 01:03:09 -07:00
Sean DuBois
259e3e00ba Fix lint errors 2018-08-18 00:18:23 -07:00
backkem
c85cded582 API: Initial api structure for creating datachannel and sctp information. 2018-08-18 00:18:23 -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
chenkaiC4
2b7ab19a94 fix golangci linter 2018-08-16 01:26:58 -07:00
Sean DuBois
63e6c54cd4 Receiving video from FireFox (using gstreamer-receive) works
The following fixes were needed to make this happen. All of these things
are valid, I just made assumptions/used Chromium default values.

* Drop the sessionId to 32bits (from 64)
* When generating a response use the same mid values as the offer
* Use the localDescription to map a payloadType to video codec
2018-08-14 14:32:15 -07:00
Sean DuBois
02e72796d4 Emit ICEConnectionState to user API again 2018-08-11 13:56:28 -07:00
Sean DuBois
283404bd6c Remove all panics in library code 2018-08-11 13:56:28 -07:00
Sean DuBois
938e490c39 Fix all lint errors, move SDP code to proper package 2018-08-11 13:56:28 -07:00
Sean DuBois
1be721e5fa ICE works again, with proper agent implementation
Candidates are now generated with real priority, and actually pay
attention to the inbound messages.

Next we just need to pluck use-candidate + ice-controlling from the
messages and we will have a full-ice implementation (but we are not
controlling)

We then need to add timers to alert when the peer goes away OR when we
need to send again.
2018-08-11 13:56:28 -07:00
Sean DuBois
0c08a67e20 Start full ICE implementation for #23 2018-08-11 13:56:28 -07:00
Sean DuBois
22bd31d006 Fix all races in example applications
* Add locking around SCTP Assocation
* Add locking around DataChannel
* Add locking around port+global ICE

Closes #46
2018-07-26 00:46:45 -07:00