| 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 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 66 | 66 |
| 67 power = sqrt(power / (numberOfChannels * length)); | 67 power = sqrt(power / (numberOfChannels * length)); |
| 68 | 68 |
| 69 // Protect against accidental overload | 69 // Protect against accidental overload |
| 70 if (std::isinf(power) || std::isnan(power) || power < MinPower) | 70 if (std::isinf(power) || std::isnan(power) || power < MinPower) |
| 71 power = MinPower; | 71 power = MinPower; |
| 72 | 72 |
| 73 float scale = 1 / power; | 73 float scale = 1 / power; |
| 74 | 74 |
| 75 scale *= powf( | 75 scale *= powf( |
| 76 10, GainCalibration * | 76 10, |
| 77 0.05f); // calibrate to make perceived volume same as unprocessed | 77 GainCalibration * |
| 78 0.05f); // calibrate to make perceived volume same as unprocessed |
| 78 | 79 |
| 79 // Scale depends on sample-rate. | 80 // Scale depends on sample-rate. |
| 80 if (response->sampleRate()) | 81 if (response->sampleRate()) |
| 81 scale *= GainCalibrationSampleRate / response->sampleRate(); | 82 scale *= GainCalibrationSampleRate / response->sampleRate(); |
| 82 | 83 |
| 83 // True-stereo compensation | 84 // True-stereo compensation |
| 84 if (response->numberOfChannels() == 4) | 85 if (response->numberOfChannels() == 4) |
| 85 scale *= 0.5f; | 86 scale *= 0.5f; |
| 86 | 87 |
| 87 return scale; | 88 return scale; |
| (...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 265 void Reverb::reset() { | 266 void Reverb::reset() { |
| 266 for (size_t i = 0; i < m_convolvers.size(); ++i) | 267 for (size_t i = 0; i < m_convolvers.size(); ++i) |
| 267 m_convolvers[i]->reset(); | 268 m_convolvers[i]->reset(); |
| 268 } | 269 } |
| 269 | 270 |
| 270 size_t Reverb::latencyFrames() const { | 271 size_t Reverb::latencyFrames() const { |
| 271 return !m_convolvers.isEmpty() ? m_convolvers.front()->latencyFrames() : 0; | 272 return !m_convolvers.isEmpty() ? m_convolvers.front()->latencyFrames() : 0; |
| 272 } | 273 } |
| 273 | 274 |
| 274 } // namespace blink | 275 } // namespace blink |
| OLD | NEW |