Added audio mixer and removed audio device module in AudioState::Config.
The audio_device_module field was currently unused. The audio_mixer
field is going to be used to pass an AudioMixer to AudioState.
In the hopefully-not-very-far future, the toplevel WebRTC API will allow passing
a custom AudioMixer, e.g. for spatialized audio (audio in space). If no
mixer is passed, a default mixer is created (the one in modules/audio_mixer).
The only object which will have a permanent reference to the mixer is AudioState.
AudioState is created in WebRTCVoiceEngine with a configuration object,
which already contains a VoiceEngine pointer. In this CL, we extend this
config object with a mixer pointer.
In summary: in an upcoming CL, a mixer will be either created in or passed to
WebRTCVoiceEngine. This mixer will be passed to the ctor of AudioState in a
config struct.
BUG=webrtc:6346
NOTRY=True
Review-Url: https://codereview.webrtc.org/2456363002
Cr-Original-Commit-Position: refs/heads/master@{#14973}
Cr-Mirrored-From: https://chromium.googlesource.com/external/webrtc
Cr-Mirrored-Commit: 81da488ab6c9c79e4a74e29d18c574285312241f
diff --git a/api/call/audio_state.h b/api/call/audio_state.h
index ac91277..1941cbf 100644
--- a/api/call/audio_state.h
+++ b/api/call/audio_state.h
@@ -10,6 +10,7 @@
#ifndef WEBRTC_API_CALL_AUDIO_STATE_H_
#define WEBRTC_API_CALL_AUDIO_STATE_H_
+#include "webrtc/api/audio/audio_mixer.h"
#include "webrtc/base/refcount.h"
#include "webrtc/base/scoped_ref_ptr.h"
@@ -33,8 +34,9 @@
// the AudioState itself.
VoiceEngine* voice_engine = nullptr;
- // The AudioDeviceModule associated with the Calls.
- AudioDeviceModule* audio_device_module = nullptr;
+ // The audio mixer connected to active receive streams. One per
+ // AudioState.
+ rtc::scoped_refptr<AudioMixer> audio_mixer;
};
// TODO(solenberg): Replace scoped_refptr with shared_ptr once we can use it.