Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Roadmap #9

Open
48 of 56 tasks
Sean-Der opened this issue Jun 13, 2018 · 73 comments
Open
48 of 56 tasks

Roadmap #9

Sean-Der opened this issue Jun 13, 2018 · 73 comments

Comments

@Sean-Der
Copy link
Member

Sean-Der commented Jun 13, 2018

This is a covering ticket for the Pion WebRTC roadmap. If you have any requests feel free to leave them here/vote on others.

Planet Strike -- 1.0.0 (2018-06-20)

  • SRTP (in Go)
  • ICE-lite (We only respond to binding requests, requires host candidates. No STUN or TURN)
  • DTLS (In C, using OpenSSL)
  • API that allows users to receive media that closely matches the Javascript WebRTC API
  • API that allows users to send media that closely matches the Javascript WebRTC API

Aliens of Gold -- 1.1.0 (2018-09-00)

  • DataChannels
  • STUN
  • Full ICE (currently ice-lite only)
  • Bundling

Quest for the Sigil -- 1.2.0 (2018-12-00)

  • Port DTLS to Go from cgo (currently using OpenSSL)
  • Mobile Support
  • Transport Refactor

Spear of Destiny -- 2.0.0 (2019-04-00)

  • ORTC
  • Unified Plan
  • DataChannel improvements (configurable reliability)
  • Logging and ICE debugging
  • Experimental QUIC support
  • Experimental WebAssembly (WASM) support
  • API Cleanup to better match the WebRTC Spec.
  • Reliability improvements to SCTP and therefore Data Channels.
  • ICE Regular Nomination

Beyond Heretic -- 2.1.0 (2019-08-00)

  • TURN
  • Trickle ICE
  • mDNS Candidates

The HUNT Begins - 2.2.0 (2019-11-00)

  • SCTP Performance Improvements (16x in some cases!)
  • Extend SettingEngine to support SFU use cases
  • TCP TURN Support
  • PCM Support
  • Add/Remove tracks at runtime
  • IVF Reader to enable saving to disk

Future Shock - 3.0.0 (2020-12-14)

  • ICE Restarts
  • ICE TCP Candidates
  • Remove non-Trickle ICE. Provide utility that emulates old behavior.
  • SRTP AEAD_AES_128_GCM. Significant performance improvement in media crypto!
  • Simulcast.
  • Improved Media API so user doesn't need to managed PayloadType and SSRC
  • Interceptor API that allows users to implement NACK, FEC and Congestion Control via Public API

Plutonia - 3.1.0 (2021-08-01)

  • Transport Wide Congestion Control Interceptor, better Congestion Control then Sender+Receiver Reports
  • H265 Packetizer
  • FireFox Simulcast Support
  • Sender/Recevier Report interceptors, can be used in pion/webrtc or outside
  • UDPMux, Multiple PeerConnections can be served via the same UDP Port

System Shock 3.2.0 (2023-04-25)

  • Congestion Control Interceptor
  • AV1 Support
  • Simulcast Sender
  • Stats Interceptor

4.0.0 (No Date Picket)

  • Active ICE TCP
  • JitterBuffer Interceptor

No date picked

  • Serialize/Deserialize PeerConnection API
  • DTLS Restart
  • Performance/Allocation testing to GitHub Actions
  • Auto Change log generation/Remove manual process of releasing
  • Automate fuzz testing, submit Pion to oss-fuzz
  • H264 Interceptor (Analyze and attempt to fix common issues like no SPS/PPS with every IDR)
  • Harden security (fuzzing and other automated tooling)
  • TinyGo support. Pion for IoT devices

These things are ordered in the importance we have gotten from feedback. If you are building something and need a feature sooner please comment and we can move things around!

@notedit

This comment has been minimized.

@Sean-Der

This comment has been minimized.

@notedit

This comment has been minimized.

@ghost

This comment has been minimized.

@ghost

This comment has been minimized.

@ghost

This comment has been minimized.

@Sean-Der

This comment has been minimized.

@ghost

This comment has been minimized.

@shazow

This comment has been minimized.

@Sean-Der

This comment has been minimized.

@silbinarywolf

This comment has been minimized.

@ghost

This comment has been minimized.

@shazow

This comment has been minimized.

@Sean-Der

This comment has been minimized.

@ghost

This comment has been minimized.

@kafein

This comment has been minimized.

@Sean-Der

This comment has been minimized.

@Sean-Der

