New issue
Advanced search Search tips

Issue 629858 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Jul 2016
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

Panner outputs silence if HRTF database hasn't been loaded yet

Project Member Reported by rtoy@chromium.org, Jul 20 2016

Issue description

When a PannerNode is set to HRTF mode, the HRTF database needs to be loaded, which takes some time.  During that time, the panner is processing audio.  In the current code, the panner will output silence if the database has not yet been loaded.  

Perhaps this should be changed so that the panner is a pass-through so audio is heard.  However, this has the potential to cause some glitches when the data base is loaded and applied to audio.

See test case from  issue 602668  for an example where the first sound is not heard.
 

Comment 1 by rtoy@chromium.org, Jul 20 2016

Components: Blink>WebAudio

Comment 2 by rtoy@chromium.org, Jul 20 2016

Owner: rtoy@chromium.org
Status: Started (was: Available)
Project Member

Comment 3 by bugdroid1@chromium.org, Jul 20 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/dec7ebfb35299bc15a0bc222dea7838b04d2c469

commit dec7ebfb35299bc15a0bc222dea7838b04d2c469
Author: rtoy <rtoy@chromium.org>
Date: Wed Jul 20 19:29:06 2016

Pass through audio if HRTF database isn't loaded yet.

If the HRTF panner isn't loaded yet, instead of zeroing the output,
copy the input to the output so that some audio is heard.  In either
case, there is a potential for a glitch, but it seems better to have
some audio output instead of silence.

The previous worst case was if loading the database is slow and the
sound is short, you won't hear anything.  Now you will.  If the sound
is long enough, you previously would hear silence and suddenly a
sound. Now you'll hear the sound which would suddenly change to due
spatialization.  We deem this to be less troublesome that not hearing the
initial sound at all.

BUG= 629858 
TEST=Run test from 602668 and audio from the first instance should be
heard

Review-Url: https://codereview.chromium.org/2168653003
Cr-Commit-Position: refs/heads/master@{#406638}

[modify] https://crrev.com/dec7ebfb35299bc15a0bc222dea7838b04d2c469/third_party/WebKit/Source/modules/webaudio/PannerNode.cpp

Project Member

Comment 4 by bugdroid1@chromium.org, Jul 21 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d8bfaa0cd8383d9dff73c737fe8ae19fedc40a43

commit d8bfaa0cd8383d9dff73c737fe8ae19fedc40a43
Author: rtoy <rtoy@chromium.org>
Date: Thu Jul 21 23:27:33 2016

HRTF panner should handle the case of no loaded HRTF database

Currently, the panner node checks to see if the HRTF database is
loaded and does the copy of the input if necessary.  This is the wrong
abstraction; the HRTF panner should copy the input if the database is
not ready.

In this way, the panner doesn't need to know about this implementation
detail, and we also get the correct distance and cone gains applied.

BUG= 629858 
TEST=

Review-Url: https://codereview.chromium.org/2170973002
Cr-Commit-Position: refs/heads/master@{#406988}

[modify] https://crrev.com/d8bfaa0cd8383d9dff73c737fe8ae19fedc40a43/third_party/WebKit/Source/modules/webaudio/PannerNode.cpp
[modify] https://crrev.com/d8bfaa0cd8383d9dff73c737fe8ae19fedc40a43/third_party/WebKit/Source/platform/audio/EqualPowerPanner.cpp
[modify] https://crrev.com/d8bfaa0cd8383d9dff73c737fe8ae19fedc40a43/third_party/WebKit/Source/platform/audio/EqualPowerPanner.h
[modify] https://crrev.com/d8bfaa0cd8383d9dff73c737fe8ae19fedc40a43/third_party/WebKit/Source/platform/audio/HRTFPanner.cpp
[modify] https://crrev.com/d8bfaa0cd8383d9dff73c737fe8ae19fedc40a43/third_party/WebKit/Source/platform/audio/HRTFPanner.h
[modify] https://crrev.com/d8bfaa0cd8383d9dff73c737fe8ae19fedc40a43/third_party/WebKit/Source/platform/audio/Panner.h

Comment 5 by rtoy@chromium.org, Jul 25 2016

Status: Fixed (was: Started)

Sign in to add a comment