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

Issue 10824304: Upgrade AudioBus to support wrapping, interleaving. (Closed)

Created:
8 years, 4 months ago by DaleCurtis
Modified:
8 years, 4 months ago
CC:
chromium-reviews, feature-media-reviews_chromium.org, Chris Rogers
Visibility:
Public.

Description

Upgrade AudioBus to support wrapping, interleaving. Introduces AudioBus::WrapMemory(...) for constructing an AudioBus object via an existing block of memory. Introduces AudioBus::CalculateMemorySize(...) for sizing the shared memory without having to create an empty AudioBus. Introduces AudioBus::FromInterleaved(...) and AudioBus:: ToInterleaved() for converting between formats. Fixes off by one errors in our existing audio_util implmentations. Removes InterleaveFloatToInt from audio_util. Removes data(), data_size() methods in favor of CopyTo() helper method combined with AudioBus::WrapMemory(). And of course adds new tests for all of the above. This CL is an extraction of all AudioBus functionality required to land the WIP CL which converts browser side to use AudioBus: http://codereview.chromium.org/10832285/ BUG=114700, 120319 TEST=unit tests under ASAN. Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=152494

Patch Set 1 : Lint. #

Total comments: 29

Patch Set 2 : Comments. #

Total comments: 31

Patch Set 3 : Cleanup! #

Total comments: 1

Patch Set 4 : Comments. Bugs. #

Total comments: 4

Patch Set 5 : Rebase. #

Total comments: 5
Unified diffs Side-by-side diffs Delta from patch set Stats (+412 lines, -163 lines) Patch
M content/renderer/media/webrtc_audio_device_impl.cc View 1 2 3 3 chunks +6 lines, -14 lines 0 comments Download
M media/audio/audio_input_device.cc View 1 2 chunks +1 line, -10 lines 0 comments Download
M media/audio/audio_output_device.cc View 1 2 1 chunk +4 lines, -4 lines 0 comments Download
M media/audio/audio_util.h View 1 1 chunk +0 lines, -11 lines 0 comments Download
M media/audio/audio_util.cc View 1 2 2 chunks +2 lines, -48 lines 0 comments Download
M media/base/audio_bus.h View 1 2 3 4 2 chunks +35 lines, -12 lines 4 comments Download
M media/base/audio_bus.cc View 1 2 3 4 3 chunks +180 lines, -23 lines 1 comment Download
M media/base/audio_bus_unittest.cc View 1 2 3 7 chunks +179 lines, -20 lines 0 comments Download
M media/base/audio_renderer_mixer.cc View 1 1 chunk +0 lines, -3 lines 0 comments Download
M media/filters/audio_renderer_impl.cc View 1 2 3 4 1 chunk +4 lines, -17 lines 0 comments Download
M media/filters/pipeline_integration_test.cc View 1 2 3 1 chunk +1 line, -1 line 0 comments Download

Messages

