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

Issue 11410012: Collapse AudioRendererMixer and OnMoreDataResampler into AudioTransform. (Closed)

Created:
8 years, 1 month ago by DaleCurtis
Modified:
8 years, 1 month ago
CC:
chromium-reviews, feature-media-reviews_chromium.org, justinlin
Visibility:
Public.

Description

Collapse AudioRendererMixer and OnMoreDataResampler into AudioTransform. Currently we have roughly equivalent functionality in two places, and the CloudView project will add a third. As such there's a need for a single super class which can handle mixing, resampling, and general conversion from one set of AudioParameters to another. This change introduces the AudioTransform object which collapses the key functionality from AudioRendererMixer and OnMoreDataResampler into a single AudioTransform class which can do everything and is oblivious to the peculiars of RenderCallback vs AudioSourceCallback. It also introduces output_frames_ready() methods to the AudioPullFifo and MultiChannelResampler classes so that buffer delay can be measured accurately without resorting to input vs output byte counting. Due to the bulk of AudioRendererMixer's functionality moving into the new AudioTransform, it made sense to move some decisions into the AudioRendererMixerInput class as well. On my Z600, benchmarking 50000 iterations: Convert() w/ FIFO took 7030.11ms. Convert() w/o FIFO took 5218.83ms. BUG=none TEST=AudioTransform* unittests. TBR=sergeyu Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=168976

Patch Set 1 : Baseline. #

Patch Set 2 : First draft. #

Total comments: 55

Patch Set 3 : Comments. Binding. Optional FIFO. #

Total comments: 12

Patch Set 4 : Rename. Comments. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+861 lines, -432 lines) Patch
M media/audio/audio_output_resampler.h View 1 2 3 2 chunks +10 lines, -21 lines 0 comments Download
M media/audio/audio_output_resampler.cc View 1 2 3 10 chunks +70 lines, -215 lines 0 comments Download
A media/base/audio_converter.h View 1 2 3 1 chunk +108 lines, -0 lines 0 comments Download
A media/base/audio_converter.cc View 1 2 3 1 chunk +213 lines, -0 lines 0 comments Download
A media/base/audio_converter_unittest.cc View 1 2 3 1 chunk +286 lines, -0 lines 0 comments Download
M media/base/audio_pull_fifo.h View 1 2 1 chunk +3 lines, -2 lines 0 comments Download
M media/base/audio_pull_fifo.cc View 1 2 1 chunk +1 line, -1 line 0 comments Download
M media/base/audio_pull_fifo_unittest.cc View 1 2 3 chunks +8 lines, -2 lines 0 comments Download
M media/base/audio_renderer_mixer.h View 1 2 3 2 chunks +6 lines, -23 lines 0 comments Download
M media/base/audio_renderer_mixer.cc View 1 2 4 chunks +10 lines, -81 lines 0 comments Download
M media/base/audio_renderer_mixer_input.h View 1 2 3 5 chunks +19 lines, -5 lines 0 comments Download
M media/base/audio_renderer_mixer_input.cc View 1 2 2 chunks +23 lines, -3 lines 0 comments Download
M media/base/audio_renderer_mixer_input_unittest.cc View 1 2 4 chunks +26 lines, -18 lines 0 comments Download
M media/base/audio_renderer_mixer_unittest.cc View 1 5 chunks +13 lines, -39 lines 0 comments Download
M media/base/fake_audio_render_callback.h View 1 2 3 4 chunks +15 lines, -2 lines 0 comments Download
M media/base/fake_audio_render_callback.cc View 1 2 2 chunks +10 lines, -3 lines 0 comments Download
M media/base/multi_channel_resampler.h View 1 2 2 chunks +9 lines, -2 lines 0 comments Download
M media/base/multi_channel_resampler.cc View 1 2 4 chunks +8 lines, -7 lines 0 comments Download
M media/base/multi_channel_resampler_unittest.cc View 1 2 4 chunks +16 lines, -6 lines 0 comments Download
M media/media.gyp View 1 2 3 2 chunks +3 lines, -0 lines 0 comments Download
M remoting/codec/audio_encoder_opus.h View 1 2 1 chunk +2 lines, -1 line 0 comments Download
M remoting/codec/audio_encoder_opus.cc View 1 2 1 chunk +2 lines, -1 line 0 comments Download

Messages

