OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2011 Google Inc. All rights reserved. | 2 * Copyright (C) 2011 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 16 matching lines...) Expand all Loading... |
27 */ | 27 */ |
28 | 28 |
29 #include "config.h" | 29 #include "config.h" |
30 | 30 |
31 #if ENABLE(WEB_AUDIO) | 31 #if ENABLE(WEB_AUDIO) |
32 | 32 |
33 #include "platform/audio/MultiChannelResampler.h" | 33 #include "platform/audio/MultiChannelResampler.h" |
34 | 34 |
35 #include "platform/audio/AudioBus.h" | 35 #include "platform/audio/AudioBus.h" |
36 | 36 |
37 namespace WebCore { | 37 namespace blink { |
38 | 38 |
39 namespace { | 39 namespace { |
40 | 40 |
41 // ChannelProvider provides a single channel of audio data (one channel at a tim
e) for each channel | 41 // ChannelProvider provides a single channel of audio data (one channel at a tim
e) for each channel |
42 // of data provided to us in a multi-channel provider. | 42 // of data provided to us in a multi-channel provider. |
43 | 43 |
44 class ChannelProvider FINAL : public AudioSourceProvider { | 44 class ChannelProvider FINAL : public AudioSourceProvider { |
45 public: | 45 public: |
46 ChannelProvider(AudioSourceProvider* multiChannelProvider, unsigned numberOf
Channels) | 46 ChannelProvider(AudioSourceProvider* multiChannelProvider, unsigned numberOf
Channels) |
47 : m_multiChannelProvider(multiChannelProvider) | 47 : m_multiChannelProvider(multiChannelProvider) |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
111 // Depending on the sample-rate scale factor, and the internal buffering
used in a SincResampler | 111 // Depending on the sample-rate scale factor, and the internal buffering
used in a SincResampler |
112 // kernel, this call to process() will only sometimes call provideInput(
) on the channelProvider. | 112 // kernel, this call to process() will only sometimes call provideInput(
) on the channelProvider. |
113 // However, if it calls provideInput() for the first channel, then it wi
ll call it for the remaining | 113 // However, if it calls provideInput() for the first channel, then it wi
ll call it for the remaining |
114 // channels, since they all buffer in the same way and are processing th
e same number of frames. | 114 // channels, since they all buffer in the same way and are processing th
e same number of frames. |
115 m_kernels[channelIndex]->process(&channelProvider, | 115 m_kernels[channelIndex]->process(&channelProvider, |
116 destination->channel(channelIndex)->mut
ableData(), | 116 destination->channel(channelIndex)->mut
ableData(), |
117 framesToProcess); | 117 framesToProcess); |
118 } | 118 } |
119 } | 119 } |
120 | 120 |
121 } // namespace WebCore | 121 } // namespace blink |
122 | 122 |
123 #endif // ENABLE(WEB_AUDIO) | 123 #endif // ENABLE(WEB_AUDIO) |
OLD | NEW |