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

Issue 19111004: Upgrade AudioRendererAlgorithm to use WSOLA, (Closed)

Created:
7 years, 5 months ago by turaj
Modified:
7 years, 3 months ago
Reviewers:
DaleCurtis, marpan
CC:
chromium-reviews, feature-media-reviews_chromium.org
Visibility:
Public.

Description

Upgrade AudioRendererAlgorithm to use WSOLA, Replaces the old and crufty time scaling solution with a Waveform-Similarity-Overlap-Add (WSOLA) approach. BUG=40452 TEST=media_unittests, manual performance and functional tests. R=dalecurtis@chromium.org, marpan@google.com Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=220343

Patch Set 1 #

Total comments: 66

Patch Set 2 : Andrew's comments addressed. Unit test for WSOLA algorithm is added. #

Patch Set 3 : Avoid malloc in every iteration by defining some member varibles. #

Total comments: 41

Patch Set 4 : "Marco's comments are adressed." #

Total comments: 26

Patch Set 5 : "Dale's and Marco's comments are addressed." #

Total comments: 102

Patch Set 6 : Adressing Dale's comments. #

Total comments: 10

Patch Set 7 : Comments addressed, AudioRendererAlgorithmTest::WsolaTest modified. #

Total comments: 1

Patch Set 8 : Valgrind warning addressed, and small fixes to unittests. #

Total comments: 11

Patch Set 9 : Minor changes. #

Patch Set 10 : Unit-test nit addressed #

Patch Set 11 : Adding MEDIA_EXPORT #

Total comments: 2

Patch Set 12 : Correcting gyp #

Patch Set 13 : Avoiding un-aligned memory. #

Patch Set 14 : Fixes for try server failure. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1051 lines, -325 lines) Patch
M media/filters/audio_renderer_algorithm.h View 1 2 3 4 5 6 7 8 3 chunks +110 lines, -60 lines 0 comments Download
M media/filters/audio_renderer_algorithm.cc View 1 2 3 4 5 6 7 8 4 chunks +266 lines, -262 lines 0 comments Download
M media/filters/audio_renderer_algorithm_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 7 chunks +316 lines, -3 lines 0 comments Download
A media/filters/wsola_internals.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +93 lines, -0 lines 0 comments Download
A media/filters/wsola_internals.cc View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +264 lines, -0 lines 0 comments Download
M media/media.gyp View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +2 lines, -0 lines 0 comments Download

Messages

