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 17 matching lines...) Expand all Loading... |
28 | 28 |
29 #ifndef ReverbConvolver_h | 29 #ifndef ReverbConvolver_h |
30 #define ReverbConvolver_h | 30 #define ReverbConvolver_h |
31 | 31 |
32 #include "core/platform/audio/AudioArray.h" | 32 #include "core/platform/audio/AudioArray.h" |
33 #include "core/platform/audio/DirectConvolver.h" | 33 #include "core/platform/audio/DirectConvolver.h" |
34 #include "core/platform/audio/FFTConvolver.h" | 34 #include "core/platform/audio/FFTConvolver.h" |
35 #include "core/platform/audio/ReverbAccumulationBuffer.h" | 35 #include "core/platform/audio/ReverbAccumulationBuffer.h" |
36 #include "core/platform/audio/ReverbConvolverStage.h" | 36 #include "core/platform/audio/ReverbConvolverStage.h" |
37 #include "core/platform/audio/ReverbInputBuffer.h" | 37 #include "core/platform/audio/ReverbInputBuffer.h" |
38 #include <wtf/OwnPtr.h> | 38 #include "wtf/OwnPtr.h" |
39 #include <wtf/RefCounted.h> | 39 #include "wtf/RefCounted.h" |
40 #include <wtf/Threading.h> | 40 #include "wtf/Threading.h" |
41 #include <wtf/Vector.h> | 41 #include "wtf/Vector.h" |
42 | 42 |
43 namespace WebCore { | 43 namespace WebCore { |
44 | 44 |
45 class AudioChannel; | 45 class AudioChannel; |
46 | 46 |
47 class ReverbConvolver { | 47 class ReverbConvolver { |
48 public: | 48 public: |
49 // maxFFTSize can be adjusted (from say 2048 to 32768) depending on how much
precision is necessary. | 49 // maxFFTSize can be adjusted (from say 2048 to 32768) depending on how much
precision is necessary. |
50 // For certain tweaky de-convolving applications the phase errors add up qui
ckly and lead to non-sensical results with | 50 // For certain tweaky de-convolving applications the phase errors add up qui
ckly and lead to non-sensical results with |
51 // larger FFT sizes and single-precision floats. In these cases 2048 is a g
ood size. | 51 // larger FFT sizes and single-precision floats. In these cases 2048 is a g
ood size. |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
86 ThreadIdentifier m_backgroundThread; | 86 ThreadIdentifier m_backgroundThread; |
87 bool m_wantsToExit; | 87 bool m_wantsToExit; |
88 bool m_moreInputBuffered; | 88 bool m_moreInputBuffered; |
89 mutable Mutex m_backgroundThreadLock; | 89 mutable Mutex m_backgroundThreadLock; |
90 mutable ThreadCondition m_backgroundThreadCondition; | 90 mutable ThreadCondition m_backgroundThreadCondition; |
91 }; | 91 }; |
92 | 92 |
93 } // namespace WebCore | 93 } // namespace WebCore |
94 | 94 |
95 #endif // ReverbConvolver_h | 95 #endif // ReverbConvolver_h |
OLD | NEW |