OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2010 Google Inc. All rights reserved. | 2 * Copyright (C) 2010 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * | 7 * |
8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
(...skipping 18 matching lines...) Expand all Loading... |
29 #include "config.h" | 29 #include "config.h" |
30 | 30 |
31 #if ENABLE(WEB_AUDIO) | 31 #if ENABLE(WEB_AUDIO) |
32 | 32 |
33 #include "HRTFKernel.h" | 33 #include "HRTFKernel.h" |
34 | 34 |
35 #include "AudioChannel.h" | 35 #include "AudioChannel.h" |
36 #include "Biquad.h" | 36 #include "Biquad.h" |
37 #include "FFTFrame.h" | 37 #include "FFTFrame.h" |
38 #include "FloatConversion.h" | 38 #include "FloatConversion.h" |
39 #include "PlatformMemoryInstrumentation.h" | |
40 #include <wtf/MathExtras.h> | 39 #include <wtf/MathExtras.h> |
41 | 40 |
42 using namespace std; | 41 using namespace std; |
43 | 42 |
44 namespace WebCore { | 43 namespace WebCore { |
45 | 44 |
46 // Takes the input AudioChannel as an input impulse response and calculates the
average group delay. | 45 // Takes the input AudioChannel as an input impulse response and calculates the
average group delay. |
47 // This represents the initial delay before the most energetic part of the impul
se response. | 46 // This represents the initial delay before the most energetic part of the impul
se response. |
48 // The sample-frame delay is removed from the impulseP impulse response, and thi
s value is returned. | 47 // The sample-frame delay is removed from the impulseP impulse response, and thi
s value is returned. |
49 // the length of the passed in AudioChannel must be a power of 2. | 48 // the length of the passed in AudioChannel must be a power of 2. |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
126 ASSERT(sampleRate1 == sampleRate2); | 125 ASSERT(sampleRate1 == sampleRate2); |
127 if (sampleRate1 != sampleRate2) | 126 if (sampleRate1 != sampleRate2) |
128 return 0; | 127 return 0; |
129 | 128 |
130 float frameDelay = (1 - x) * kernel1->frameDelay() + x * kernel2->frameDelay
(); | 129 float frameDelay = (1 - x) * kernel1->frameDelay() + x * kernel2->frameDelay
(); |
131 | 130 |
132 OwnPtr<FFTFrame> interpolatedFrame = FFTFrame::createInterpolatedFrame(*kern
el1->fftFrame(), *kernel2->fftFrame(), x); | 131 OwnPtr<FFTFrame> interpolatedFrame = FFTFrame::createInterpolatedFrame(*kern
el1->fftFrame(), *kernel2->fftFrame(), x); |
133 return HRTFKernel::create(interpolatedFrame.release(), frameDelay, sampleRat
e1); | 132 return HRTFKernel::create(interpolatedFrame.release(), frameDelay, sampleRat
e1); |
134 } | 133 } |
135 | 134 |
136 void HRTFKernel::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const | |
137 { | |
138 MemoryClassInfo info(memoryObjectInfo, this, PlatformMemoryTypes::AudioShare
dData); | |
139 info.addMember(m_fftFrame, "fftFrame"); | |
140 } | |
141 | |
142 } // namespace WebCore | 135 } // namespace WebCore |
143 | 136 |
144 #endif // ENABLE(WEB_AUDIO) | 137 #endif // ENABLE(WEB_AUDIO) |
OLD | NEW |