WebRTC Automatic Gain Control
Automatic Gain Control or AGC as it relates to audio input is the system making adjustments on the input level of an audio source, such as a microphone or line input. To prevent excessive audio input and distortion, the AGC is supposed to adjust the input audio to a level that is loud enough, yet below the distortion threshold.
Web Real-Time Communication or WebRTC enables real-time communication capabilities directly within web browsers and mobile applications via JavaScript. It is used in applications like video conferencing and live streaming. It is implemented in examples like Google Voice on Google Chrome and Discord on Google Chrome. WebRTC relies on standard protocols and codecs.
Google Chrome uses WebRTC to enable real-time voice, video, and data communication directly without requiring any additional plugins or software. If and when it works correctly it is supposed to offer integration which provides users with seamless, high-quality communication experiences and developers with a robust platform for building interactive web applications.
A problem with WebRTC and AGC negatively impacts both Microsoft Windows and Linux users and Chrome in particular abuses WebRTC by denying the end user control over audio gain adjustments. The WebRTC implementation in Chromium has a forced on user feature called Automatic Gain Control with no option to disable. It often reduces gain to near mute level. Google won't allow users to disable the AGC in WebRTC for either Chromium or Chrome.
On the system the end user sets their microphone gain to the preferred level using a tool such as PulseAudio or ALSA. Then the user witnesses the mic gain level decreasing automatically, the visual indicator slider on the audio control application actually seems to move by itself. The problem is aggravated when the level is reduced to a point where the microphone sensitivity is far too low to be useful.