Chromium Code Reviews

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

Issue 2302483002: Style changes in Audio Mixer (Closed)
Patch Set: Removed size_t everywhere in favor of int. Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Index: webrtc/modules/audio_mixer/audio_mixer_impl.cc
diff --git a/webrtc/modules/audio_mixer/audio_mixer_impl.cc b/webrtc/modules/audio_mixer/audio_mixer_impl.cc
index 82932f40955d4e1d96bf1ae4fd24bc863a343763..b5d1782cad4d764f163550a7a3599167a37bada4 100644
--- a/webrtc/modules/audio_mixer/audio_mixer_impl.cc
+++ b/webrtc/modules/audio_mixer/audio_mixer_impl.cc
@@ -13,12 +13,8 @@
#include <algorithm>
#include <functional>
-#include "webrtc/base/thread_annotations.h"
#include "webrtc/modules/audio_mixer/audio_frame_manipulator.h"
-#include "webrtc/modules/audio_mixer/audio_mixer_defines.h"
-#include "webrtc/modules/audio_processing/include/audio_processing.h"
#include "webrtc/modules/utility/include/audio_frame_operations.h"
-#include "webrtc/system_wrappers/include/critical_section_wrapper.h"
#include "webrtc/system_wrappers/include/trace.h"
namespace webrtc {
@@ -71,7 +67,7 @@ class SourceFrame {
};
// Remixes a frame between stereo and mono.
-void RemixFrame(AudioFrame* frame, size_t number_of_channels) {
+void RemixFrame(AudioFrame* frame, int number_of_channels) {
RTC_DCHECK(number_of_channels == 1 || number_of_channels == 2);
if (frame->num_channels_ == 1 && number_of_channels == 2) {
AudioFrameOperations::MonoToStereo(frame);
@@ -95,46 +91,54 @@ void Ramp(const std::vector<SourceFrame>& mixed_sources_and_frames) {
}
}
-} // namespace
-
-MixerAudioSource::MixerAudioSource() : mix_history_(new NewMixHistory()) {}
-
-MixerAudioSource::~MixerAudioSource() {
- delete mix_history_;
-}
-
-bool MixerAudioSource::IsMixed() const {
- return mix_history_->IsMixed();
-}
-
-NewMixHistory::NewMixHistory() : is_mixed_(0) {}
-
-NewMixHistory::~NewMixHistory() {}
+// Mix the AudioFrames stored in audioFrameList into mixed_audio.
+int32_t MixFromList(AudioFrame* mixed_audio,
+ const AudioFrameList& audio_frame_list,
+ int32_t id,
+ bool use_limiter) {
+ WEBRTC_TRACE(kTraceStream, kTraceAudioMixerServer, id,
+ "MixFromList(mixed_audio, audio_frame_list)");
+ if (audio_frame_list.empty())
+ return 0;
-bool NewMixHistory::IsMixed() const {
- return is_mixed_;
-}
+ if (audio_frame_list.size() == 1) {
+ mixed_audio->timestamp_ = audio_frame_list.front()->timestamp_;
+ mixed_audio->elapsed_time_ms_ = audio_frame_list.front()->elapsed_time_ms_;
+ } else {
+ // TODO(wu): Issue 3390.
+ // Audio frame timestamp is only supported in one channel case.
+ mixed_audio->timestamp_ = 0;
+ mixed_audio->elapsed_time_ms_ = -1;
+ }
-bool NewMixHistory::WasMixed() const {
- // Was mixed is the same as is mixed depending on perspective. This function
- // is for the perspective of NewAudioConferenceMixerImpl.
- return IsMixed();
-}
+ for (const auto& frame : audio_frame_list) {
+ RTC_DCHECK_EQ(mixed_audio->sample_rate_hz_, frame->sample_rate_hz_);
+ RTC_DCHECK_EQ(
+ frame->samples_per_channel_,
+ static_cast<size_t>((mixed_audio->sample_rate_hz_ *
+ webrtc::AudioMixerImpl::kFrameDurationInMs) /
+ 1000));
-int32_t NewMixHistory::SetIsMixed(const bool mixed) {
- is_mixed_ = mixed;
+ // Mix |f.frame| into |mixed_audio|, with saturation protection.
+ // These effect is applied to |f.frame| itself prior to mixing.
+ if (use_limiter) {
+ // Divide by two to avoid saturation in the mixing.
+ // This is only meaningful if the limiter will be used.
+ *frame >>= 1;
+ }
+ RTC_DCHECK_EQ(frame->num_channels_, mixed_audio->num_channels_);
+ *mixed_audio += *frame;
+ }
return 0;
}
-void NewMixHistory::ResetMixedStatus() {
- is_mixed_ = false;
-}
+} // namespace
std::unique_ptr<AudioMixer> AudioMixer::Create(int id) {
AudioMixerImpl* mixer = new AudioMixerImpl(id);
ossu 2016/09/01 15:42:50 This is a bit strange. Not sure it's 100% related
aleloi 2016/09/02 11:52:34 Changed in upstream CL.
if (!mixer->Init()) {
delete mixer;
- return NULL;
+ return std::unique_ptr<AudioMixer>(nullptr);
}
return std::unique_ptr<AudioMixer>(mixer);
}
@@ -191,7 +195,7 @@ bool AudioMixerImpl::Init() {
}
void AudioMixerImpl::Mix(int sample_rate,
- size_t number_of_channels,
+ int number_of_channels,
AudioFrame* audio_frame_for_mixing) {
RTC_DCHECK(number_of_channels == 1 || number_of_channels == 2);
RTC_DCHECK_RUN_ON(&thread_checker_);
@@ -215,7 +219,7 @@ void AudioMixerImpl::Mix(int sample_rate,
CriticalSectionScoped cs(crit_.get());
mix_list = GetNonAnonymousAudio();
anonymous_mix_list = GetAnonymousAudio();
- num_mixed_audio_sources = static_cast<int>(num_mixed_audio_sources_);
+ num_mixed_audio_sources = num_mixed_audio_sources_;
}
mix_list.insert(mix_list.begin(), anonymous_mix_list.begin(),
@@ -254,8 +258,7 @@ void AudioMixerImpl::Mix(int sample_rate,
int32_t AudioMixerImpl::SetOutputFrequency(const Frequency& frequency) {
RTC_DCHECK_RUN_ON(&thread_checker_);
output_frequency_ = frequency;
- sample_size_ =
- static_cast<size_t>((output_frequency_ * kFrameDurationInMs) / 1000);
+ sample_size_ = (output_frequency_ * kFrameDurationInMs) / 1000;
return 0;
}
@@ -295,12 +298,13 @@ int32_t AudioMixerImpl::SetMixabilityStatus(MixerAudioSource* audio_source,
return -1;
}
- size_t num_mixed_non_anonymous = audio_source_list_.size();
+ int num_mixed_non_anonymous = static_cast<int>(audio_source_list_.size());
ossu 2016/09/01 15:42:50 Why not just keep this as size_t? According to the
aleloi 2016/09/02 11:52:34 Thanks! I didn't read it carefully enough. Changin
if (num_mixed_non_anonymous > kMaximumAmountOfMixedAudioSources) {
num_mixed_non_anonymous = kMaximumAmountOfMixedAudioSources;
}
num_mixed_audio_sources_ =
- num_mixed_non_anonymous + additional_audio_source_list_.size();
+ num_mixed_non_anonymous +
+ static_cast<int>(additional_audio_source_list_.size());
}
return 0;
}
@@ -482,45 +486,6 @@ bool AudioMixerImpl::RemoveAudioSourceFromList(
}
}
-int32_t AudioMixerImpl::MixFromList(AudioFrame* mixed_audio,
- const AudioFrameList& audio_frame_list,
- int32_t id,
- bool use_limiter) {
- WEBRTC_TRACE(kTraceStream, kTraceAudioMixerServer, id,
- "MixFromList(mixed_audio, audio_frame_list)");
- if (audio_frame_list.empty())
- return 0;
-
- if (audio_frame_list.size() == 1) {
- mixed_audio->timestamp_ = audio_frame_list.front()->timestamp_;
- mixed_audio->elapsed_time_ms_ = audio_frame_list.front()->elapsed_time_ms_;
- } else {
- // TODO(wu): Issue 3390.
- // Audio frame timestamp is only supported in one channel case.
- mixed_audio->timestamp_ = 0;
- mixed_audio->elapsed_time_ms_ = -1;
- }
-
- for (const auto& frame : audio_frame_list) {
- RTC_DCHECK_EQ(mixed_audio->sample_rate_hz_, frame->sample_rate_hz_);
- RTC_DCHECK_EQ(
- frame->samples_per_channel_,
- static_cast<size_t>(
- (mixed_audio->sample_rate_hz_ * kFrameDurationInMs) / 1000));
-
- // Mix |f.frame| into |mixed_audio|, with saturation protection.
- // These effect is applied to |f.frame| itself prior to mixing.
- if (use_limiter) {
- // Divide by two to avoid saturation in the mixing.
- // This is only meaningful if the limiter will be used.
- *frame >>= 1;
- }
- RTC_DCHECK_EQ(frame->num_channels_, mixed_audio->num_channels_);
- *mixed_audio += *frame;
- }
- return 0;
-}
-
bool AudioMixerImpl::LimitMixedAudio(AudioFrame* mixed_audio) const {
RTC_DCHECK_RUN_ON(&thread_checker_);
if (!use_limiter_) {

Powered by Google App Engine