| 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 "core/inspector/ConsoleTypes.h" | 41 #include "core/inspector/ConsoleTypes.h" |
| 42 #include "modules/mediastream/MediaStream.h" | 42 #include "modules/mediastream/MediaStream.h" |
| 43 #include "modules/webaudio/AnalyserNode.h" | 43 #include "modules/webaudio/AnalyserNode.h" |
| 44 #include "modules/webaudio/AudioBuffer.h" | 44 #include "modules/webaudio/AudioBuffer.h" |
| 45 #include "modules/webaudio/AudioBufferCallback.h" | 45 #include "modules/webaudio/AudioBufferCallback.h" |
| 46 #include "modules/webaudio/AudioBufferSourceNode.h" | 46 #include "modules/webaudio/AudioBufferSourceNode.h" |
| 47 #include "modules/webaudio/AudioContext.h" | 47 #include "modules/webaudio/AudioContext.h" |
| 48 #include "modules/webaudio/AudioListener.h" | 48 #include "modules/webaudio/AudioListener.h" |
| 49 #include "modules/webaudio/AudioNodeInput.h" | 49 #include "modules/webaudio/AudioNodeInput.h" |
| 50 #include "modules/webaudio/AudioNodeOutput.h" | 50 #include "modules/webaudio/AudioNodeOutput.h" |
| 51 #include "modules/webaudio/AudioWorkletMessagingProxy.h" |
| 51 #include "modules/webaudio/BiquadFilterNode.h" | 52 #include "modules/webaudio/BiquadFilterNode.h" |
| 52 #include "modules/webaudio/ChannelMergerNode.h" | 53 #include "modules/webaudio/ChannelMergerNode.h" |
| 53 #include "modules/webaudio/ChannelSplitterNode.h" | 54 #include "modules/webaudio/ChannelSplitterNode.h" |
| 54 #include "modules/webaudio/ConstantSourceNode.h" | 55 #include "modules/webaudio/ConstantSourceNode.h" |
| 55 #include "modules/webaudio/ConvolverNode.h" | 56 #include "modules/webaudio/ConvolverNode.h" |
| 56 #include "modules/webaudio/DelayNode.h" | 57 #include "modules/webaudio/DelayNode.h" |
| 57 #include "modules/webaudio/DynamicsCompressorNode.h" | 58 #include "modules/webaudio/DynamicsCompressorNode.h" |
| 58 #include "modules/webaudio/GainNode.h" | 59 #include "modules/webaudio/GainNode.h" |
| 59 #include "modules/webaudio/IIRFilterNode.h" | 60 #include "modules/webaudio/IIRFilterNode.h" |
| 60 #include "modules/webaudio/MediaElementAudioSourceNode.h" | 61 #include "modules/webaudio/MediaElementAudioSourceNode.h" |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 145 DCHECK(!finished_source_handlers_.size()); | 146 DCHECK(!finished_source_handlers_.size()); |
| 146 DCHECK(!is_resolving_resume_promises_); | 147 DCHECK(!is_resolving_resume_promises_); |
| 147 DCHECK(!resume_resolvers_.size()); | 148 DCHECK(!resume_resolvers_.size()); |
| 148 DCHECK(!autoplay_status_.has_value()); | 149 DCHECK(!autoplay_status_.has_value()); |
| 149 } | 150 } |
| 150 | 151 |
| 151 void BaseAudioContext::Initialize() { | 152 void BaseAudioContext::Initialize() { |
| 152 if (IsDestinationInitialized()) | 153 if (IsDestinationInitialized()) |
| 153 return; | 154 return; |
| 154 | 155 |
| 156 // At this point, AudioWorklet should be initialized. Cache the reference to |
| 157 // it. |
| 158 worklet_messaging_proxy_ = static_cast<AudioWorkletMessagingProxy*>( |
| 159 GetAudioWorklet()->GetWorkletGlobalScopeProxy()); |
| 160 |
| 161 LOG(INFO) << "BaseAudioContext::Initialize AWMP_rendering_thread = " |
| 162 << worklet_messaging_proxy_->GetRenderingThread(); |
| 163 |
| 164 // ========================================================================= |
| 165 // WebThread* rendering_thread = |
| 166 // destination()->GetAudioDestinationHandler().GetRenderingThread(); |
| 167 |
| 168 // LOG(INFO) << "rendering_thread = " << rendering_thread; |
| 169 |
| 170 // // Reset the worklet thread. Not sure if this is okay. |
| 171 // AudioWorkletThread::SetSharedBackingThread(rendering_thread); |
| 172 |
| 173 // LOG(INFO) << "AudioWorkletThread = " |
| 174 // << WorkletThreadHolder<AudioWorkletThread>::GetInstance()->GetThr
ead(); |
| 175 |
| 176 // worklet_messaging_proxy_ = |
| 177 // static_cast<AudioWorkletMessagingProxy*>( |
| 178 // audio_worklet_->GetWorkletGlobalScopeProxy()); |
| 179 // LOG(INFO) << "worklet_messaging_proxy_ = " << worklet_messaging_proxy_; |
| 180 |
| 181 // worklet_messaging_proxy_->RequestProcessorDefinitionMap(); |
| 182 // ========================================================================= |
| 183 |
| 155 FFTFrame::Initialize(); | 184 FFTFrame::Initialize(); |
| 156 | 185 |
| 157 if (destination_node_) { | 186 if (destination_node_) { |
| 158 destination_node_->Handler().Initialize(); | 187 destination_node_->Handler().Initialize(); |
| 188 |
| 159 // The AudioParams in the listener need access to the destination node, so | 189 // The AudioParams in the listener need access to the destination node, so |
| 160 // only create the listener if the destination node exists. | 190 // only create the listener if the destination node exists. |
| 161 listener_ = AudioListener::Create(*this); | 191 listener_ = AudioListener::Create(*this); |
| 162 } | 192 } |
| 163 } | 193 } |
| 164 | 194 |
| 165 void BaseAudioContext::Clear() { | 195 void BaseAudioContext::Clear() { |
| 166 destination_node_.Clear(); | 196 destination_node_.Clear(); |
| 167 // The audio rendering thread is dead. Nobody will schedule AudioHandler | 197 // The audio rendering thread is dead. Nobody will schedule AudioHandler |
| 168 // deletion. Let's do it ourselves. | 198 // deletion. Let's do it ourselves. |
| (...skipping 740 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 909 visitor->Trace(destination_node_); | 939 visitor->Trace(destination_node_); |
| 910 visitor->Trace(listener_); | 940 visitor->Trace(listener_); |
| 911 visitor->Trace(active_source_nodes_); | 941 visitor->Trace(active_source_nodes_); |
| 912 visitor->Trace(resume_resolvers_); | 942 visitor->Trace(resume_resolvers_); |
| 913 visitor->Trace(decode_audio_resolvers_); | 943 visitor->Trace(decode_audio_resolvers_); |
| 914 | 944 |
| 915 visitor->Trace(periodic_wave_sine_); | 945 visitor->Trace(periodic_wave_sine_); |
| 916 visitor->Trace(periodic_wave_square_); | 946 visitor->Trace(periodic_wave_square_); |
| 917 visitor->Trace(periodic_wave_sawtooth_); | 947 visitor->Trace(periodic_wave_sawtooth_); |
| 918 visitor->Trace(periodic_wave_triangle_); | 948 visitor->Trace(periodic_wave_triangle_); |
| 949 |
| 919 EventTargetWithInlineData::Trace(visitor); | 950 EventTargetWithInlineData::Trace(visitor); |
| 920 SuspendableObject::Trace(visitor); | 951 SuspendableObject::Trace(visitor); |
| 921 } | 952 } |
| 922 | 953 |
| 923 SecurityOrigin* BaseAudioContext::GetSecurityOrigin() const { | 954 SecurityOrigin* BaseAudioContext::GetSecurityOrigin() const { |
| 924 if (GetExecutionContext()) | 955 if (GetExecutionContext()) |
| 925 return GetExecutionContext()->GetSecurityOrigin(); | 956 return GetExecutionContext()->GetSecurityOrigin(); |
| 926 | 957 |
| 927 return nullptr; | 958 return nullptr; |
| 928 } | 959 } |
| 929 | 960 |
| 961 AudioWorklet* BaseAudioContext::GetAudioWorklet() { |
| 962 return WindowAudioWorklet::audioWorklet( |
| 963 *(SuspendableObject::GetExecutionContext()->ExecutingWindow())); |
| 964 } |
| 965 |
| 966 AudioWorkletMessagingProxy* BaseAudioContext::GetWorkletMessagingProxy() { |
| 967 return worklet_messaging_proxy_; |
| 968 } |
| 969 |
| 970 WebThreadSupportingGC* BaseAudioContext::GetRenderingThread() { |
| 971 return worklet_messaging_proxy_->GetRenderingThread(); |
| 972 } |
| 973 |
| 930 } // namespace blink | 974 } // namespace blink |
| OLD | NEW |