Index: webrtc/modules/audio_mixer/audio_mixer_impl.h |
diff --git a/webrtc/modules/audio_mixer/audio_mixer_impl.h b/webrtc/modules/audio_mixer/audio_mixer_impl.h |
index ecfcbfa621d1d2213c719a23cc1331d90237c0b8..5e2478072320700cb9b896c6b19c67b543ec9fdd 100644 |
--- a/webrtc/modules/audio_mixer/audio_mixer_impl.h |
+++ b/webrtc/modules/audio_mixer/audio_mixer_impl.h |
@@ -15,11 +15,13 @@ |
#include <memory> |
#include <vector> |
+#include "webrtc/base/gtest_prod_util.h" |
#include "webrtc/base/thread_annotations.h" |
#include "webrtc/base/thread_checker.h" |
#include "webrtc/engine_configurations.h" |
#include "webrtc/modules/audio_mixer/audio_mixer.h" |
#include "webrtc/modules/audio_mixer/audio_mixer_defines.h" |
+#include "webrtc/modules/audio_mixer/audio_source_with_mix_status.h" |
#include "webrtc/modules/audio_processing/include/audio_processing.h" |
#include "webrtc/modules/include/module_common_types.h" |
#include "webrtc/system_wrappers/include/critical_section_wrapper.h" |
@@ -28,14 +30,14 @@ |
namespace webrtc { |
typedef std::vector<AudioFrame*> AudioFrameList; |
-typedef std::vector<MixerAudioSource*> MixerAudioSourceList; |
+typedef std::vector<AudioSourceWithMixStatus> MixerAudioSourceList; |
aleloi
2016/10/04 13:37:17
Instead of storing lists of participant pointers,
|
class AudioMixerImpl : public AudioMixer { |
public: |
// AudioProcessing only accepts 10 ms frames. |
static const int kFrameDurationInMs = 10; |
- static std::unique_ptr<AudioMixer> Create(int id); |
+ static std::unique_ptr<AudioMixerImpl> Create(int id); |
aleloi
2016/10/04 13:37:16
In order to allow the tests to access an AudioMixe
ivoc
2016/10/04 20:39:29
Isn't this public already?
|
~AudioMixerImpl() override; |
@@ -51,6 +53,8 @@ class AudioMixerImpl : public AudioMixer { |
bool AnonymousMixabilityStatus( |
const MixerAudioSource& audio_source) const override; |
+ bool GetAudioSourceMixabilityStatus(MixerAudioSource* participant); |
+ |
aleloi
2016/10/04 13:37:16
Forgot to add a comment, see the next patch set.
|
private: |
AudioMixerImpl(int id, std::unique_ptr<AudioProcessing> limiter); |
@@ -61,11 +65,11 @@ class AudioMixerImpl : public AudioMixer { |
// Compute what audio sources to mix from audio_source_list_. Ramp |
// in and out. Update mixed status. Mixes up to |
// kMaximumAmountOfMixedAudioSources audio sources. |
- AudioFrameList GetNonAnonymousAudio() const EXCLUSIVE_LOCKS_REQUIRED(crit_); |
aleloi
2016/10/04 13:37:16
This function sets the mixed status of an AudioSou
|
+ AudioFrameList GetNonAnonymousAudio() EXCLUSIVE_LOCKS_REQUIRED(crit_); |
// Return the AudioFrames that should be mixed anonymously. Ramp in |
// and out. Update mixed status. |
- AudioFrameList GetAnonymousAudio() const EXCLUSIVE_LOCKS_REQUIRED(crit_); |
aleloi
2016/10/04 13:37:16
Same for this one.
|
+ AudioFrameList GetAnonymousAudio() EXCLUSIVE_LOCKS_REQUIRED(crit_); |
// This function returns true if it finds the MixerAudioSource in the |
// specified list of MixerAudioSources. |
@@ -86,6 +90,8 @@ class AudioMixerImpl : public AudioMixer { |
int GetOutputAudioLevelFullRange() override; |
+ AudioSourceWithMixStatus* GetSourceWithStatus(MixerAudioSource* audio_source); |
+ |
aleloi
2016/10/04 13:37:16
Comment added in next patch set.
|
rtc::CriticalSection crit_; |
const int32_t id_; |
@@ -117,6 +123,7 @@ class AudioMixerImpl : public AudioMixer { |
voe::AudioLevel audio_level_ ACCESS_ON(&thread_checker_); |
RTC_DISALLOW_COPY_AND_ASSIGN(AudioMixerImpl); |
+ FRIEND_TEST_ALL_PREFIXES(AudioMixerTest, Create); |
aleloi
2016/10/04 13:37:16
Alternatively, we could make ::Create public.
|
}; |
} // namespace webrtc |