[Webkit-unassigned] [Bug 46299] Add HRTFPanner files
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Tue Sep 28 16:15:23 PDT 2010
https://bugs.webkit.org/show_bug.cgi?id=46299
James Robinson <jamesr at chromium.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Attachment #69117|review? |review-
Flag| |
--- Comment #10 from James Robinson <jamesr at chromium.org> 2010-09-28 16:15:22 PST ---
(From update of attachment 69117)
View in context: https://bugs.webkit.org/attachment.cgi?id=69117&action=review
Nearly there, few more small things. Where is DelayDSPKernel defined? I don't see it in my tree.
> WebCore/platform/audio/HRTFPanner.cpp:117
> + // IRCAM HRTF azimuths which we're loading are reversed from the panner's notion...
Still not technically a sentence. If this is normalization for the way our data files are formatted, why is it being done here?
> WebCore/platform/audio/HRTFPanner.cpp:121
> + if (azimuth < 0)
> + azimuth += 360.0; // make positive
Not a sentence. Why is this needed?
> WebCore/platform/audio/HRTFPanner.cpp:141
> + bool isAzimuthGood = azimuth >= 0.0 && azimuth <= 360.0;
> + ASSERT(isAzimuthGood);
> + if (!isAzimuthGood) {
> + outputBus->zero();
> + return;
> + }
> +
> + int numberOfAzimuths = database->numberOfAzimuths();
> + const double angleBetweenAzimuths = 360.0 / numberOfAzimuths;
> +
> + // Calculate the azimuth index and the blend (0 -> 1) for interpolation.
> + double desiredAzimuthIndexF = azimuth / angleBetweenAzimuths;
> + int desiredAzimuthIndex = static_cast<int>(desiredAzimuthIndexF);
> + double azimuthBlend = desiredAzimuthIndexF - static_cast<double>(desiredAzimuthIndex);
> +
> + // We don't immediately start using this azimuth index, but instead approach this index from the last index we rendered at.
> + // This minimizes the clicks and graininess for moving sources which occur otherwise.
> + desiredAzimuthIndex = max(0, desiredAzimuthIndex);
> + desiredAzimuthIndex = min(numberOfAzimuths - 1, desiredAzimuthIndex);
We don't typically use suffixes like F for floating point values in WebKit. This segment feels like it should be in a helper function (since this function is a bit on the long side). Are the min/max needed given that we've already checked that azimuth is in the range [0.0,360.0] ?
> WebCore/platform/audio/HRTFPanner.cpp:174
> + // Get the HRTFKernels and interpolated delays.
> +
nit: don't need the extra newline here
> WebCore/platform/audio/HRTFPanner.cpp:198
> + // Normally, we'll just be dealing with mono sources.
> + // If we have a stereo input, implement a strange kind of panning with left source processed by left HRTF, and right source by right HRTF.
> + AudioChannel* channelL = inputBus->channelByType(AudioBus::ChannelLeft);
> + AudioChannel* channelR = numInputChannels > 1 ? inputBus->channelByType(AudioBus::ChannelRight) : 0;
> +
> + // Get source and destination pointers.
> + float* sourceL = channelL->data();
> + float* sourceR = numInputChannels > 1 ? channelR->data() : sourceL;
> + float* destinationL = outputBus->channelByType(AudioBus::ChannelLeft)->data();
> + float* destinationR = outputBus->channelByType(AudioBus::ChannelRight)->data();
Should some of this be outside the loop?
> WebCore/platform/audio/HRTFPanner.h:32
> +#include "DelayProcessor.h"
I don't see this header in my checkout. Does it define DelayDSPKernel? Should you include DelayDSPKernel.h directly (once it exists)?
> WebCore/platform/audio/HRTFPanner.h:39
> +class FFTFrame;
> +class HRTFDatabase;
This forward declarations aren't needed.
--
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
More information about the webkit-unassigned
mailing list