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
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