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 |
(...skipping 30 matching lines...) Expand all Loading... |
41 #include "modules/webaudio/AudioBufferCallback.h" | 41 #include "modules/webaudio/AudioBufferCallback.h" |
42 #include "modules/webaudio/AudioBufferSourceNode.h" | 42 #include "modules/webaudio/AudioBufferSourceNode.h" |
43 #include "modules/webaudio/AudioContext.h" | 43 #include "modules/webaudio/AudioContext.h" |
44 #include "modules/webaudio/AudioListener.h" | 44 #include "modules/webaudio/AudioListener.h" |
45 #include "modules/webaudio/AudioNodeInput.h" | 45 #include "modules/webaudio/AudioNodeInput.h" |
46 #include "modules/webaudio/AudioNodeOutput.h" | 46 #include "modules/webaudio/AudioNodeOutput.h" |
47 #include "modules/webaudio/BiquadFilterNode.h" | 47 #include "modules/webaudio/BiquadFilterNode.h" |
48 #include "modules/webaudio/ChannelMergerNode.h" | 48 #include "modules/webaudio/ChannelMergerNode.h" |
49 #include "modules/webaudio/ChannelSplitterNode.h" | 49 #include "modules/webaudio/ChannelSplitterNode.h" |
50 #include "modules/webaudio/ConvolverNode.h" | 50 #include "modules/webaudio/ConvolverNode.h" |
| 51 #include "modules/webaudio/DecodeAudioDataOptions.h" |
51 #include "modules/webaudio/DefaultAudioDestinationNode.h" | 52 #include "modules/webaudio/DefaultAudioDestinationNode.h" |
52 #include "modules/webaudio/DelayNode.h" | 53 #include "modules/webaudio/DelayNode.h" |
53 #include "modules/webaudio/DynamicsCompressorNode.h" | 54 #include "modules/webaudio/DynamicsCompressorNode.h" |
54 #include "modules/webaudio/GainNode.h" | 55 #include "modules/webaudio/GainNode.h" |
55 #include "modules/webaudio/IIRFilterNode.h" | 56 #include "modules/webaudio/IIRFilterNode.h" |
56 #include "modules/webaudio/MediaElementAudioSourceNode.h" | 57 #include "modules/webaudio/MediaElementAudioSourceNode.h" |
57 #include "modules/webaudio/MediaStreamAudioDestinationNode.h" | 58 #include "modules/webaudio/MediaStreamAudioDestinationNode.h" |
58 #include "modules/webaudio/MediaStreamAudioSourceNode.h" | 59 #include "modules/webaudio/MediaStreamAudioSourceNode.h" |
59 #include "modules/webaudio/OfflineAudioCompletionEvent.h" | 60 #include "modules/webaudio/OfflineAudioCompletionEvent.h" |
60 #include "modules/webaudio/OfflineAudioContext.h" | 61 #include "modules/webaudio/OfflineAudioContext.h" |
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
271 DEFINE_STATIC_LOCAL(CustomCountHistogram, audioBufferSampleRateRatio
Histogram, | 272 DEFINE_STATIC_LOCAL(CustomCountHistogram, audioBufferSampleRateRatio
Histogram, |
272 ("WebAudio.AudioBuffer.SampleRateRatio", 1, 6400, 50)); | 273 ("WebAudio.AudioBuffer.SampleRateRatio", 1, 6400, 50)); |
273 float ratio = 100 * sampleRate / this->sampleRate(); | 274 float ratio = 100 * sampleRate / this->sampleRate(); |
274 audioBufferSampleRateRatioHistogram.count(static_cast<int>(0.5 + rat
io)); | 275 audioBufferSampleRateRatioHistogram.count(static_cast<int>(0.5 + rat
io)); |
275 } | 276 } |
276 } | 277 } |
277 | 278 |
278 return buffer; | 279 return buffer; |
279 } | 280 } |
280 | 281 |
281 ScriptPromise BaseAudioContext::decodeAudioData(ScriptState* scriptState, DOMArr
ayBuffer* audioData, AudioBufferCallback* successCallback, AudioBufferCallback*
errorCallback, ExceptionState& exceptionState) | 282 ScriptPromise BaseAudioContext::decodeAudioData( |
| 283 ScriptState* scriptState, |
| 284 DOMArrayBuffer* audioData, |
| 285 bool disableResampling, |
| 286 AudioBufferCallback* successCallback, |
| 287 AudioBufferCallback* errorCallback, |
| 288 ExceptionState& exceptionState) |
282 { | 289 { |
283 DCHECK(isMainThread()); | 290 DCHECK(isMainThread()); |
284 DCHECK(audioData); | 291 DCHECK(audioData); |
285 | 292 |
286 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState)
; | 293 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState)
; |
287 ScriptPromise promise = resolver->promise(); | 294 ScriptPromise promise = resolver->promise(); |
288 | 295 |
289 float rate = isContextClosed() ? closedContextSampleRate() : sampleRate(); | 296 float rate = isContextClosed() ? closedContextSampleRate() : sampleRate(); |
290 | 297 |
291 DCHECK_GT(rate, 0); | 298 DCHECK_GT(rate, 0); |
292 | 299 |
293 m_decodeAudioResolvers.add(resolver); | 300 m_decodeAudioResolvers.add(resolver); |
294 m_audioDecoder.decodeAsync(audioData, rate, successCallback, errorCallback,
resolver, this); | 301 |
| 302 m_audioDecoder.decodeAsync( |
| 303 audioData, |
| 304 rate, |
| 305 disableResampling, |
| 306 successCallback, |
| 307 errorCallback, |
| 308 resolver, |
| 309 this); |
295 | 310 |
296 return promise; | 311 return promise; |
297 } | 312 } |
298 | 313 |
| 314 ScriptPromise BaseAudioContext::decodeAudioData(ScriptState* scriptState, DOMArr
ayBuffer* audioData, AudioBufferCallback* successCallback, AudioBufferCallback*
errorCallback, ExceptionState& exceptionState) |
| 315 { |
| 316 return decodeAudioData( |
| 317 scriptState, |
| 318 audioData, |
| 319 false, |
| 320 successCallback, |
| 321 errorCallback, |
| 322 exceptionState); |
| 323 } |
| 324 |
| 325 ScriptPromise BaseAudioContext::decodeAudioData(ScriptState* scriptState, DOMArr
ayBuffer* audioData, const DecodeAudioDataOptions& decodeOptions, ExceptionState
& exceptionState) |
| 326 { |
| 327 return decodeAudioData( |
| 328 scriptState, |
| 329 audioData, |
| 330 decodeOptions.disableResampling(), |
| 331 nullptr, |
| 332 nullptr, |
| 333 exceptionState); |
| 334 } |
| 335 |
299 void BaseAudioContext::handleDecodeAudioData(AudioBuffer* audioBuffer, ScriptPro
miseResolver* resolver, AudioBufferCallback* successCallback, AudioBufferCallbac
k* errorCallback) | 336 void BaseAudioContext::handleDecodeAudioData(AudioBuffer* audioBuffer, ScriptPro
miseResolver* resolver, AudioBufferCallback* successCallback, AudioBufferCallbac
k* errorCallback) |
300 { | 337 { |
301 DCHECK(isMainThread()); | 338 DCHECK(isMainThread()); |
302 | 339 |
303 if (audioBuffer) { | 340 if (audioBuffer) { |
304 // Resolve promise successfully and run the success callback | 341 // Resolve promise successfully and run the success callback |
305 resolver->resolve(audioBuffer); | 342 resolver->resolve(audioBuffer); |
306 if (successCallback) | 343 if (successCallback) |
307 successCallback->handleEvent(audioBuffer); | 344 successCallback->handleEvent(audioBuffer); |
308 } else { | 345 } else { |
(...skipping 522 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
831 | 868 |
832 SecurityOrigin* BaseAudioContext::getSecurityOrigin() const | 869 SecurityOrigin* BaseAudioContext::getSecurityOrigin() const |
833 { | 870 { |
834 if (getExecutionContext()) | 871 if (getExecutionContext()) |
835 return getExecutionContext()->getSecurityOrigin(); | 872 return getExecutionContext()->getSecurityOrigin(); |
836 | 873 |
837 return nullptr; | 874 return nullptr; |
838 } | 875 } |
839 | 876 |
840 } // namespace blink | 877 } // namespace blink |
OLD | NEW |