Bug: b/258408932 Change-Id: Ib96f39fe0c3912f9746bcc09d079097a145d6115 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/290987 Reviewed-by: Harald Alvestrand <hta@webrtc.org> Commit-Queue: Artem Titov <titovartem@webrtc.org> Cr-Commit-Position: refs/heads/main@{#39205}
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 thecodecsfolder. 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 callingPlayoutData10Ms().