webrtc/modules/audio_coding/g3doc/index.md
Tony Herre b0ed12099f Update links to point at main branch
As part of go/coil update code search links to not point to the
"master" branch.

Bug: chromium:1226942
Change-Id: I0ae9e84ecc660f789a69fe0b226f93bbc39a8a66
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/226081
Commit-Queue: Tony Herre <toprice@chromium.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34531}
2021-07-22 16:41:26 +00:00

2.5 KiB

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().