Total messages: 52 (0 generated)
turaj
Hi, This is the implementation of WSOLA. I added most of the unit tests that ...
7 years, 5 months ago (2013-07-13 00:15:54 UTC) #1
DaleCurtis
Nice work Turaj! I'm still digging through this, some initial comments below which apply to ...
7 years, 5 months ago (2013-07-16 00:18:40 UTC) #2
DaleCurtis
Whoops, one comment got dropped: Instead of having AudioRendererAlgorithm::Wsola() and AudioRendererAlgorithmUtil splitting dependencies, would it ...
7 years, 5 months ago (2013-07-16 00:22:48 UTC) #3
turaj
Thanks, for the review and the comments. Having a class performing WSOLA is a great ...
7 years, 5 months ago (2013-07-16 20:53:01 UTC) #4
DaleCurtis
wsola.{cc,h} definitely. No to wsola_util.{cc,h} since it's doubtful anyone else would be using those functions. ...
7 years, 5 months ago (2013-07-16 21:18:05 UTC) #5
turaj
Agreed that they are specific to WSOLA, wsola_internals.{cc, h} is good suggestion. Will do as ...
7 years, 5 months ago (2013-07-16 21:25:00 UTC) #6
turaj
Hi Dale, I started to write Wsola class (there was a nasty bug, which kept ...
7 years, 5 months ago (2013-07-19 22:31:13 UTC) #7
DaleCurtis
If it's entirely overlap, just having ARA is better. After review (for ease of review) ...
7 years, 5 months ago (2013-07-22 18:12:29 UTC) #8
scherkus (not reviewing)
On 2013/07/22 18:12:29, DaleCurtis wrote: > If it's entirely overlap, just having ARA is better. ...
7 years, 5 months ago (2013-07-22 18:23:59 UTC) #9
turaj
+ajm@ who will review Signal Processing aspect of the code. I have already renamed, though ...
7 years, 5 months ago (2013-07-22 18:52:35 UTC) #10
ajm
This was longer than I suspected when Turaj asked me to review :) I'm pretty ...
7 years, 5 months ago (2013-07-23 18:03:28 UTC) #11
turaj
+Marco to will substitute ajm@ Andrew, fill free to see if you comments are correctly ...
7 years, 4 months ago (2013-07-29 22:09:56 UTC) #12
DaleCurtis
https://codereview.chromium.org/19111004/diff/1/media/filters/audio_renderer_algorithm.cc File media/filters/audio_renderer_algorithm.cc (right): https://codereview.chromium.org/19111004/diff/1/media/filters/audio_renderer_algorithm.cc#newcode195 media/filters/audio_renderer_algorithm.cc:195: scoped_ptr<AudioBus> optimal_frame = AudioBus::Create( On 2013/07/29 22:09:57, turaj wrote: ...
7 years, 4 months ago (2013-07-29 23:48:32 UTC) #13
turaj
Dale's comment is addressed.
7 years, 4 months ago (2013-07-30 00:35:42 UTC) #14
marpan
Looks good Turaj! Some comments below. https://codereview.chromium.org/19111004/diff/21001/media/filters/audio_renderer_algorithm.cc File media/filters/audio_renderer_algorithm.cc (right): https://codereview.chromium.org/19111004/diff/21001/media/filters/audio_renderer_algorithm.cc#newcode77 media/filters/audio_renderer_algorithm.cc:77: ola_window_size_ / 2 ...
7 years, 4 months ago (2013-08-02 17:56:54 UTC) #15
turaj
Thanks for the review Marco, comments are addressed. https://codereview.chromium.org/19111004/diff/21001/media/filters/audio_renderer_algorithm.cc File media/filters/audio_renderer_algorithm.cc (right): https://codereview.chromium.org/19111004/diff/21001/media/filters/audio_renderer_algorithm.cc#newcode77 media/filters/audio_renderer_algorithm.cc:77: ola_window_size_ ...
7 years, 4 months ago (2013-08-02 23:45:59 UTC) #16
marpan
LGTM, few nits below. https://codereview.chromium.org/19111004/diff/21001/media/filters/audio_renderer_algorithm.cc File media/filters/audio_renderer_algorithm.cc (right): https://codereview.chromium.org/19111004/diff/21001/media/filters/audio_renderer_algorithm.cc#newcode330 media/filters/audio_renderer_algorithm.cc:330: transition_window_[ola_window_size_ + n]; On 2013/08/02 ...
7 years, 4 months ago (2013-08-06 17:14:10 UTC) #17
DaleCurtis
Still reviewing, but here is my initial set of comments. https://codereview.chromium.org/19111004/diff/43001/media/filters/audio_renderer_algorithm.cc File media/filters/audio_renderer_algorithm.cc (right): https://codereview.chromium.org/19111004/diff/43001/media/filters/audio_renderer_algorithm.cc#newcode69 ...
7 years, 4 months ago (2013-08-06 18:04:55 UTC) #18
turaj
Hi, I addressed your comments. Thanks,... Turaj https://codereview.chromium.org/19111004/diff/43001/media/filters/audio_renderer_algorithm.cc File media/filters/audio_renderer_algorithm.cc (right): https://codereview.chromium.org/19111004/diff/43001/media/filters/audio_renderer_algorithm.cc#newcode69 media/filters/audio_renderer_algorithm.cc:69: (kWsolaSearchIntervalMs * ...
7 years, 4 months ago (2013-08-06 23:29:27 UTC) #19
DaleCurtis
It'd be nice to see some benchmarks relative to the old code for this new ...
7 years, 4 months ago (2013-08-13 21:11:03 UTC) #20
turaj
Hi Dale, I tried to address your comments. Is there any specific reason that we ...
7 years, 4 months ago (2013-08-16 22:13:56 UTC) #21
DaleCurtis
If there's overlap, memmove is the right choice. I didn't think there was, but I ...
7 years, 4 months ago (2013-08-19 22:15:22 UTC) #22
DaleCurtis
CL is mostly ready for submission, but there are a few benchmarks I want to ...
7 years, 4 months ago (2013-08-19 22:19:48 UTC) #23
turaj
Hi, I addressed the comments and simplified. I thought I need to use one of ...
7 years, 4 months ago (2013-08-21 01:01:19 UTC) #24
DaleCurtis
For benchmarking you should just be able to time the various audio renderer algorithm FillBuffer() ...
7 years, 4 months ago (2013-08-21 01:16:02 UTC) #25
turaj
It should be sufficient, I thought you want them to be run on long file ...
7 years, 4 months ago (2013-08-21 01:26:48 UTC) #26
DaleCurtis
It's a good first estimate. I was trying to suggest you adjust the values in ...
7 years, 4 months ago (2013-08-21 01:34:36 UTC) #27
turaj
WSOLA [ RUN ] AudioRendererAlgorithmTest.FillBuffer_SmallBufferSize [ OK ] AudioRendererAlgorithmTest.FillBuffer_SmallBufferSize (9039 ms) [ RUN ] AudioRendererAlgorithmTest.FillBuffer_LargeBufferSize ...
7 years, 4 months ago (2013-08-21 22:43:51 UTC) #28
turaj
sorry, please ignore my last e-mail, it was not finished. On Wed, Aug 21, 2013 ...
7 years, 4 months ago (2013-08-21 22:44:53 UTC) #29
turaj
Hi Dale, These are some results to benchmark WSOLA compared to the current implementation in ...
7 years, 4 months ago (2013-08-21 23:10:43 UTC) #30
turaj
Hi Dale, I resolved Valgrind warning. After that FillBuffer_SmallBufferSize unit-test failed. The reason was obvious. ...
7 years, 4 months ago (2013-08-22 17:21:45 UTC) #31
turaj
Partial-search Impact on Complexity Speedup and slowdown has been running to produce 400 seconds of ...
7 years, 4 months ago (2013-08-22 18:38:15 UTC) #32
DaleCurtis
Thanks for the benchmarks! It seems there is an order of magnitude slow down, but ...
7 years, 4 months ago (2013-08-22 22:36:35 UTC) #33
turaj
Hi Dale, Please have a look at the recent changes in patch set 9. Thanks,... ...
7 years, 4 months ago (2013-08-23 21:14:09 UTC) #34
DaleCurtis
lgtm % nit -- thanks turaj! https://codereview.chromium.org/19111004/diff/93001/media/filters/audio_renderer_algorithm_unittest.cc File media/filters/audio_renderer_algorithm_unittest.cc (right): https://codereview.chromium.org/19111004/diff/93001/media/filters/audio_renderer_algorithm_unittest.cc#newcode249 media/filters/audio_renderer_algorithm_unittest.cc:249: std::vector<uint8_t*> channel_data = ...
7 years, 3 months ago (2013-08-26 22:39:31 UTC) #35
turaj
Hi Dale, Thanks for the review and the constructive comments. I fixed the last nit ...
7 years, 3 months ago (2013-08-27 17:58:19 UTC) #36
DaleCurtis
You can just click the "commit" checkbox on this review to send the change to ...
7 years, 3 months ago (2013-08-27 18:23:29 UTC) #37
turaj
Thanks. The patch fails to compile in some try servers. media::internal methods cannot be found. ...
7 years, 3 months ago (2013-08-27 18:43:53 UTC) #38
DaleCurtis
Ah I forgot you're using those internal methods in unittests. You'll need to add MEDIA_EXPORT ...
7 years, 3 months ago (2013-08-27 19:46:35 UTC) #39
turaj
On 2013/08/27 19:46:35, DaleCurtis wrote: > Ah I forgot you're using those internal methods in ...
7 years, 3 months ago (2013-08-27 23:35:00 UTC) #40
DaleCurtis
That try doesn't seem to be for the MEDIA_EXPORT version? https://codereview.chromium.org/19111004/diff/124001/media/media.gyp File media/media.gyp (right): https://codereview.chromium.org/19111004/diff/124001/media/media.gyp#newcode381 ...
7 years, 3 months ago (2013-08-27 23:39:36 UTC) #41
turaj
https://codereview.chromium.org/19111004/diff/124001/media/media.gyp File media/media.gyp (right): https://codereview.chromium.org/19111004/diff/124001/media/media.gyp#newcode381 media/media.gyp:381: 'midi/midi_manager.h', I rebased it and seems that merge didn't ...
7 years, 3 months ago (2013-08-28 00:26:07 UTC) #42
DaleCurtis
No, I was just pointing it out. I think you're looking at the wrong try ...
7 years, 3 months ago (2013-08-28 00:32:35 UTC) #43
turaj
I get errors like this which seems legitimate. Please have look if the solution is ...
7 years, 3 months ago (2013-08-28 02:54:08 UTC) #44
turaj
Hi Dale, Patch set 14 passed all try servers. There has been a bit of ...
7 years, 3 months ago (2013-08-28 20:35:47 UTC) #45
DaleCurtis
lgtm
7 years, 3 months ago (2013-08-28 20:51:42 UTC) #46
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/turaj@webrtc.org/19111004/115007
7 years, 3 months ago (2013-08-28 21:33:02 UTC) #47
commit-bot: I haz the power
Retried try job too often on chromium_presubmit for step(s) presubmit http://build.chromium.org/p/tryserver.chromium/buildstatus?builder=chromium_presubmit&number=22881
7 years, 3 months ago (2013-08-28 21:56:43 UTC) #48
turaj
Hi Dale, Could you please have a look on this error message? Is this failure ...
7 years, 3 months ago (2013-08-29 16:02:32 UTC) #49
DaleCurtis
Ah crap, yeah it wants you to be listed there since you didn't use your ...
7 years, 3 months ago (2013-08-29 18:23:44 UTC) #50
turaj
Thanks, sorry for the inconvenience. If I knew before hand, I would use @ google.com ...
7 years, 3 months ago (2013-08-29 18:26:22 UTC) #51
DaleCurtis
7 years, 3 months ago (2013-08-29 18:26:31 UTC) #52
Message was sent while issue was closed.
Committed patchset #14 manually as r220343 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698