Module dred

Module dred 

Source
Expand description

DRED decoder

Deep Audio Redundancy relies on encoder to embed historic speech data within OPUS packet’s padding to provide extra data for DRED decoder to re-construct speech in case of data loss. Therefore this decoder is only useful when you rely on unreliable transport protocol like UDP (common for VOIP applications). There is no benefit in using it when you do not expect packet loss (e.g. working with reliable transport protocols like TCP)

§Encoder configuration

In order to enable encoder to embed redundancy data you must specify following configuration:

  • set_dred_duration - specify number of 10ms frames to embed within OPUS packets from the past

Following options should be considered:

  • set_inband_fec - should not be any value other than InbandFec::Off as it is OPUS’s default error correction mechanism which would be of no use when DRED is used
  • Application::Voip - might be a desirable setting for encoder to ensure speech quality is given priority

§Decoder configuration

There is no special configuration is necessary, but you must use special wrapper over standard Decoder provided by this module: Dred in order to decode data as regular decoder will not be able to make use of DRED data within frames

Structs§

Dred
OPUS DRED Decoder
DredPacket
Opus DRED packet state

Constants§

DRED_PACKET_SIZE
Opus DRED packet size (used to alloc memory)

Functions§

dred_packet_size
Retrieves OPUS DRED packet size as per libopus requirements