Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(805)

Unified Diff: webrtc/modules/audio_mixer/audio_mixer_impl.h

Issue 2408683002: Cleanup of the mixer interface. (Closed)
Patch Set: Added clarifying comments for adding/removing sources and threading aspects of the interface. Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/modules/audio_mixer/audio_mixer.h ('k') | webrtc/modules/audio_mixer/audio_mixer_impl.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 9048775460f72c836bbcf382bf5feaf291a8490d..87541ee6425378449ef5a1855119cb4e6152fcbd 100644
--- a/webrtc/modules/audio_mixer/audio_mixer_impl.h
+++ b/webrtc/modules/audio_mixer/audio_mixer_impl.h
@@ -14,6 +14,7 @@
#include <memory>
#include <vector>
+#include "webrtc/base/scoped_ref_ptr.h"
#include "webrtc/base/thread_annotations.h"
#include "webrtc/base/thread_checker.h"
#include "webrtc/modules/audio_mixer/audio_mixer.h"
@@ -41,15 +42,18 @@ class AudioMixerImpl : public AudioMixer {
// AudioProcessing only accepts 10 ms frames.
static const int kFrameDurationInMs = 10;
+ static const int kMaximumAmountOfMixedAudioSources = 3;
static const int kDefaultFrequency = 48000;
- static std::unique_ptr<AudioMixerImpl> Create();
+ static rtc::scoped_refptr<AudioMixerImpl> Create();
~AudioMixerImpl() override;
// AudioMixer functions
- int32_t SetMixabilityStatus(Source* audio_source, bool mixable) override;
- void Mix(int sample_rate,
+ bool AddSource(Source* audio_source) override;
+ bool RemoveSource(Source* audio_source) override;
+
+ void Mix(int sample_rate_hz,
size_t number_of_channels,
AudioFrame* audio_frame_for_mixing) override;
@@ -58,9 +62,10 @@ class AudioMixerImpl : public AudioMixer {
// mixer.
bool GetAudioSourceMixabilityStatusForTest(Source* audio_source) const;
- private:
+ protected:
explicit AudioMixerImpl(std::unique_ptr<AudioProcessing> limiter);
+ private:
// Set/get mix frequency
void SetOutputFrequency(int frequency);
int OutputFrequency() const;
@@ -68,8 +73,7 @@ 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() EXCLUSIVE_LOCKS_REQUIRED(crit_);
-
+ AudioFrameList GetAudioFromSources() EXCLUSIVE_LOCKS_REQUIRED(crit_);
// Add/remove the MixerAudioSource to the specified
// MixerAudioSource list.
@@ -90,7 +94,6 @@ class AudioMixerImpl : public AudioMixer {
// List of all audio sources. Note all lists are disjunct
SourceStatusList audio_source_list_ GUARDED_BY(crit_); // May be mixed.
- size_t num_mixed_audio_sources_ GUARDED_BY(crit_);
// Determines if we will use a limiter for clipping protection during
// mixing.
bool use_limiter_ ACCESS_ON(&thread_checker_);
« no previous file with comments | « webrtc/modules/audio_mixer/audio_mixer.h ('k') | webrtc/modules/audio_mixer/audio_mixer_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698