| 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 |