The WebRTC Audio Coding Module

WebRTC audio coding module can handle both audio sending and receiving. Folder acm2 contains implementations of the APIs.

  • Audio Sending Audio frames, each of which should always contain 10 ms worth of data, are provided to the audio coding module through Add10MsData(). The audio coding module uses a provided audio encoder to encoded audio frames and deliver the data to a pre-registered audio packetization callback, which is supposed to wrap the encoded audio into RTP packets and send them over a transport. Built-in audio codecs are included the codecs folder. The audio network adaptor provides an add-on functionality to an audio encoder (currently limited to Opus) to make the audio encoder adaptive to network conditions (bandwidth, packet loss rate, etc).

  • Audio Receiving Audio packets are provided to the audio coding module through IncomingPacket(), and are processed by an audio jitter buffer (NetEq), which includes decoding of the packets. Audio decoders are provided by an audio decoder factory. Decoded audio samples should be queried by calling PlayoutData10Ms().