Skip to content

Quest for the Sigil

Compare
Choose a tag to compare
@Sean-Der Sean-Der released this 23 Dec 23:23
· 1564 commits to master since this release

This is the third public release of pion-WebRTC, thanks for trying it out!

We hope you have as much fun using it and we did making it. Thank you so much to
everyone that contributed, the code and bug reports of the community are what makes it all possible.


This release adding the following features

  • Raw RTP Input
    You can now supply RTP packets directly. Instead of parsing and rebuilding packets you can just forward.
    This should improve performance for this use case, and will make code simpler. Implemented by Michael MacDonald

  • Allow adding Trickle-ICE candidates
    ICE candidates can now be added at any time, making pion-WebRTC compatible with WebRTC implementations that use trickle ICE like Chromium and FireFox. Implement by Michael MacDonald

  • Implement RTCP Reception
    The API now provides code to emit and handle RTCP packets, allowing you to build applications that
    interact and emit RTCP packets. Implemented by Woodrow Douglass

  • Transport refactor
    The internals of pion-WebRTC have been completely rewritten. This allows us to move subsystems to their own packages, cleaner code and fixed bugs along the way! Soon we should be able to provide ICE, SRTP, SCTP and more libraries for general use. We also now can explore alternative APIs like ORTC. Implemented by Michiel De Backker

  • Go native DTLS
    We are now 100% Go, removing our last C dependency (OpenSSL) We also now are able to provide a DTLS implementation to the greater community and are really excited about all the opportunities it opens up. Implemented by Michiel De Backker and Sean DuBois

  • Improve SRTP code and add auth tag checking
    Fixed a bug where wrong SRTP keys were used, in some cases video would fail to decode. Also expanded the SRTP code to do tag checking
    Implemented by Tobias Fridén

  • Add go-fuzz support to RTCP, and discovered crash in RTP code
    Implemented by Max Hawkins


We ship with the following demos you can base your application off of.

  • data-channels Shows how to use DataChannels and send/receive data to your browser
  • gstreamer-receive Shows how to receive video and play or process it via GStreamer
  • gstreamer-send Shows how to generate video via GStreamer and send it to your browser
  • janus-gateway/streaming Shows how to use connect to a Janus streaming mountpoint and save to an ivf container
  • janus-gateway/video-room Shows how to use connect to a Janus video-room and publish video
  • pion-to-pion Shows to communicate between two Pion instance using DataChannels, no browser required!
  • save-to-disk Shows how to receive VP8 from your browser and save to an ivf container
  • sfu Shows how to broadcast a video to many peers, while only requiring the broadcaster to upload once

To see what features are planned in the future, please see our roadmap