Skip to content

Releases: pion/webrtc

v3.1.56

24 Feb 19:05
Compare
Choose a tag to compare

Changelog

  • 61f69be Update module github.com/pion/ice/v2 to v2.3.1
  • 132ebfa Update module github.com/pion/dtls/v2 to v2.2.6
  • d4fc945 Update module github.com/pion/dtls/v2 to v2.2.5
  • fba48cd Add Mermaid Chart to examples/data-channels

v3.1.55

10 Feb 04:47
Compare
Choose a tag to compare

Changelog

  • 43d0c5b Make Transceiver Negotation more consistent
  • 9dd2c42 Fix formatting in SettingEngine docs

v3.1.54

09 Feb 14:11
Compare
Choose a tag to compare

Changelog

  • 098d4ba Update module github.com/pion/ice/v2 to v2.3.0
  • eafdc77 Use new pion/transport Net interface
  • 2af43db Update module github.com/pion/dtls/v2 to v2.2.4
  • 3037913 Update module golang.org/x/net to v0.6.0
  • d43f782 Update module github.com/pion/interceptor to v0.1.12
  • 31c8f0a Update module github.com/pion/dtls/v2 to v2.2.2
  • 3dd1104 Update golang Docker tag to v1.20

v3.1.53

03 Feb 05:51
Compare
Choose a tag to compare

Changelog

  • 0c3da77 Update module github.com/pion/ice/v2 to v2.2.16
  • 045f086 Update module github.com/pion/ice/v2 to v2.2.15

v3.1.52

02 Feb 20:25
Compare
Choose a tag to compare

Changelog

  • 32f6883 Update module github.com/pion/ice/v2 to v2.2.14
  • 657dab7 Adding OnDial handler for datachannels

v3.1.51

31 Jan 18:26
Compare
Choose a tag to compare

Changelog

  • 3c802f7 Reuse passive created sendonly transceiver
  • 5b41ed6 Revert "Revert "Add currentDirection to RTPTransceiver""
  • a92c400 Revert "Add currentDirection to RTPTransceiver"
  • 66e8dfc Update CI configs to v0.10.3
  • 5ef816e Update CI configs to v0.10.1
  • 98a8604 Update module github.com/pion/sctp to v1.8.6
  • 602cedd Update module github.com/pion/srtp/v2 to v2.0.11
  • bc86d15 Update CI configs to v0.9.0
  • 7ab3174 Update module golang.org/x/net to v0.4.0
  • e29259c Update module github.com/pion/ice/v2 to v2.2.13

v3.1.50

12 Dec 22:15
Compare
Choose a tag to compare

What's Changed

  • Update module golang.org/x/net to v0.3.0 by @renovate in #2365
  • Update module github.com/pion/transport to v0.14.1 by @renovate in #2355
  • Update datachannel and sctp to include SetReadDeadline by @ckousik in #2369

New Contributors

Full Changelog: v3.1.49...v3.1.50

v3.1.49

23 Nov 06:34
Compare
Choose a tag to compare

Changelog

  • c75da54 Add EnableLoopbackCandidate flag
  • 5faad1e Update module github.com/pion/ice/v2 to v2.2.12
  • 2ebf9c6 Fix docs typo
  • 1365b0a Update CI configs to v0.8.1

v3.1.48

15 Nov 09:18
Compare
Choose a tag to compare

Changelog

  • fa6be2c Fix lint error
  • 9713221 Close unhandled stream when peerconnection closed
  • 2e42dfd Add test for pion-to-pion example
  • 25624d6 Simplify docker compose file of pion-to-pion
  • 257c9e5 Moved duplicate operation to function
  • 6b1e684 Fix pion-to-pion example in docker-compose
  • a748421 Update module golang.org/x/net to v0.1.0
  • 789623a Update code to be more Go idiomatic
  • c132bed Fix ice-single-port example README
  • 9c47fea Remove new RTCSessionDescription pattern
  • e66501e Update CI configs to v0.8.0
  • 42dc0d4 Update module github.com/pion/sctp to v1.8.3

Plutonia

19 Sep 17:14
Compare
Choose a tag to compare

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.

// Listen on UDP Port 8443
udpListener, _ := net.ListenUDP("udp", &net.UDPAddr{
    IP:   net.IP{0, 0, 0, 0},
    Port: 8443,
})

// Configure a SettingEngine to use our UDPMux. By default a PeerConnection has
// no global state. The API+SettingEngine allows the user to share state between them.
// In this case we are sharing our listening port across many.
settingEngine := webrtc.SettingEngine{}
settingEngine.SetICEUDPMux(webrtc.NewICEUDPMux(nil, udpListener))

// Create a new API using our SettingEngine
api = webrtc.NewAPI(webrtc.WithSettingEngine(settingEngine))

// Create a new PeerConnection
peerConnection_, := api.NewPeerConnection(webrtc.Configuration{})

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 critical
or you want to ship your own implementation.

// Register the default Codec configuration
m := &webrtc.MediaEngine{}
m.RegisterDefaultCodecs()

// Create a new API using our MediaEngine
api = webrtc.NewAPI(webrtc.WithMediaEngine(m))

// Create a new PeerConnection
peerConnection_, := api.NewPeerConnection(webrtc.Configuration{})

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 critical
or you want to ship your own implementation.

// Register the default Codec configuration
m := &webrtc.MediaEngine{}
m.RegisterDefaultCodecs()

// Create a new API using our MediaEngine
api = webrtc.NewAPI(webrtc.WithMediaEngine(m))

// Create a new PeerConnection
peerConnection_, := api.NewPeerConnection(webrtc.Configuration{})

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