// Copyright 2016 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef REMOTING_PROTOCOL_WEBRTC_AUDIO_MODULE_H_ #define REMOTING_PROTOCOL_WEBRTC_AUDIO_MODULE_H_ #include "base/memory/raw_ptr.h" #include "base/memory/scoped_refptr.h" #include "base/synchronization/lock.h" #include "third_party/webrtc/modules/audio_device/include/audio_device.h" namespace base { class RepeatingTimer; class SingleThreadTaskRunner; } // namespace base namespace remoting::protocol { // Audio module passed to WebRTC. It doesn't access actual audio devices, but it // provides all functionality we need to ensure that audio streaming works // properly in WebRTC. Particularly it's responsible for calling AudioTransport // on regular intervals when playback is active. This ensures that all incoming // audio data is processed and passed to webrtc::AudioTrackSinkInterface // connected to the audio track. class WebrtcAudioModule : public webrtc::AudioDeviceModule { … }; } // namespace remoting::protocol #endif // REMOTING_PROTOCOL_WEBRTC_AUDIO_MODULE_H_