This comment has been minimized.

@Sean-Der

This comment has been minimized.

@Sean-Der

This comment has been minimized.

@chrisprobst

This comment has been minimized.

@backkem

This comment has been minimized.

@chrisprobst

This comment has been minimized.

@ghost

This comment has been minimized.

@backkem

This comment has been minimized.

@Sean-Der

This comment has been minimized.

@backkem backkem pinned this issue Dec 20, 2018
@Sean-Der

This comment has been minimized.

@Sean-Der

This comment has been minimized.

@Sean-Der

This comment has been minimized.

@mission-liao mission-liao unpinned this issue Dec 11, 2020
@mission-liao mission-liao pinned this issue Dec 11, 2020
@BenjaminX

This comment has been minimized.

@Sean-Der

This comment has been minimized.

@BenjaminX

This comment has been minimized.

@dtaht

This comment has been minimized.

@Sean-Der

This comment has been minimized.

@Philippe-Torrelli-Ale

This comment has been minimized.

@backkem

This comment has been minimized.

@Philippe-Torrelli-Ale

This comment has been minimized.

@Sean-Der
Copy link
Member Author

All major features have landed for v3.1.0

Transport Wide Congestion control is especially exciting. With Sender/Receiver reports ramping up to the ceiling bitrate could take almost a minute, now it is instant.

https://github.com/pion/webrtc/milestones/3.1.0 is tracking what is left in the release. Testing is much appreciated. We should have a final release tagged in the next week.

@dtaht

This comment has been minimized.

@Sean-Der

This comment has been minimized.

@ashellunts ashellunts unpinned this issue Nov 9, 2021
@ashellunts ashellunts pinned this issue Nov 9, 2021
@cameronelliott cameronelliott unpinned this issue Jan 17, 2022
@Sean-Der
Copy link
Member Author

Sean-Der commented Jan 23, 2022

Pion WebRTC now provides a Congestion Controller in tree! It is an implementation of the Google Congestion Controller. You can see an example of its usage here to see the actual code see pion/interceptor. All credit goes to @mengelbart who designed and implemented it.

The Congestion Controller is designed in a way that allows you to choose between multiple algorithms or write your own. We provide an interface and helpers so you only need to solve the important parts. A NADA implementation (written by @kevmo314) in the near future will be merged into pion/interceptor.

I am now going to start preparing a v3.2.0 release. I am going to try and close easy bugs and triage issues. If anyone is interested I have made a list here. Even if you can only help with one it will have a huge impact.

@Sean-Der Sean-Der pinned this issue May 22, 2022
@ZoroLH
Copy link

ZoroLH commented Dec 8, 2023

WHIP WHEP support? Or just an example?

@kevmo314
Copy link
Contributor

kevmo314 commented Dec 8, 2023

WHIP WHEP support? Or just an example?

WHIP/WHEP can be implemented with your own HTTP request or server right now, here's a server example: https://github.com/kevmo314/tinywhip/blob/main/cmd/main.go and a client example: https://github.com/ggarber/whip-go/

Happy to help clarify those examples, it seems like a good idea to put a simpler example under examples/ too.

@sirzooro
Copy link

sirzooro commented Mar 7, 2024

Please add support for MKI (Master Key Identifier). This consists of two parts:

  • first one is to support sending and receiving SRTP/SRTCP packets with single configured MKI. This will be useful for basic case when MKI has to be used;
  • second part is to allow use of multiple MKIs, what is needed for re-keying. Sender side seems to be quite easy (just replace one pair key+MKI with another). Receiving side is more complicated as code has to handle multiple keys at the same time.

BTW, DTLS-SRTP contains srtp_mki field, you could add support for it too.

@sirzooro
Copy link

sirzooro commented Mar 8, 2024

One more thing, please also add support for non-zero key derivation rate for SRTP.

aggresss added a commit to aggresss/pion-webrtc that referenced this issue Mar 22, 2024
@Sean-Der Sean-Der removed the triaged label Mar 29, 2024
@edaniels
Copy link
Member

edaniels commented Apr 2, 2024

I think we should add windows testing

@sirzooro
Copy link

sirzooro commented Apr 3, 2024

Add support for RFC 7675 - Session Traversal Utilities for NAT (STUN) Usage for Consent Freshness. WHEP specification requires it for media servers:

A Media Server terminating a session MUST follow the procedures in RFC7675 section 5.2 for immediate revocation of consent.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests