| 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 43265a1341e2e7e709511927d2b84c90c6a43256..dd084af37156662c9c6c00b8a057e998ba539568 100644
|
| --- a/webrtc/modules/audio_mixer/audio_mixer_impl.cc
|
| +++ b/webrtc/modules/audio_mixer/audio_mixer_impl.cc
|
| @@ -64,15 +64,6 @@ class SourceFrame {
|
| uint32_t energy_ = 0;
|
| };
|
|
|
| -// Remixes a frame between stereo and mono.
|
| -void RemixFrame(AudioFrame* frame, size_t 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);
|
| - } else if (frame->num_channels_ == 2 && number_of_channels == 1) {
|
| - AudioFrameOperations::StereoToMono(frame);
|
| - }
|
| -}
|
|
|
| void Ramp(const std::vector<SourceFrame>& mixed_sources_and_frames) {
|
| for (const auto& source_frame : mixed_sources_and_frames) {
|
| @@ -131,7 +122,7 @@ int32_t MixFromList(AudioFrame* mixed_audio,
|
| }
|
|
|
| MixerAudioSourceList::const_iterator FindSourceInList(
|
| - MixerAudioSource const* audio_source,
|
| + AudioMixerImpl::Source const* audio_source,
|
| MixerAudioSourceList const* audio_source_list) {
|
| return std::find_if(audio_source_list->begin(), audio_source_list->end(),
|
| [audio_source](const AudioSourceWithMixStatus& p) {
|
| @@ -140,7 +131,7 @@ MixerAudioSourceList::const_iterator FindSourceInList(
|
| }
|
|
|
| MixerAudioSourceList::iterator FindSourceInList(
|
| - MixerAudioSource const* audio_source,
|
| + AudioMixerImpl::Source const* audio_source,
|
| MixerAudioSourceList* audio_source_list) {
|
| return std::find_if(audio_source_list->begin(), audio_source_list->end(),
|
| [audio_source](const AudioSourceWithMixStatus& p) {
|
| @@ -230,7 +221,7 @@ void AudioMixerImpl::Mix(int sample_rate,
|
| anonymous_mix_list.end());
|
|
|
| for (const auto& frame : mix_list) {
|
| - RemixFrame(frame, number_of_channels);
|
| + RemixFrame(number_of_channels, frame);
|
| }
|
|
|
| audio_frame_for_mixing->UpdateFrame(
|
| @@ -272,7 +263,7 @@ AudioMixer::Frequency AudioMixerImpl::OutputFrequency() const {
|
| return output_frequency_;
|
| }
|
|
|
| -int32_t AudioMixerImpl::SetMixabilityStatus(MixerAudioSource* audio_source,
|
| +int32_t AudioMixerImpl::SetMixabilityStatus(Source* audio_source,
|
| bool mixable) {
|
| if (!mixable) {
|
| // Anonymous audio sources are in a separate list. Make sure that the
|
| @@ -312,16 +303,14 @@ int32_t AudioMixerImpl::SetMixabilityStatus(MixerAudioSource* audio_source,
|
| return 0;
|
| }
|
|
|
| -bool AudioMixerImpl::MixabilityStatus(
|
| - const MixerAudioSource& audio_source) const {
|
| +bool AudioMixerImpl::MixabilityStatus(const Source& audio_source) const {
|
| rtc::CritScope lock(&crit_);
|
| return FindSourceInList(&audio_source, &audio_source_list_) !=
|
| audio_source_list_.end();
|
| }
|
|
|
| -int32_t AudioMixerImpl::SetAnonymousMixabilityStatus(
|
| - MixerAudioSource* audio_source,
|
| - bool anonymous) {
|
| +int32_t AudioMixerImpl::SetAnonymousMixabilityStatus(Source* audio_source,
|
| + bool anonymous) {
|
| rtc::CritScope lock(&crit_);
|
| if (FindSourceInList(audio_source, &additional_audio_source_list_) !=
|
| additional_audio_source_list_.end()) {
|
| @@ -356,7 +345,7 @@ int32_t AudioMixerImpl::SetAnonymousMixabilityStatus(
|
| }
|
|
|
| bool AudioMixerImpl::AnonymousMixabilityStatus(
|
| - const MixerAudioSource& audio_source) const {
|
| + const Source& audio_source) const {
|
| rtc::CritScope lock(&crit_);
|
| return FindSourceInList(&audio_source, &additional_audio_source_list_) !=
|
| additional_audio_source_list_.end();
|
| @@ -373,20 +362,20 @@ AudioFrameList AudioMixerImpl::GetNonAnonymousAudio() {
|
| // Get audio source audio and put it in the struct vector.
|
| for (auto& source_and_status : audio_source_list_) {
|
| auto audio_frame_with_info =
|
| - source_and_status.audio_source()->GetAudioFrameWithMuted(
|
| + source_and_status.audio_source()->GetAudioFrameWithInfo(
|
| id_, static_cast<int>(OutputFrequency()));
|
|
|
| const auto audio_frame_info = audio_frame_with_info.audio_frame_info;
|
| AudioFrame* audio_source_audio_frame = audio_frame_with_info.audio_frame;
|
|
|
| - if (audio_frame_info == MixerAudioSource::AudioFrameInfo::kError) {
|
| + if (audio_frame_info == Source::AudioFrameInfo::kError) {
|
| WEBRTC_TRACE(kTraceWarning, kTraceAudioMixerServer, id_,
|
| "failed to GetAudioFrameWithMuted() from source");
|
| continue;
|
| }
|
| audio_source_mixing_data_list.emplace_back(
|
| &source_and_status, audio_source_audio_frame,
|
| - audio_frame_info == MixerAudioSource::AudioFrameInfo::kMuted);
|
| + audio_frame_info == Source::AudioFrameInfo::kMuted);
|
| }
|
|
|
| // Sort frames by sorting function.
|
| @@ -426,16 +415,16 @@ AudioFrameList AudioMixerImpl::GetAnonymousAudio() {
|
| AudioFrameList result;
|
| for (auto& source_and_status : additional_audio_source_list_) {
|
| const auto audio_frame_with_info =
|
| - source_and_status.audio_source()->GetAudioFrameWithMuted(
|
| + source_and_status.audio_source()->GetAudioFrameWithInfo(
|
| id_, OutputFrequency());
|
| const auto ret = audio_frame_with_info.audio_frame_info;
|
| AudioFrame* audio_frame = audio_frame_with_info.audio_frame;
|
| - if (ret == MixerAudioSource::AudioFrameInfo::kError) {
|
| + if (ret == Source::AudioFrameInfo::kError) {
|
| WEBRTC_TRACE(kTraceWarning, kTraceAudioMixerServer, id_,
|
| "failed to GetAudioFrameWithMuted() from audio_source");
|
| continue;
|
| }
|
| - if (ret != MixerAudioSource::AudioFrameInfo::kMuted) {
|
| + if (ret != Source::AudioFrameInfo::kMuted) {
|
| result.push_back(audio_frame);
|
| ramp_list.emplace_back(&source_and_status, audio_frame, false, 0);
|
| source_and_status.SetIsMixed(true);
|
| @@ -446,7 +435,7 @@ AudioFrameList AudioMixerImpl::GetAnonymousAudio() {
|
| }
|
|
|
| bool AudioMixerImpl::AddAudioSourceToList(
|
| - MixerAudioSource* audio_source,
|
| + Source* audio_source,
|
| MixerAudioSourceList* audio_source_list) const {
|
| WEBRTC_TRACE(kTraceStream, kTraceAudioMixerServer, id_,
|
| "AddAudioSourceToList(audio_source, audio_source_list)");
|
| @@ -455,7 +444,7 @@ bool AudioMixerImpl::AddAudioSourceToList(
|
| }
|
|
|
| bool AudioMixerImpl::RemoveAudioSourceFromList(
|
| - MixerAudioSource* audio_source,
|
| + Source* audio_source,
|
| MixerAudioSourceList* audio_source_list) const {
|
| WEBRTC_TRACE(kTraceStream, kTraceAudioMixerServer, id_,
|
| "RemoveAudioSourceFromList(audio_source, audio_source_list)");
|
| @@ -515,7 +504,7 @@ int AudioMixerImpl::GetOutputAudioLevelFullRange() {
|
| }
|
|
|
| bool AudioMixerImpl::GetAudioSourceMixabilityStatusForTest(
|
| - MixerAudioSource* audio_source) {
|
| + AudioMixerImpl::Source* audio_source) {
|
| RTC_DCHECK_RUN_ON(&thread_checker_);
|
| rtc::CritScope lock(&crit_);
|
|
|
|
|