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

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

Issue 2298163002: Simplifications of the mixing algorithm. (Closed)
Patch Set: Rebase. Created 4 years, 3 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 | « no previous file | 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 66cf982242c1b0b03bbd6903ee1f197a05579065..864ecc2064cdeb771f97f9eb26f815c9cd529ed2 100644
--- a/webrtc/modules/audio_mixer/audio_mixer_impl.h
+++ b/webrtc/modules/audio_mixer/audio_mixer_impl.h
@@ -11,7 +11,6 @@
#ifndef WEBRTC_MODULES_AUDIO_MIXER_AUDIO_MIXER_IMPL_H_
#define WEBRTC_MODULES_AUDIO_MIXER_AUDIO_MIXER_IMPL_H_
-#include <list>
#include <map>
#include <memory>
#include <vector>
@@ -26,14 +25,8 @@ namespace webrtc {
class AudioProcessing;
class CriticalSectionWrapper;
-struct FrameAndMuteInfo {
- FrameAndMuteInfo(AudioFrame* f, bool m) : frame(f), muted(m) {}
- AudioFrame* frame;
- bool muted;
-};
-
-typedef std::list<FrameAndMuteInfo> AudioFrameList;
-typedef std::list<MixerAudioSource*> MixerAudioSourceList;
+typedef std::vector<AudioFrame*> AudioFrameList;
+typedef std::vector<MixerAudioSource*> MixerAudioSourceList;
// Cheshire cat implementation of MixerAudioSource's non virtual functions.
class NewMixHistory {
@@ -85,11 +78,10 @@ class AudioMixerImpl : public AudioMixer {
int32_t SetOutputFrequency(const Frequency& frequency);
Frequency OutputFrequency() const;
- // Compute what audio sources to mix from audio_source_list_. Ramp in
- // and out. Update mixed status. maxAudioFrameCounter specifies how
- // many participants are allowed to be mixed.
- AudioFrameList UpdateToMix(size_t maxAudioFrameCounter) const
- EXCLUSIVE_LOCKS_REQUIRED(crit_);
+ // 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_);
// Return the lowest mixing frequency that can be used without having to
// downsample any audio.
@@ -97,9 +89,9 @@ class AudioMixerImpl : public AudioMixer {
int32_t GetLowestMixingFrequencyFromList(
const MixerAudioSourceList& mixList) const;
- // Return the AudioFrames that should be mixed anonymously.
- void GetAdditionalAudio(AudioFrameList* additionalFramesList) const
- 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_);
// This function returns true if it finds the MixerAudioSource in the
// specified list of MixerAudioSources.
@@ -119,12 +111,6 @@ class AudioMixerImpl : public AudioMixer {
int32_t id,
bool use_limiter);
- // Mix the AudioFrames stored in audioFrameList into mixedAudio. No
- // record will be kept of this mix (e.g. the corresponding MixerAudioSources
- // will not be marked as IsMixed()
- int32_t MixAnonomouslyFromList(AudioFrame* mixedAudio,
- const AudioFrameList& audioFrameList) const;
-
bool LimitMixedAudio(AudioFrame* mixedAudio) const;
// Output level functions for VoEVolumeControl.
« no previous file with comments | « no previous file | webrtc/modules/audio_mixer/audio_mixer_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698