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

Issue 2557713006: Injectable output rate calculater for AudioMixer. (Closed)

Created:
4 years ago by aleloi
Modified:
4 years ago
Reviewers:
ivoc
CC:
webrtc-reviews_webrtc.org, tterriberry_mozilla.com, hlundin-webrtc
Target Ref:
refs/pending/heads/master
Project:
webrtc
Visibility:
Public.

Description

Injectable output rate calculater for AudioMixer. This CL breaks out the output sample rate calculation from webrtc::AudioMixerImpl. A new OutputRateCalculator interface is added to make the sample rate configurable. There are at least three reasons for this change: 1. The mixer will be used for an internal project, in which no resampling is done after the mixing. There the sample rate should be static. Currently, it can differ across mix iterations and depends on the number of audio sources. If there are no sources, the WebRTC mixer behavior is to produce silence at 48 kHz. 2. A planned change to WebRTC will make audio processing steps happen at constant sample rates. A configurable sample rate calculator will make the transition simpler for the mixer. 3. The current mixer design is a single large file. Behavior is not always simple to change (e.g. as in this case to mix at a constant rate), unrelated behavior can be broken, reusing the mixer in internal projects is tricky. Using DI for the sample rate calculation solves parts of these issues. Changes: The protected mixer c-tor now takes unique_ptr<OutputRateCalculator>. The current output rate calculation is moved to DefaultOutputRateCalculator. A new factory method AudioMixerImpl::CreateWithOutputRateCalculator is added. The old factory method passes the default rate calculator. BUG=webrtc:6346 Committed: https://crrev.com/623427c5228050fa158671430a2949202a0d7514 Cr-Commit-Position: refs/heads/master@{#15472}

Patch Set 1 : Include order, win compilation, comments. #

Total comments: 5

Patch Set 2 : Less code duplication: one factory method calls the more general. #

Patch Set 3 : stl instead of loop, renamed SetOutputFrequency. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+197 lines, -54 lines) Patch
M webrtc/modules/audio_mixer/BUILD.gn View 1 chunk +3 lines, -0 lines 0 comments Download
M webrtc/modules/audio_mixer/audio_mixer_impl.h View 1 2 4 chunks +9 lines, -4 lines 0 comments Download
M webrtc/modules/audio_mixer/audio_mixer_impl.cc View 1 2 5 chunks +44 lines, -50 lines 0 comments Download
M webrtc/modules/audio_mixer/audio_mixer_impl_unittest.cc View 1 2 3 chunks +38 lines, -0 lines 0 comments Download
A webrtc/modules/audio_mixer/default_output_rate_calculator.h View 1 chunk +35 lines, -0 lines 0 comments Download
A webrtc/modules/audio_mixer/default_output_rate_calculator.cc View 1 2 1 chunk +39 lines, -0 lines 0 comments Download
A webrtc/modules/audio_mixer/output_rate_calculator.h View 1 chunk +29 lines, -0 lines 0 comments Download

Messages

Total messages: 20 (14 generated)
aleloi
Hi, can you please take a look? https://codereview.webrtc.org/2557713006/diff/20001/webrtc/modules/audio_mixer/audio_mixer_impl.cc File webrtc/modules/audio_mixer/audio_mixer_impl.cc (left): https://codereview.webrtc.org/2557713006/diff/20001/webrtc/modules/audio_mixer/audio_mixer_impl.cc#oldcode227 webrtc/modules/audio_mixer/audio_mixer_impl.cc:227: } Moved ...
4 years ago (2016-12-07 13:44:18 UTC) #9
ivoc
LGTM, but please have a look at my comments below. https://codereview.webrtc.org/2557713006/diff/20001/webrtc/modules/audio_mixer/audio_mixer_impl.h File webrtc/modules/audio_mixer/audio_mixer_impl.h (right): https://codereview.webrtc.org/2557713006/diff/20001/webrtc/modules/audio_mixer/audio_mixer_impl.h#newcode74 ...
4 years ago (2016-12-08 10:09:47 UTC) #12
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.webrtc.org/2557713006/60001
4 years ago (2016-12-08 10:17:05 UTC) #15
aleloi
Thanks for the comments!
4 years ago (2016-12-08 10:17:14 UTC) #16
commit-bot: I haz the power
Committed patchset #3 (id:60001)
4 years ago (2016-12-08 10:38:01 UTC) #18
commit-bot: I haz the power
4 years ago (2016-12-08 10:38:13 UTC) #20
Message was sent while issue was closed.
Patchset 3 (id:??) landed as
https://crrev.com/623427c5228050fa158671430a2949202a0d7514
Cr-Commit-Position: refs/heads/master@{#15472}

Powered by Google App Engine
This is Rietveld 408576698