pion/webrtc
### [`v2.2.0`](https://togithub.com/pion/webrtc/releases/v2.2.0)
[Compare Source](https://togithub.com/pion/webrtc/compare/v2.1.18...v2.2.0)
After 5 months of work (and lots of distraction) the Pion team is excited to announce the release of `v2.2.0`!
This release includes.
#### New Features
##### DataChannel Performance Improvements
Thanks to hard work by [@enobufs](https://togithub.com/enobufs) Datachannels have gotten a huge performance improvement. In some cases you will see a 16x improvement in throughput. You can read more about his fantastic work [here](https://togithub.com/pion/sctp/issues/62#issuecomment-544239446)
##### Extend SettingEngine to support SFU use cases
Pion WebRTC is seeing lots of usage in building SFUs. To support this the [SettingEngine](https://pkg.go.dev/github.com/pion/webrtc/v2?tab=doc#SettingEngine) has been extended to add even more options. You now have the following flags you can configure
- [SetEphemeralUDPPortRange](https://pkg.go.dev/github.com/pion/webrtc/v2?tab=doc#SettingEngine.SetEphemeralUDPPortRange) You can limit the range of UDP ports used to support restrictive networks
- [SetInterfaceFilter](https://pkg.go.dev/github.com/pion/webrtc/v2?tab=doc#SettingEngine.SetInterfaceFilter) You can exclude some interfaces from being used.
- [SetNAT1To1IPs](https://pkg.go.dev/github.com/pion/webrtc/v2?tab=doc#SettingEngine.SetNAT1To1IPs) Allows you to set a static IP to replace all host candidates. Useful if you are behind a DNAT, and don't want to make a STUN request for each PeerConnection.
- [SetNetworkTypes](https://pkg.go.dev/github.com/pion/webrtc/v2?tab=doc#SettingEngine.SetNetworkTypes) You can blacklist TCP, UDP, IPv4 or IPv6. Useful if you know certain configurations will never work.
- [SetLite](https://pkg.go.dev/github.com/pion/webrtc/v2?tab=doc#SettingEngine.SetLite) Enables ICE lite, a minimal version of the ICE protocol. Reduces complexity in situations where full ICE isn't needed like a publicly routeable SFU.
Thank you [@seppo0010](https://togithub.com/seppo0010), [@AeroNotix](https://togithub.com/AeroNotix), [@enobufs](https://togithub.com/enobufs) and [@trivigy](https://togithub.com/trivigy) for your work on this
##### TCP TURN Support
Pion WebRTC now supports creating allocations via UDP, TCP and TLS. Implemented by [@enobufs](https://togithub.com/enobufs)
##### PCM Support
Pion WebRTC now supports sending and receiving PCM.
##### Renegotiation
You can now Add/Remove tracks at anytime, and renegotiate! We have add a new minimal example called [play-from-disk-renegotation](https://togithub.com/pion/webrtc/tree/master/examples/play-from-disk-renegotation) that demonstrates this behavior. This example allows you to play a video back from disk multiple times, and you can stop the individual instances at any time!
##### Add IVFReader
We now have a Go implementation of an `.ivf` Demuxer. This allows users to easily playback files from disk. Pion also provides an IVFWriter, so you could easily save a file to disk and play it back later. Implemented by [@justinokamoto](https://togithub.com/justinokamoto)
##### VP9 Support
You can now send and receive VP9. Implemented by [@at-wat](https://togithub.com/at-wat)
#### Next Release
The next release will contain lots of bugfixes and other improvements, but the general goals for the next 6 months are.
##### Better Stats
Pion WebRTC is seeing lots of usage for load testing and measuring WebRTC servers. We are going to work on implement as many webrtc-stats as possible, after that we are going to explore building a framework on top of the PeerConnection API that makes load testing easier. We also want to make it easier to measure things in production, have an application that is easy to build deploy to production that can measure how your service is behaving will help a lot of users.
##### Better Media
Pion WebRTC lacks a in-tree JitterBuffer and Congestion Control. Users like [ion](https://togithub.com/pion/ion) right now have to implement it themselves. In the future Pion WebRTC will allow users to pass their own implementations (because they know their needs best), but provide some default implementations.
##### Better Performance
We are going to start measuring allocations, create real benchmarks and working on getting them better. We then need to add these benchmarks to CI and make sure they never regress.
Renovate configuration
:date: Schedule: At any time (no schedule defined).
:vertical_traffic_light: Automerge: Disabled by config. Please merge this manually once you are satisfied.
:recycle: Rebasing: Whenever PR becomes conflicted, or if you tick the rebase/retry checkbox below.
:no_bell: Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR contains the following updates:
v2.1.18
->v2.2.0
Release Notes
pion/webrtc
### [`v2.2.0`](https://togithub.com/pion/webrtc/releases/v2.2.0) [Compare Source](https://togithub.com/pion/webrtc/compare/v2.1.18...v2.2.0) After 5 months of work (and lots of distraction) the Pion team is excited to announce the release of `v2.2.0`! This release includes. #### New Features ##### DataChannel Performance Improvements Thanks to hard work by [@enobufs](https://togithub.com/enobufs) Datachannels have gotten a huge performance improvement. In some cases you will see a 16x improvement in throughput. You can read more about his fantastic work [here](https://togithub.com/pion/sctp/issues/62#issuecomment-544239446) ##### Extend SettingEngine to support SFU use cases Pion WebRTC is seeing lots of usage in building SFUs. To support this the [SettingEngine](https://pkg.go.dev/github.com/pion/webrtc/v2?tab=doc#SettingEngine) has been extended to add even more options. You now have the following flags you can configure - [SetEphemeralUDPPortRange](https://pkg.go.dev/github.com/pion/webrtc/v2?tab=doc#SettingEngine.SetEphemeralUDPPortRange) You can limit the range of UDP ports used to support restrictive networks - [SetInterfaceFilter](https://pkg.go.dev/github.com/pion/webrtc/v2?tab=doc#SettingEngine.SetInterfaceFilter) You can exclude some interfaces from being used. - [SetNAT1To1IPs](https://pkg.go.dev/github.com/pion/webrtc/v2?tab=doc#SettingEngine.SetNAT1To1IPs) Allows you to set a static IP to replace all host candidates. Useful if you are behind a DNAT, and don't want to make a STUN request for each PeerConnection. - [SetNetworkTypes](https://pkg.go.dev/github.com/pion/webrtc/v2?tab=doc#SettingEngine.SetNetworkTypes) You can blacklist TCP, UDP, IPv4 or IPv6. Useful if you know certain configurations will never work. - [SetLite](https://pkg.go.dev/github.com/pion/webrtc/v2?tab=doc#SettingEngine.SetLite) Enables ICE lite, a minimal version of the ICE protocol. Reduces complexity in situations where full ICE isn't needed like a publicly routeable SFU. Thank you [@seppo0010](https://togithub.com/seppo0010), [@AeroNotix](https://togithub.com/AeroNotix), [@enobufs](https://togithub.com/enobufs) and [@trivigy](https://togithub.com/trivigy) for your work on this ##### TCP TURN Support Pion WebRTC now supports creating allocations via UDP, TCP and TLS. Implemented by [@enobufs](https://togithub.com/enobufs) ##### PCM Support Pion WebRTC now supports sending and receiving PCM. ##### Renegotiation You can now Add/Remove tracks at anytime, and renegotiate! We have add a new minimal example called [play-from-disk-renegotation](https://togithub.com/pion/webrtc/tree/master/examples/play-from-disk-renegotation) that demonstrates this behavior. This example allows you to play a video back from disk multiple times, and you can stop the individual instances at any time! ##### Add IVFReader We now have a Go implementation of an `.ivf` Demuxer. This allows users to easily playback files from disk. Pion also provides an IVFWriter, so you could easily save a file to disk and play it back later. Implemented by [@justinokamoto](https://togithub.com/justinokamoto) ##### VP9 Support You can now send and receive VP9. Implemented by [@at-wat](https://togithub.com/at-wat) #### Next Release The next release will contain lots of bugfixes and other improvements, but the general goals for the next 6 months are. ##### Better Stats Pion WebRTC is seeing lots of usage for load testing and measuring WebRTC servers. We are going to work on implement as many webrtc-stats as possible, after that we are going to explore building a framework on top of the PeerConnection API that makes load testing easier. We also want to make it easier to measure things in production, have an application that is easy to build deploy to production that can measure how your service is behaving will help a lot of users. ##### Better Media Pion WebRTC lacks a in-tree JitterBuffer and Congestion Control. Users like [ion](https://togithub.com/pion/ion) right now have to implement it themselves. In the future Pion WebRTC will allow users to pass their own implementations (because they know their needs best), but provide some default implementations. ##### Better Performance We are going to start measuring allocations, create real benchmarks and working on getting them better. We then need to add these benchmarks to CI and make sure they never regress.Renovate configuration
:date: Schedule: At any time (no schedule defined).
:vertical_traffic_light: Automerge: Disabled by config. Please merge this manually once you are satisfied.
:recycle: Rebasing: Whenever PR becomes conflicted, or if you tick the rebase/retry checkbox below.
:no_bell: Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by WhiteSource Renovate. View repository job log here.