w3c / webcodecs

WebCodecs is a flexible web API for encoding and decoding audio and video.
https://w3c.github.io/webcodecs/
Other
1.01k stars 137 forks source link

Allow enabling configuring `DRED` when using Opus #827

Open padenot opened 2 months ago

padenot commented 2 months ago

See https://opus-codec.org/demo/opus-1.5/.

aboba commented 2 months ago

One item for DRED may be enabling configuration of the parameters defined here:

While an Opus implementation might have a maximum amount of DRED that it can support (e.g. dred-max), the maximum amount of DRED that a receiver can use depends on the application (e.g. more for streaming, less for RTC).

If the WebCodecs supported concealment (e.g. by allowing the decoder to process VideoFrames with null/empty data as per #558), then configuring the maximum amount of DRED a receiver can use could determine the maximum number of consecutive frames with null data that could be recovered via DRED. If there were additional loss, concealment (e.g. DeepPLC) could be applied in addition.

However, without a solution to #558, I don't understand how to support conventional Opus FEC, DRED or DeepPLC (which is integrated with DRED in Opus 1.5+).