Commit Graph

92 Commits

Author SHA1 Message Date
Sean DuBois
cd2f9df294 Update DataChannel APIs for payload types
Users can now get/set what payload types they are sending and receiving
2018-07-26 00:46:45 -07:00
Sean DuBois
131ee7a35e Update data-channels example to show outbound
Sending is unimplemented, but just prints a message before entering SCTP stack
2018-07-21 12:27:38 -07:00
Sean DuBois
da37d43426 Bring back ICE notifications
We lost ICE notifications to user during DTLS refactor, this brings them back
2018-07-21 12:27:38 -07:00
Sean DuBois
bd9a6f6ca1 DTLS state should be shared by all ports
Before pion-WebRTC will fail if you bounce between STUN/Host
candidates. Our network code incorrectly failed to share SRTP/DTLS state
between all ports.
2018-07-21 12:27:38 -07:00
Sean DuBois
fd3082ef9b Update to use new PeerConnection API
Need to land #21 first, then we can merge this
2018-07-21 12:27:38 -07:00
Sean DuBois
25544948a0 Messages are delievered to public API
MVP complete! Only implemented ondatachannel and onmessage but users can
now recieve datachannel messages
2018-07-21 12:27:38 -07:00
Sean DuBois
eb34f6be61 It works!
DataChannel messages are now printed to stdout. This also adds a new
datachannel package that parses ChannelOpen, and starts the skeleton of
getting the data to the public API
2018-07-21 12:27:38 -07:00
Sean DuBois
e7ede14f5c De-dupe some OpenSSL code, and make sure we free tlscfg 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
7f682d2d2e api: match WebRTC api more closely 2018-07-16 14:20:18 -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
Raphael Randschau
8ed90c4fb0 listen on correct port
we need to listen on the local port of the STUN client, not the remote
one as those might be different
2018-07-11 21:58:49 -07:00
Raphael Randschau
791438e3cc implement STUN support 2018-07-11 21:58:49 -07:00
Raphael Randschau
55c5aedb93 guard against missing RTCConfiguration
while the RTCConfiguration object is optional we need to ensure we don't
get panics due to nil's.
2018-07-06 15:23:40 -07:00
Raphael Randschau
5bec5cf115 extract RTCConfiguration into separate file 2018-07-06 15:23:40 -07:00
Raphael Randschau
2d003f539b rename iceUsername and icePassword 2018-07-06 15:23:40 -07:00
Raphael Randschau
c6a1f1d8c0 add RTCConnection and RTCPeerConnection 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
John Bradley
dfd08a5ac4 Reduce packetization MTU to 1400 2018-07-05 17:16:51 -05:00
Sean DuBois
b1b6efd2fb Gofmt, extra newline in RTCPeerConnection 2018-07-04 16:38:09 -07:00
Sean DuBois
5745b7ce24 Fix #27
ice-candidates start at 1 (not 0)
2018-07-04 16:30:16 -07:00
Sean DuBois
b8b118dd48 Fix #25
If we only have one ICE candidate Chrome doesn't actually send any
ICE requests it seems.  If we only have one interface this just
duplicates the list (so we tie to an interface twice)

This is a temporary fix, and requires deeper investigate I created [0]
to track this issue

[0] https://github.com/pions/webrtc/issues/27
2018-07-04 16:05:47 -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
John Bradley
912a8e18f8 Add opus sending support 2018-07-03 18:00:45 -05:00
Sean DuBois
6cda3cc488 Implement SDP generation for each track
This is still a WIP, this deserves a well thought out rewrite in the
future
2018-07-02 23:46:40 -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
Sean DuBois
5bf9d5af34 Add ICE connection state change notification and timeouts 2018-06-30 02:57:47 -07:00
Sean DuBois
5235a4f78c Prepare for send-peer
Only thing left is creating the RTP packets, using packets directly
works
2018-06-24 19:48:45 -07:00
Sean DuBois
51136804ac Significant send progress
* GStreamer sends RTP packets to Go
* pion-WebRTC generates proper SDP, and has certificate ready
* Just need to implement SRTP functionality and rough MVP should be done
2018-06-22 01:04:07 -07:00
Sean DuBois
85a637dd9b Create new type 'Port' which maintains the state of a UDP listener 2018-06-20 01:06:36 -07:00
Sean DuBois
b662c65197 Cleanup post SRTP port
* Move .clang-format to internal/dtls on C code left
* Fix typo in internal/sdp
* Remove redundant type declarations in const
2018-06-18 23:31:22 -07:00
Sean DuBois
a6d6178c29 Remove panics from library
Panic should only be used in examples when we can't handle a condition
2018-06-18 22:43:57 -07:00
Sean DuBois
122b592e66 Expand README.md 2018-06-13 00:24:37 -07:00
Sean DuBois
d46382e382 Call RTCPeerConnection.Ontrack with a new goroutine
Every implementation should do this anyway. Also
new users might not understand and block all events for
RTCPeerConnections
2018-06-13 00:03:08 -07:00
Sean DuBois
c7ca757fa8 Change from Media -> Track
We expect single tracks, so use proper terminology
2018-06-12 23:59:56 -07:00
Sean DuBois
ddbb6c8ba8 Fix all golint errors 2018-06-12 22:24:52 -07:00
Sean DuBois
c21bc319d2 Set directions on channels 2018-06-12 21:25:49 -07:00
Sean DuBois
9e72c2913e Fix errcheck warnings 2018-06-12 01:13:09 -07:00
Sean DuBois
fd96da48ea Add save-to-disk example
Currently the constructed IVF don't work, but everything saves properly.
Hopefully off-by-one somewhere
2018-06-10 17:01:14 -07:00
Sean DuBois
279a786207 Refactor to match WebRTC Native API 2018-06-10 01:18:02 -07:00