| 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  * 1.  Redistributions of source code must retain the above copyright | 7  * 1.  Redistributions of source code must retain the above copyright | 
| 8  *    notice, this list of conditions and the following disclaimer. | 8  *    notice, this list of conditions and the following disclaimer. | 
| 9  * 2.  Redistributions in binary form must reproduce the above copyright | 9  * 2.  Redistributions in binary form must reproduce the above copyright | 
| 10  *    notice, this list of conditions and the following disclaimer in the | 10  *    notice, this list of conditions and the following disclaimer in the | 
| 11  *    documentation and/or other materials provided with the distribution. | 11  *    documentation and/or other materials provided with the distribution. | 
| 12  * | 12  * | 
| 13  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND AN
     Y | 13  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND | 
| 14  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | 14  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | 
| 15  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | 15  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | 
| 16  * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR AN
     Y | 16  * ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE | 
| 17  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | 17  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | 
| 18  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | 18  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | 
| 19  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND O
     N | 19  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | 
| 20  * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 20  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | 
| 21  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | 21  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | 
| 22  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 22  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH | 
|  | 23  * DAMAGE. | 
| 23  */ | 24  */ | 
| 24 | 25 | 
| 25 #include "platform/audio/AudioDelayDSPKernel.h" | 26 #include "platform/audio/AudioDelayDSPKernel.h" | 
| 26 #include "platform/audio/AudioUtilities.h" | 27 #include "platform/audio/AudioUtilities.h" | 
| 27 #include "wtf/MathExtras.h" | 28 #include "wtf/MathExtras.h" | 
| 28 #include <cmath> | 29 #include <cmath> | 
| 29 | 30 | 
| 30 namespace blink { | 31 namespace blink { | 
| 31 | 32 | 
| 32 const float SmoothingTimeConstant = 0.020f;  // 20ms | 33 const float SmoothingTimeConstant = 0.020f;  // 20ms | 
| (...skipping 21 matching lines...) Expand all  Loading... | 
| 54 | 55 | 
| 55   m_buffer.allocate(bufferLength); | 56   m_buffer.allocate(bufferLength); | 
| 56   m_buffer.zero(); | 57   m_buffer.zero(); | 
| 57 | 58 | 
| 58   m_smoothingRate = AudioUtilities::discreteTimeConstantForSampleRate( | 59   m_smoothingRate = AudioUtilities::discreteTimeConstantForSampleRate( | 
| 59       SmoothingTimeConstant, sampleRate); | 60       SmoothingTimeConstant, sampleRate); | 
| 60 } | 61 } | 
| 61 | 62 | 
| 62 size_t AudioDelayDSPKernel::bufferLengthForDelay(double maxDelayTime, | 63 size_t AudioDelayDSPKernel::bufferLengthForDelay(double maxDelayTime, | 
| 63                                                  double sampleRate) const { | 64                                                  double sampleRate) const { | 
| 64   // Compute the length of the buffer needed to handle a max delay of |maxDelayT
     ime|. One is | 65   // Compute the length of the buffer needed to handle a max delay of | 
| 65   // added to handle the case where the actual delay equals the maximum delay. | 66   // |maxDelayTime|. One is added to handle the case where the actual delay | 
|  | 67   // equals the maximum delay. | 
| 66   return 1 + AudioUtilities::timeToSampleFrame(maxDelayTime, sampleRate); | 68   return 1 + AudioUtilities::timeToSampleFrame(maxDelayTime, sampleRate); | 
| 67 } | 69 } | 
| 68 | 70 | 
| 69 bool AudioDelayDSPKernel::hasSampleAccurateValues() { | 71 bool AudioDelayDSPKernel::hasSampleAccurateValues() { | 
| 70   return false; | 72   return false; | 
| 71 } | 73 } | 
| 72 | 74 | 
| 73 void AudioDelayDSPKernel::calculateSampleAccurateValues(float*, size_t) { | 75 void AudioDelayDSPKernel::calculateSampleAccurateValues(float*, size_t) { | 
| 74   ASSERT_NOT_REACHED(); | 76   ASSERT_NOT_REACHED(); | 
| 75 } | 77 } | 
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 160   // Account for worst case delay. | 162   // Account for worst case delay. | 
| 161   // Don't try to track actual delay time which can change dynamically. | 163   // Don't try to track actual delay time which can change dynamically. | 
| 162   return m_maxDelayTime; | 164   return m_maxDelayTime; | 
| 163 } | 165 } | 
| 164 | 166 | 
| 165 double AudioDelayDSPKernel::latencyTime() const { | 167 double AudioDelayDSPKernel::latencyTime() const { | 
| 166   return 0; | 168   return 0; | 
| 167 } | 169 } | 
| 168 | 170 | 
| 169 }  // namespace blink | 171 }  // namespace blink | 
| OLD | NEW | 
|---|