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

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

Issue 2750783004: Add mute state field to AudioFrame. (Closed)
Patch Set: Update new usages of AudioFrame::data_ Created 3 years, 6 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
Index: webrtc/modules/audio_mixer/frame_combiner.cc
diff --git a/webrtc/modules/audio_mixer/frame_combiner.cc b/webrtc/modules/audio_mixer/frame_combiner.cc
index 3a7f61812bd1b4b0caea50297489ab0020e45b26..7732c7cdcd4a0003a53aea732634ca4ec10c8aab 100644
--- a/webrtc/modules/audio_mixer/frame_combiner.cc
+++ b/webrtc/modules/audio_mixer/frame_combiner.cc
@@ -50,10 +50,11 @@ void CombineOneFrame(const AudioFrame* input_frame,
AudioFrame* audio_frame_for_mixing) {
audio_frame_for_mixing->timestamp_ = input_frame->timestamp_;
audio_frame_for_mixing->elapsed_time_ms_ = input_frame->elapsed_time_ms_;
- std::copy(input_frame->data_,
- input_frame->data_ +
+ // TODO(yujo): can we optimize muted frames?
+ std::copy(input_frame->data(),
+ input_frame->data() +
input_frame->num_channels_ * input_frame->samples_per_channel_,
- audio_frame_for_mixing->data_);
+ audio_frame_for_mixing->mutable_data());
if (use_limiter) {
AudioFrameOperations::ApplyHalfGain(audio_frame_for_mixing);
RTC_DCHECK(limiter);
@@ -95,6 +96,7 @@ void CombineMultipleFrames(
add_buffer.fill(0);
for (const auto& frame : input_frames) {
+ // TODO(yujo): skip this for muted frames.
std::transform(frame.begin(), frame.end(), add_buffer.begin(),
add_buffer.begin(), std::plus<int32_t>());
}
@@ -102,7 +104,7 @@ void CombineMultipleFrames(
if (use_limiter) {
// Halve all samples to avoid saturation before limiting.
std::transform(add_buffer.begin(), add_buffer.begin() + frame_length,
- audio_frame_for_mixing->data_, [](int32_t a) {
+ audio_frame_for_mixing->mutable_data(), [](int32_t a) {
return rtc::saturated_cast<int16_t>(a / 2);
});
@@ -127,7 +129,7 @@ void CombineMultipleFrames(
AudioFrameOperations::Add(*audio_frame_for_mixing, audio_frame_for_mixing);
} else {
std::transform(add_buffer.begin(), add_buffer.begin() + frame_length,
- audio_frame_for_mixing->data_,
+ audio_frame_for_mixing->mutable_data(),
[](int32_t a) { return rtc::saturated_cast<int16_t>(a); });
}
}
@@ -206,10 +208,11 @@ void FrameCombiner::Combine(const std::vector<AudioFrame*>& mix_list,
std::vector<rtc::ArrayView<const int16_t>> input_frames;
for (size_t i = 0; i < mix_list.size(); ++i) {
input_frames.push_back(rtc::ArrayView<const int16_t>(
- mix_list[i]->data_, samples_per_channel * number_of_channels));
+ mix_list[i]->data(), samples_per_channel * number_of_channels));
}
CombineMultipleFrames(input_frames, use_limiter_this_round, limiter_.get(),
audio_frame_for_mixing);
}
}
+
} // namespace webrtc
« no previous file with comments | « webrtc/modules/audio_mixer/audio_mixer_impl_unittest.cc ('k') | webrtc/modules/audio_mixer/frame_combiner_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698