Update module github.com/pion/webrtc/v3 to v3.1.41 #25
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
v3.0.0-20200714033819-fe63deaeb51c
->v3.1.41
Release Notes
pion/webrtc
v3.1.41
Compare Source
v3.1.40
Compare Source
v3.1.39
Compare Source
v3.1.38
Compare Source
v3.1.37
Compare Source
v3.1.36
Compare Source
v3.1.35
Compare Source
v3.1.34
Compare Source
v3.1.33
Compare Source
v3.1.32
Compare Source
v3.1.31
Compare Source
v3.1.30
Compare Source
v3.1.29
Compare Source
v3.1.28
Compare Source
v3.1.27
Compare Source
v3.1.26
Compare Source
v3.1.25
Compare Source
v3.1.24
Compare Source
v3.1.23
Compare Source
v3.1.22
Compare Source
v3.1.21
Compare Source
v3.1.20
Compare Source
v3.1.19
Compare Source
v3.1.18
Compare Source
v3.1.17
Compare Source
v3.1.16
Compare Source
v3.1.15
Compare Source
v3.1.14
Compare Source
v3.1.13
Compare Source
v3.1.12
Compare Source
v3.1.11
Compare Source
v3.1.10
Compare Source
v3.1.9
Compare Source
v3.1.8
Compare Source
v3.1.7
Compare Source
v3.1.6
Compare Source
v3.1.5
Compare Source
v3.1.4
Compare Source
v3.1.3
Compare Source
v3.1.2
Compare Source
v3.1.1
Compare Source
v3.1.0
Compare Source
Pion WebRTC v3.1.0 is now available. Pion WebRTC is a Go implementation of WebRTC. If you haven't used it before check out awesome-pion or example-webrtc-applications for what people are doing. We maintain a feature list and other helpful resources in our README.md
This release includes 170 commits from 36 authors. This release was primarily focused on improve media quality/experience and making it easier to scale with Pion.
New Features
Serve many PeerConnections with one UDP port
You can now serve all your PeerConnections with a single UDP port. This makes deploying and scaling in environment like Kubernetes easier. Most WebRTC implementations (including Pion) will listen on a random UDP port for each remote peer.
To use this you create a
ICEUDPMux
and then share across all your PeerConnections via the SettingEngine. Your code will look like the following.This was implemented in d0a525.
FireFox Simulcast Support
We now support SSRC based Simulcast, before we only supported reading RID/MID from the RTP Extension Header as defined in ietf-mmusic-sdp-simulcast.
This was implemented in d570b7.
Sender/Receiver Report
Sender/Receiver Reports are now enabled by default via pion/interceptor
This means that remote peers will now get metadata from Pion and be able to do things like Bandwidth Estimation.
No code changes are needed to use them, but if you wish to disable them create a PeerConnection without passing a
InterceptorRegisty that
RegisterDefaultInterceptors
has been called on. This can be useful if performance is criticalor you want to ship your own implementation.
This was implemented in bc3016
Transport Wide Congestion Control Feedback
Transport Wide Congestion Control Feedback is now enabled by default via pion/interceptor
This allows remote peers to perform even better Congestion Control over Receiver Reports.
No code changes are needed to use them, but if you wish to disable them create a PeerConnection without passing a
InterceptorRegisty that
RegisterDefaultInterceptors
has been called on. This can be useful if performance is criticalor you want to ship your own implementation.
This was implemented in c8a26a
H265 Support
You can now packetize/depacketize H265. This allows you to read from a video file and send it over RTP, or the reverse.
This was implemented in 6cf5e9
v3.0.32
Compare Source
v3.0.31
Compare Source
v3.0.30
Compare Source
v3.0.29
Compare Source
v3.0.28
Compare Source
v3.0.27
Compare Source
v3.0.26
Compare Source
v3.0.25
Compare Source
v3.0.24
Compare Source
v3.0.23
Compare Source
v3.0.22
Compare Source
v3.0.21
Compare Source
v3.0.20
Compare Source
v3.0.19
Compare Source
v3.0.18
Compare Source
v3.0.17
Compare Source
v3.0.16
Compare Source
v3.0.15
Compare Source
v3.0.14
Compare Source
v3.0.13
Compare Source
v3.0.12
Compare Source
v3.0.11
Compare Source
v3.0.10
Compare Source
v3.0.9
Compare Source
v3.0.8
Compare Source
v3.0.7
Compare Source
v3.0.6
Compare Source
v3.0.5
Compare Source
v3.0.4
Compare Source
v3.0.3
Compare Source
v3.0.2
Compare Source
v3.0.1
Compare Source
v3.0.0
Compare Source
The Pion team is very excited to announce the v3.0.0 release of Pion WebRTC. Pion WebRTC is a Go implementation of WebRTC. If you haven't used it before check out awesome-pion or example-webrtc-applications for what people are doing. We maintain a feature list and other helpful resources in our README.md
This release includes 264 commits from 43 authors. We reduced sharp edges in the media API, add performance gains in media and datachannel paths and brought ourselves more in alignment with the browser API.
We do have quite a few breaking changes. Please read them carefully, most of these things can't be caught at compile time. Reading this document could save a lot of time debugging. Each change will have a linked commit. Looking at
examples/
in the linked commit should show what code you need to change in your application.Breaking Changes
Trickle ICE is now enabled by default
Before
/v3
Pion WebRTC would gather all candidates before aCreateOffer
orCreateAnswer
generated a SDP. This wouldcause a few issues in real world applications. You can read about the benefits of Trickle ICE here
Now you should exchange ICE Candidates that are pushed via the
OnICECandidate
callback.Before
After
If you are unable to migrate we have provided a helper function to simulate the pre-v3 behavior.
Helper function to simulate non-trickle ICE
This was changed with bb3aa9
A data channel is no longer implicitly created with a PeerConnection
Before
/v3
Pion WebRTC would always insert aapplication
Media Section. This means that an offer would work even ifyou didn't create a DataChannel or Transceiver, in
/v3
you MUST create a DataChannel or track first. To better illustratethese are two SDPs, each from a different version of Pion WebRTC
/v2 SDP
with no CreateDataChannel/v3 SDP
with no CreateDataChannelTo simulate the old functionality, call
CreateDataChannel
after creating your PeerConnection and before calling anything else.This was changed with abd6a3
Track
is now an interfaceThe design of the Track API in
/v3
has been updated to accommodate more use cases and reduce the sharp edges in the API.Before we used one structure to represent incoming and outgoing media. This didn't match with how WebRTC actually works.
In WebRTC a track isn't bi-directional. Having
Read
andWrite
on the same structure was confusing.Split
Track
intoTrackLocal
andTrackRemote
Now we have
TrackLocal
andTrackRemote
.TrackLocal
is used to send media,TrackRemote
is used to receive media.TrackRemote
has a similar API to/v2
. It hasRead
andReadRTP
and code will continue to work with just a name changeTrack -> TrackRemote
TrackLocal
is now an interface, and will require more work to port. For existing code you will want to use one of theTrackLocal
implementations.NewLocalTrackStaticSample
orNewLocalTrackStaticRTP
depending on what type of data you were sending before.Code that looks like
Needs to become like one of the following
Users no longer have to manage SSRC/PayloadType
When creating a Track you don't need to know these values. When writing packets you don't need to pull these values either. Internally
we make sure that everything is properly set. This means that
mediaengine.PopulateFromSDP
has been removed, and you can delete any code that does this.Other packages can satisfy
LocalTrack
pion/mediadevices now can provide an API that feels like
getUserMedia
in the browser. Before it wasn't able to generateanything that
pion/webrtc
could directly callAddTrack
on.A user could also implement
LocalTrack
and and add custom behavior.MediaEngine API has changed
We now use data structures from the W3C to configure available codecs and header extensions. You can also define your own MimeTypes, allowing
you to send any codec you wish!
pion/webrtc
can support for a new codec with just calls to the public API.Before
After
This was changed with 7edfb7
New Features
ICE Restarts
You can now initiate and accept an ICE Restart! This means that if a
PeerConnection
goes toDisconnected
orFailed
because of network interruption it is no longer fatal.To use you just need to pass
ICERestart: true
in yourOfferOptions
. The answering PeerConnection will then restart also. This is supported in FireFox/Chrome and Mobile WebRTC Clients.This was implemented in f29414
ICE TCP
Pion WebRTC now can act as a passive ICE TCP candidates. This means that a remote ICE Agent that supports TCP active can connect to Pion without using UDP. Before the only way to achieve ICE Connectivity in UDP-less networks was by using a TURN server.
You should still deploy and use a TURN server for NAT traversal.
Since this isn't part of the standard WebRTC API it requires SettingEngine usage. You can see how to use it in examples/ice-tcp
This was implemented in 2236dd
OnNegotationNeeded
onnegotationneeded is now available. You can define a callback and be notified whenever session negotiation needs to done.
OnNegotationNeeded
in pion/webrtc will behave differently that in the browser because we are operating in a multi-threaded environment. Make sure to have proper locking around your signaling/Session Description handling.This was implemented in c5819d
Simulcast
You can now send Simulcast feeds to Pion WebRTC! It uses MID/RID identification as defined in ietf-mmusic-sdp-simulcast. An example has been provided at examples/simulcast.
This was implemented in 6ee528
SRTP AEAD_AES_128_GCM
pion/srtp added support for the SRTP Cipher AEAD_AES_128_GCM. Thanks to hardware acceleration you can see up to a 400% performance improvement. You can run benchmarks in pion/srtp to see if your hardware supports it.
This cipher is on by default, so no change is required. During negotiation Pion WebRTC will prefer this cipher, but fall back to others if not available.
This was implemented in f871f4
Interceptor
v3.0.0 introduces a new Pion specific concept known as a interceptor. A Interceptor is a pluggable RTP/RTCP processor.
Via a public API users can easily add and customize operations that are run on inbound/outbound RTP. Interceptors are
an interface this means A user could provide their own implementation. Or you can use one of the interceptors Pion
will have in-tree.
We designed this with the following vision.
In this release we only are providing a NACK Generator/Responder interceptor. We will be implementing more and you can import the latest
at anytime! This means you can update your pion/interceptor version without having to upgrade pion/webrtc!
We plan on implementing the following. Check the README in pion/interceptor for the most up to date information.
WebRTC for the Curious
The Pion developers started a free book on how WebRTC actually works. It is available at https://webrtcforthecurious.com and is hosted from GitHub. It is A book about WebRTC in depth, not just about the APIs. Learn the full details of ICE, SCTP, DTLS, SRTP, and how they work together to make up the WebRTC stack.
This is also a great resource if you are trying to debug. Learn the tools of the trade and how to approach WebRTC issues.
This book is vendor agnostic and will not have any Pion specific information.
Projects that have been migrated
See https://github.com/pion/webrtc/issues/1615 for a list of projects that have been migrated to v3.0.0 already. If you are confused about what API changes you need these may be helpful
v3.0.0-beta.16
Compare Source
v3.0.0-beta.15
Compare Source
v3.0.0-beta.14
Compare Source
v3.0.0-beta.13
Compare Source
v3.0.0-beta.12
Compare Source
v3.0.0-beta.11
Compare Source
v3.0.0-beta.10
Compare Source
v3.0.0-beta.9
Compare Source
v3.0.0-beta.8
Compare Source
v3.0.0-beta.7
Compare Source
v3.0.0-beta.6
Compare Source
v3.0.0-beta.5
Compare Source
v3.0.0-beta.4
Compare Source
v3.0.0-beta.3
Compare Source
v3.0.0-beta.2
Compare Source
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate. View repository job log here.