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-Commit-Position: refs/heads/master@{#14973}
This commit is contained in:
parent
40532a1646
commit
81da488ab6
@ -36,6 +36,7 @@ rtc_source_set("call_api") {
|
||||
|
||||
deps = [
|
||||
# TODO(kjellander): Add remaining dependencies when webrtc:4243 is done.
|
||||
":audio_mixer_api",
|
||||
"..:webrtc_common",
|
||||
"../base:rtc_base_approved",
|
||||
"../modules/audio_coding:audio_encoder_interface",
|
||||
|
||||
@ -99,6 +99,7 @@
|
||||
'type': 'static_library',
|
||||
'dependencies': [
|
||||
# TODO(kjellander): Add remaining dependencies when webrtc:4243 is done.
|
||||
':audio_mixer_api',
|
||||
'<(webrtc_root)/base/base.gyp:rtc_base_approved',
|
||||
'<(webrtc_root)/common.gyp:webrtc_common',
|
||||
'<(webrtc_root)/modules/modules.gyp:audio_encoder_interface',
|
||||
|
||||
@ -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 @@ class AudioState : public rtc::RefCountInterface {
|
||||
// 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.
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user