Total messages: 27 (0 generated)
DaleCurtis
PTAL guys. @henrika, I hope this incorporates what you were thinking in the FromInterleaved() ToInterleaved() ...
8 years, 4 months ago (2012-08-15 01:01:23 UTC) #1
DaleCurtis
I somehow missed including the AudioOutputDevice changes which use the new wrapped WrapBlock, ToInterleaved, and ...
8 years, 4 months ago (2012-08-15 05:18:44 UTC) #2
henrika (OOO until Aug 14)
Looks great Dale! I added some initial comments. Did not have time to check the ...
8 years, 4 months ago (2012-08-15 09:59:37 UTC) #3
DaleCurtis
Thanks henrika! Just some quick comments while you might still be awake :) I'll make ...
8 years, 4 months ago (2012-08-15 19:16:46 UTC) #4
Chris Rogers
https://chromiumcodereview.appspot.com/10824304/diff/5001/media/base/audio_bus.cc File media/base/audio_bus.cc (right): https://chromiumcodereview.appspot.com/10824304/diff/5001/media/base/audio_bus.cc#newcode25 media/base/audio_bus.cc:25: int* aligned_frames) { NULL-check aligned_frames https://chromiumcodereview.appspot.com/10824304/diff/5001/media/base/audio_bus.cc#newcode43 media/base/audio_bus.cc:43: data_size_, kChannelAlignment))); ...
8 years, 4 months ago (2012-08-15 19:39:31 UTC) #5
DaleCurtis
(just comments) http://codereview.chromium.org/10824304/diff/5001/media/base/audio_bus.cc File media/base/audio_bus.cc (right): http://codereview.chromium.org/10824304/diff/5001/media/base/audio_bus.cc#newcode43 media/base/audio_bus.cc:43: data_size_, kChannelAlignment))); On 2012/08/15 19:39:31, Chris Rogers ...
8 years, 4 months ago (2012-08-15 20:12:54 UTC) #6
DaleCurtis
PTAL. This one also removes InterleaveFloatToInt() and almost all uses of DeinterleaveAudioChannel(). http://codereview.chromium.org/10824304/diff/5001/media/base/audio_bus.cc File media/base/audio_bus.cc ...
8 years, 4 months ago (2012-08-16 01:54:13 UTC) #7
scherkus (not reviewing)
http://codereview.chromium.org/10824304/diff/4003/media/audio/audio_output_device.cc File media/audio/audio_output_device.cc (right): http://codereview.chromium.org/10824304/diff/4003/media/audio/audio_output_device.cc#newcode273 media/audio/audio_output_device.cc:273: // TODO(dalecurtis): Remove this when we have float everywhere. ...
8 years, 4 months ago (2012-08-16 18:58:19 UTC) #8
DaleCurtis
(just comments) http://codereview.chromium.org/10824304/diff/4003/media/base/audio_bus.h File media/base/audio_bus.h (right): http://codereview.chromium.org/10824304/diff/4003/media/base/audio_bus.h#newcode38 media/base/audio_bus.h:38: static scoped_ptr<AudioBus> WrapBlock(int channels, int frames, void* ...
8 years, 4 months ago (2012-08-16 19:50:33 UTC) #9
scherkus (not reviewing)
On 2012/08/16 19:50:33, DaleCurtis wrote: > (just comments) > > http://codereview.chromium.org/10824304/diff/4003/media/base/audio_bus.h > File media/base/audio_bus.h (right): ...
8 years, 4 months ago (2012-08-16 21:55:00 UTC) #10
scherkus (not reviewing)
On 2012/08/16 21:55:00, scherkus wrote: > On 2012/08/16 19:50:33, DaleCurtis wrote: > > (just comments) ...
8 years, 4 months ago (2012-08-16 21:56:10 UTC) #11
scherkus (not reviewing)
On 2012/08/16 21:55:00, scherkus wrote: > On 2012/08/16 19:50:33, DaleCurtis wrote: > > (just comments) ...
8 years, 4 months ago (2012-08-16 21:56:10 UTC) #12
DaleCurtis
On 2012/08/16 21:56:10, scherkus wrote: > On 2012/08/16 21:55:00, scherkus wrote: > > On 2012/08/16 ...
8 years, 4 months ago (2012-08-16 22:58:31 UTC) #13
DaleCurtis
On 2012/08/16 22:58:31, DaleCurtis wrote: > On 2012/08/16 21:56:10, scherkus wrote: > > On 2012/08/16 ...
8 years, 4 months ago (2012-08-17 00:14:34 UTC) #14
scherkus (not reviewing)
> Turns out I am misunderstanding the shared memory implementation, it's a virtual > mapping ...
8 years, 4 months ago (2012-08-17 00:16:55 UTC) #15
DaleCurtis
On 2012/08/17 00:16:55, scherkus wrote: > > Turns out I am misunderstanding the shared memory ...
8 years, 4 months ago (2012-08-17 00:47:33 UTC) #16
DaleCurtis
PTAL. This should address all comments. http://codereview.chromium.org/10824304/diff/4003/media/audio/audio_output_device.cc File media/audio/audio_output_device.cc (right): http://codereview.chromium.org/10824304/diff/4003/media/audio/audio_output_device.cc#newcode273 media/audio/audio_output_device.cc:273: // TODO(dalecurtis): Remove ...
8 years, 4 months ago (2012-08-17 02:15:58 UTC) #17
henrika (OOO until Aug 14)
Dale: results from the unit test on my Windows 7 machine. Note: Google Test filter ...
8 years, 4 months ago (2012-08-17 13:36:16 UTC) #18
henrika (OOO until Aug 14)
On 2012/08/17 13:36:16, henrika wrote: LGTM assuming all tests are OK on all platforms.
8 years, 4 months ago (2012-08-17 13:47:34 UTC) #19
henrika (OOO until Aug 14)
http://codereview.chromium.org/10824304/diff/4005/content/renderer/media/webrtc_audio_device_impl.cc File content/renderer/media/webrtc_audio_device_impl.cc (right): http://codereview.chromium.org/10824304/diff/4005/content/renderer/media/webrtc_audio_device_impl.cc#newcode220 content/renderer/media/webrtc_audio_device_impl.cc:220: audio_bus->FromInterleaved(output_buffer_.get(), audio_bus->frames(), Looks really nice ;-) Just in case. ...
8 years, 4 months ago (2012-08-17 13:47:41 UTC) #20
DaleCurtis
On 2012/08/17 13:36:16, henrika wrote: > Dale: results from the unit test on my Windows ...
8 years, 4 months ago (2012-08-17 16:31:39 UTC) #21
scherkus (not reviewing)
FYI CL description still mentions BlockSize() LGTM w/ nit + q http://codereview.chromium.org/10824304/diff/10031/media/base/audio_bus.cc File media/base/audio_bus.cc (right): ...
8 years, 4 months ago (2012-08-17 23:46:07 UTC) #22
DaleCurtis
http://codereview.chromium.org/10824304/diff/10031/media/base/audio_bus.cc File media/base/audio_bus.cc (right): http://codereview.chromium.org/10824304/diff/10031/media/base/audio_bus.cc#newcode17 media/base/audio_bus.cc:17: (AudioBus::kChannelAlignment - 1)) == 0U; On 2012/08/17 23:46:07, scherkus ...
8 years, 4 months ago (2012-08-20 22:26:21 UTC) #23
Chris Rogers
LGTM - thanks Dale! I have some bikeshedding comments, but you can ignore if you ...
8 years, 4 months ago (2012-08-21 00:14:10 UTC) #24
DaleCurtis
Thanks for review Chris. The current ordering is the Chrome-style: http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml?showone=Function_Parameter_Ordering#Function_Parameter_Ordering I don't think there's ...
8 years, 4 months ago (2012-08-21 00:24:49 UTC) #25
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/dalecurtis@chromium.org/10824304/6009
8 years, 4 months ago (2012-08-21 00:29:23 UTC) #26
commit-bot: I haz the power
8 years, 4 months ago (2012-08-21 02:49:51 UTC) #27
Change committed as 152494

Powered by Google App Engine
This is Rietveld 408576698