b=933304 use AudioChunk::mVolume to optimize distance and cone gain r=padenot

--HG--
extra : transplant_source : %B6%97%20%08%AD%1E%D5N%A8q%5DMZ%5C%DB%10%89%F9%00%29
This commit is contained in:
Karl Tomlinson 2014-01-28 18:14:25 +13:00
parent a3d1456e4e
commit 4245ee6562

View File

@ -172,7 +172,6 @@ public:
}
void ComputeAzimuthAndElevation(float& aAzimuth, float& aElevation);
void DistanceAndConeGain(AudioChunk* aChunk, float aGain);
float ComputeConeGain();
// Compute how much the distance contributes to the gain reduction.
float ComputeDistanceGain();
@ -363,7 +362,7 @@ PannerNodeEngine::EqualPowerPanningFunction(const AudioChunk& aInput,
GainStereoToStereo(aInput, aOutput, gainL, gainR, azimuth);
}
DistanceAndConeGain(aOutput, distanceGain * coneGain * aInput.mVolume);
aOutput->mVolume = aInput.mVolume * distanceGain * coneGain;
}
void
@ -389,15 +388,6 @@ PannerNodeEngine::GainStereoToStereo(const AudioChunk& aInput, AudioChunk* aOutp
AudioBlockPanStereoToStereo(inputL, inputR, aGainL, aGainR, aAzimuth <= 0, outputL, outputR);
}
void
PannerNodeEngine::DistanceAndConeGain(AudioChunk* aChunk, float aGain)
{
float* samples = static_cast<float*>(const_cast<void*>(*aChunk->mChannelData.Elements()));
uint32_t channelCount = aChunk->mChannelData.Length();
AudioBlockInPlaceScale(samples, channelCount, aGain);
}
// This algorithm is specified in the webaudio spec.
void
PannerNodeEngine::ComputeAzimuthAndElevation(float& aAzimuth, float& aElevation)