Skip to content

Releases: pion/webrtc

v3.2.5

19 May 19:21
Compare
Choose a tag to compare

Changelog

  • 7a100b9 Enable SRTP_AEAD_AES_256_GCM
  • f9e0934 Update module github.com/pion/interceptor to v0.1.17
  • 55b1ac0 Update module github.com/pion/dtls/v2 to v2.2.7
  • ab11eed Improve SetEphemeralUDPPortRange documentation
  • d1985e0 Bring back LICENSE file
  • a8aa8cc Update AUTHORS.txt
  • b07c7b2 Update CI configs to v0.10.9

v3.2.4

19 May 03:43
Compare
Choose a tag to compare

Changelog

  • f83bd73 Remove SRTP_AEAD_AES_256_GCM from default
  • 505f54c Update module github.com/stretchr/testify to v1.8.3
  • 4d3c4b1 Add SetDTLSConnectContextMaker to SettingEngine
  • c1bec49 Update CI configs to v0.10.8
  • c719ccd Bring back LICENSE file

v3.2.3

18 May 14:11
Compare
Choose a tag to compare

Changelog

  • fc0c4e7 Update module github.com/pion/ice/v2 to v2.3.4

v3.2.2

18 May 12:49
Compare
Choose a tag to compare

Changelog

  • bb022d5 Implemented SRTP_AEAD_AES_256_GCM
  • 0199c58 Update AUTHORS.txt
  • 1210046 Upgrading pion/ice dependency
  • 683fc83 Make repo REUSE compliant
  • efffef2 Update CI configs to v0.10.7
  • 9f74821 Update module golang.org/x/net to v0.9.0
  • f906bd2 Update module github.com/pion/srtp/v2 to v2.0.13

v3.2.1

30 Apr 04:37
Compare
Choose a tag to compare

Changelog

  • 5bdbaca Update module github.com/pion/sctp to v1.8.7

v3.2.0

26 Apr 17:46
Compare
Choose a tag to compare

Pion WebRTC v3.2.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 260 commits from 55 authors. This release was primarily focused on providing more tools around understanding and handling network conditions. Pion wouldn't be possible without everyone involved.

New Features

Media Bandwidth Estimator

Pion now provides a Bandwidth Estimator in-tree for serving media. You now get signals about how much bandwidth is available so you can either send more or less data, giving your users the best experience possible. We currently have a implementation of Google Congestion Control. This was implemented using a generic interface so we can provide more implementations in the future.

To use this you create a cc.BandwidthEstimator provided by pion/interceptor. This estimator then can be queried via estimator.GetTargetBitrate(). This returned value tells you if you should raise, lower or sustain the bitrate you are currently sending.

See bandwidth-estimation-from-disk for a full example of how it can be used.

This was implemented by @mengelbart. Work on Pion's congestion control and bandwidth estimation was funded through the User-Operated Internet fund, a fund established by NLnet made possible by financial support from the PKT Community/The Network Steward and stichting Technology Commons Trust.

webrtc-stats implementation

You can now query and process metadata about your media connections. This data is presented in the standardized webrtc-stats format. These statistics give insight into the why of a WebRTC session.

You can use this to monitor how your Pion WebRTC PeerConnections are operating. Users are also finding this useful to monitor, debug and analyze other WebRTC media servers. You can quickly start up a Pion WebRTC PeerConnection and write canaries and tests against other WebRTC software.

To use this you create a stats.Interceptor provided by pion/interceptor. This allows you to query on a per SSRC basis the status of a stream. The following is an example of query it in a loop in the OnTrack for each stream.

peerConnection.OnTrack(func(track *webrtc.TrackRemote, receiver *webrtc.RTPReceiver) {
    fmt.Printf("New incoming track with codec: %s\n", track.Codec().MimeType)
    for {
        // Pull the stats for the stream that caused OnTrack to be fired
        stats := statsGetter.Get(uint32(track.SSRC()))
                 
         // Print InboundRTPStreamStats. Other stats are available as well
         fmt.Println(stats.InboundRTPStreamStats)

         time.Sleep(time.Second * 5)     
    }
})

See stats for a full example of how it can be used.

This was implemented by @mengelbart

Simulcast Sender

You are now able to send Simulcast traffic with Pion WebRTC. Before this commit we were only able to receive Simulcast traffic.

Developer are using this to move Simulcast traffic between their servers as they scale out. It has also been useful for testing WebRTC servers. Using a small Pion process you can assert that your servers are properly handling Simulcast traffic.

This was implemented in 37e16a3 by @boks1971

AV1 Support

Pion WebRTC now has AV1 support. You can send AV1 with the same APIs you send and receive H264, H265, VP8, VP9, Opus and PCM with.

A example of saving AV1 to disk is available at save-to-disk-av1

Extensive Tooling Improvements

@stv0g and @at-wat made extensive improvements to the .goassets repo. Tools and processes had fallen out of date and were slowing the project down. They took on a lot of frustrating work so Pion can be stable and defect free.

v3.1.62

25 Apr 03:38
Compare
Choose a tag to compare

Changelog

  • dfaf820 Update module github.com/pion/interceptor to v0.1.13
  • 16fea9e Set DataChannel SCTPTransport before OnDataChannel

v3.1.61

23 Apr 15:03
Compare
Choose a tag to compare

Changelog

  • 570b61a Update module github.com/pion/transport/v2 to v2.2.0
  • d08b3dc Handle Simulcast Offer with one Media Section

v3.1.60

17 Apr 01:43
Compare
Choose a tag to compare

Changelog

  • 6114c27 Fix simucalst track set to incorrect detail
  • 303f204 Drop duplicate stats from marshall test
  • 308f861 Update CI configs to v0.10.6
  • d1b7bdb Harmonize sections in README
  • 10db568 Update module golang.org/x/net to v0.8.0

v3.1.59

29 Mar 22:30
Compare
Choose a tag to compare

Changelog

  • 486f6a2 Update module github.com/pion/ice/v2 to v2.3.2
  • b6191eb Fix potential deadlock in the example
  • cf60891 Fix ignored calls during OnDataChannel
  • 1b74d28 Cleanup common sections in README
  • 77051ab Cleanup badges in README
  • 595f1c0 Move negotation test out of peerconnection_test