Total messages: 20 (0 generated)
DaleCurtis
crogers, scherkus: Please review. For ease of review the first patch set is a copy ...
8 years, 1 month ago (2012-11-10 05:23:22 UTC) #1
DaleCurtis
Some thoughts I had over the weekend: http://codereview.chromium.org/11410012/diff/1004/media/base/audio_renderer_mixer_unittest.cc File media/base/audio_renderer_mixer_unittest.cc (right): http://codereview.chromium.org/11410012/diff/1004/media/base/audio_renderer_mixer_unittest.cc#newcode75 media/base/audio_renderer_mixer_unittest.cc:75: void InitializeInputs(int ...
8 years, 1 month ago (2012-11-12 20:15:23 UTC) #2
justinlin
http://codereview.chromium.org/11410012/diff/1004/media/base/audio_transform.h File media/base/audio_transform.h (right): http://codereview.chromium.org/11410012/diff/1004/media/base/audio_transform.h#newcode52 media/base/audio_transform.h:52: void AddInput(AudioTransformInput* input); Purely from an interface point of ...
8 years, 1 month ago (2012-11-12 20:29:38 UTC) #3
DaleCurtis
http://codereview.chromium.org/11410012/diff/1004/media/base/audio_transform.h File media/base/audio_transform.h (right): http://codereview.chromium.org/11410012/diff/1004/media/base/audio_transform.h#newcode52 media/base/audio_transform.h:52: void AddInput(AudioTransformInput* input); On 2012/11/12 20:29:38, justinlin wrote: > ...
8 years, 1 month ago (2012-11-12 20:48:18 UTC) #4
miu
You didn't ask, but here's my two cents. ;-) -Yuri https://codereview.chromium.org/11410012/diff/1004/media/audio/audio_output_resampler.cc File media/audio/audio_output_resampler.cc (right): https://codereview.chromium.org/11410012/diff/1004/media/audio/audio_output_resampler.cc#newcode69 ...
8 years, 1 month ago (2012-11-12 20:51:59 UTC) #5
DaleCurtis
http://codereview.chromium.org/11410012/diff/1004/media/base/audio_renderer_mixer_input.cc File media/base/audio_renderer_mixer_input.cc (right): http://codereview.chromium.org/11410012/diff/1004/media/base/audio_renderer_mixer_input.cc#newcode22 media/base/audio_renderer_mixer_input.cc:22: current_audio_delay_milliseconds_(0) { On 2012/11/12 20:51:59, Yuri wrote: > This ...
8 years, 1 month ago (2012-11-12 21:23:53 UTC) #6
scherkus (not reviewing)
neato -- few q's https://codereview.chromium.org/11410012/diff/1004/media/base/audio_pull_fifo.cc File media/base/audio_pull_fifo.cc (right): https://codereview.chromium.org/11410012/diff/1004/media/base/audio_pull_fifo.cc#newcode36 media/base/audio_pull_fifo.cc:36: output_frames_ready_ = write_pos; do we ...
8 years, 1 month ago (2012-11-14 22:43:50 UTC) #7
Chris Rogers
Dale, this looks really great overall - very nice cleanup! https://codereview.chromium.org/11410012/diff/1004/media/audio/audio_output_resampler.cc File media/audio/audio_output_resampler.cc (right): https://codereview.chromium.org/11410012/diff/1004/media/audio/audio_output_resampler.cc#newcode50 ...
8 years, 1 month ago (2012-11-14 23:50:49 UTC) #8
DaleCurtis
(Just comments, next patch set later) https://codereview.chromium.org/11410012/diff/1004/media/audio/audio_output_resampler.cc File media/audio/audio_output_resampler.cc (right): https://codereview.chromium.org/11410012/diff/1004/media/audio/audio_output_resampler.cc#newcode238 media/audio/audio_output_resampler.cc:238: // the OnMoreDataTransform::ProvideInput_Locked() ...
8 years, 1 month ago (2012-11-15 00:30:59 UTC) #9
DaleCurtis
PTAL. Added benchmark + numbers. We could squeeze ~4% more out by: 1. Writing directly ...
8 years, 1 month ago (2012-11-16 23:51:04 UTC) #10
scherkus (not reviewing)
https://codereview.chromium.org/11410012/diff/1004/media/base/audio_renderer_mixer.h File media/base/audio_renderer_mixer.h (right): https://codereview.chromium.org/11410012/diff/1004/media/base/audio_renderer_mixer.h#newcode43 media/base/audio_renderer_mixer.h:43: typedef std::list< scoped_refptr<AudioRendererMixerInput> > On 2012/11/16 23:51:05, DaleCurtis wrote: ...
8 years, 1 month ago (2012-11-17 01:04:37 UTC) #11
scherkus (not reviewing)
don't forget to rename files
8 years, 1 month ago (2012-11-17 01:06:05 UTC) #12
DaleCurtis
https://codereview.chromium.org/11410012/diff/18001/media/audio/audio_output_resampler.cc File media/audio/audio_output_resampler.cc (right): https://codereview.chromium.org/11410012/diff/18001/media/audio/audio_output_resampler.cc#newcode281 media/audio/audio_output_resampler.cc:281: audio_converter_(input_params, output_params, false) { On 2012/11/17 01:04:37, scherkus wrote: ...
8 years, 1 month ago (2012-11-17 01:07:14 UTC) #13
scherkus (not reviewing)
lgtm assuming you rename files https://codereview.chromium.org/11410012/diff/18001/media/base/audio_transform_unittest.cc File media/base/audio_transform_unittest.cc (right): https://codereview.chromium.org/11410012/diff/18001/media/base/audio_transform_unittest.cc#newcode210 media/base/audio_transform_unittest.cc:210: TEST(AudioConverterTest, ConvertBenchmark) { On ...
8 years, 1 month ago (2012-11-20 00:51:10 UTC) #14
DaleCurtis
Chris, any last comments? Yuri, did you want to review?
8 years, 1 month ago (2012-11-20 00:52:55 UTC) #15
miu
lgtm Thanks for doing this so quickly. It really moves us forward a lot (to ...
8 years, 1 month ago (2012-11-20 00:58:01 UTC) #16
Chris Rogers
lgtm if nits are addressed. Don't forget to rename audio_transform -> audio_converter :) https://codereview.chromium.org/11410012/diff/18001/media/audio/audio_output_resampler.cc File ...
8 years, 1 month ago (2012-11-20 20:01:24 UTC) #17
DaleCurtis
Thanks for review guys. Rename completed. TBR=sergeyu for remoting/ function prototype update. https://codereview.chromium.org/11410012/diff/18001/media/audio/audio_output_resampler.cc File media/audio/audio_output_resampler.cc ...
8 years, 1 month ago (2012-11-21 00:33:30 UTC) #18
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/dalecurtis@chromium.org/11410012/27001
8 years, 1 month ago (2012-11-21 00:34:27 UTC) #19
commit-bot: I haz the power
8 years, 1 month ago (2012-11-21 04:24:21 UTC) #20
Change committed as 168976

Powered by Google App Engine
This is Rietveld 408576698