PSA: Dropping support for RED from Voice Engine

197 views
Skip to first unread message

Karl Wiberg

unread,
May 23, 2016, 7:09:18 AM5/23/16
to discuss...@googlegroups.com

Voice engine currently supports a limited form of encoding redundancy (RED), where a copy of the previous encoded packet is appended to each encoded packet. But there are several problems with it:

  • It doesn’t work with Opus (and Opus has built-in redundancy).
  • It’s disabled in Chromium.
  • Because of a build system bug, it has been de facto disabled in stand-alone WebRTC builds too for a very long time. But no tests caught this, because
  • there are no tests.
Cleaning this code up, building tests for it, and fixing any bugs that have crept in would be a bunch of work. We’re planning to employ an Alexandrian solution instead: simply removing the code altogether (bug). Expect a CL to this effect in about two weeks.

NOTE: The Audio Coding Module also supports the same limited form of RED, but that code has working unit tests, and so is known to work. We will not remove RED support from the ACM.

--
Karl Wiberg, Google

Mikhail Fludkov

unread,
May 25, 2016, 10:12:34 AM5/25/16
to discuss-webrtc
What about RED support in the scenario when we negotiate the usage of FEC multiplexed together with media? Currently we receive FEC+Media packets incapsulated inside RED packets.

Mikhail Fludkov

unread,
May 25, 2016, 10:18:01 AM5/25/16
to discuss-webrtc
I ment ULPFEC

Karl Wiberg

unread,
May 25, 2016, 4:51:41 PM5/25/16
to discuss...@googlegroups.com
The thing we'll be removing is support for the RED payload format (as defined in RFC 2198). The only case handled by that code is the one where the redundant encoding is the same as the primary encoding; specifically, it does not support ULPFEC.

--

---
You received this message because you are subscribed to the Google Groups "discuss-webrtc" group.
To unsubscribe from this group and stop receiving emails from it, send an email to discuss-webrt...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/discuss-webrtc/2e59d986-ba54-4776-b669-988af564f31c%40googlegroups.com.

For more options, visit https://groups.google.com/d/optout.



--
Karl Wiberg, Google

Stefan Holmer

unread,
May 26, 2016, 6:14:03 PM5/26/16
to discuss...@googlegroups.com
ULPFEC is only used for video today and will still be around (in combination with RED). The announcement above is affecting audio.

Ugur

unread,
May 28, 2016, 4:16:02 AM5/28/16
to discuss-webrtc
Does this affect chrome? 

Karl Wiberg

unread,
May 28, 2016, 4:44:41 AM5/28/16
to discuss...@googlegroups.com
Yes, that's right. Thanks for the clarification. I believe I originally mentioned that this announcement was for Voice Engine (as opposed to Video Engine), and then promptly forgot that anything but audio exists... :-)


For more options, visit https://groups.google.com/d/optout.



--
Karl Wiberg, Google

Karl Wiberg

unread,
May 28, 2016, 4:46:09 AM5/28/16
to discuss...@googlegroups.com
No. Chromium (and Chrome) already explicitly compile-time configured WebRTC to not support RED for audio, so there will be no change there.

--

---
You received this message because you are subscribed to the Google Groups "discuss-webrtc" group.
To unsubscribe from this group and stop receiving emails from it, send an email to discuss-webrt...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.



--
Karl Wiberg, Google

Karl Wiberg

unread,
Jun 14, 2016, 10:06:10 AM6/14/16
to discuss...@googlegroups.com
I've started to land the CLs for this. I ended up wanting to remove VoERTP_RTCP::GetREDStatus and VoERTP_RTCP::SetREDStatus and RtpRtcp::SetSendREDPayloadType and RtpRtcp::SendREDPayloadType, since they're now useless. Although I don't expect anyone uses these, since it is technically an API change, I'll wait two more weeks to land those two CLs.
--
Karl Wiberg, Google
Reply all
Reply to author
Forward
0 new messages