Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(40)

Side by Side Diff: third_party/WebKit/Source/modules/webaudio/AudioNode.h

Issue 2501863003: Support for AudioContextOptions latencyHint. (Closed)
Patch Set: Updates based on reviewer comments. Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
160 unsigned numberOfOutputs() const { return m_outputs.size(); } 160 unsigned numberOfOutputs() const { return m_outputs.size(); }
161 161
162 // Number of output channels. This only matters for ScriptProcessorNodes. 162 // Number of output channels. This only matters for ScriptProcessorNodes.
163 virtual unsigned numberOfOutputChannels() const; 163 virtual unsigned numberOfOutputChannels() const;
164 164
165 // The argument must be less than numberOfInputs(). 165 // The argument must be less than numberOfInputs().
166 AudioNodeInput& input(unsigned); 166 AudioNodeInput& input(unsigned);
167 // The argument must be less than numberOfOutputs(). 167 // The argument must be less than numberOfOutputs().
168 AudioNodeOutput& output(unsigned); 168 AudioNodeOutput& output(unsigned);
169 169
170 virtual float sampleRate() const { return m_sampleRate; }
171
172 // processIfNecessary() is called by our output(s) when the rendering graph 170 // processIfNecessary() is called by our output(s) when the rendering graph
173 // needs this AudioNode to process. This method ensures that the AudioNode 171 // needs this AudioNode to process. This method ensures that the AudioNode
174 // will only process once per rendering time quantum even if it's called 172 // will only process once per rendering time quantum even if it's called
175 // repeatedly. This handles the case of "fanout" where an output is connected 173 // repeatedly. This handles the case of "fanout" where an output is connected
176 // to multiple AudioNode inputs. Called from context's audio thread. 174 // to multiple AudioNode inputs. Called from context's audio thread.
177 void processIfNecessary(size_t framesToProcess); 175 void processIfNecessary(size_t framesToProcess);
178 176
179 // Called when a new connection has been made to one of our inputs or the 177 // Called when a new connection has been made to one of our inputs or the
180 // connection number of channels has changed. This potentially gives us 178 // connection number of channels has changed. This potentially gives us
181 // enough information to perform a lazy initialization or, if necessary, a 179 // enough information to perform a lazy initialization or, if necessary, a
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
255 // m_node directly, use node() instead. 253 // m_node directly, use node() instead.
256 // See http://crbug.com/404527 for the detail. 254 // See http://crbug.com/404527 for the detail.
257 UntracedMember<AudioNode> m_node; 255 UntracedMember<AudioNode> m_node;
258 256
259 // This untraced member is safe because this is cleared for all of live 257 // This untraced member is safe because this is cleared for all of live
260 // AudioHandlers when the BaseAudioContext dies. Do not access m_context 258 // AudioHandlers when the BaseAudioContext dies. Do not access m_context
261 // directly, use context() instead. 259 // directly, use context() instead.
262 // See http://crbug.com/404527 for the detail. 260 // See http://crbug.com/404527 for the detail.
263 UntracedMember<BaseAudioContext> m_context; 261 UntracedMember<BaseAudioContext> m_context;
264 262
265 float m_sampleRate;
266 Vector<std::unique_ptr<AudioNodeInput>> m_inputs; 263 Vector<std::unique_ptr<AudioNodeInput>> m_inputs;
267 Vector<std::unique_ptr<AudioNodeOutput>> m_outputs; 264 Vector<std::unique_ptr<AudioNodeOutput>> m_outputs;
268 265
269 double m_lastProcessingTime; 266 double m_lastProcessingTime;
270 double m_lastNonSilentTime; 267 double m_lastNonSilentTime;
271 268
272 volatile int m_connectionRefCount; 269 volatile int m_connectionRefCount;
273 270
274 bool m_isDisabled; 271 bool m_isDisabled;
275 272
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
365 HeapVector<Member<HeapHashSet<Member<AudioNode>>>> m_connectedNodes; 362 HeapVector<Member<HeapHashSet<Member<AudioNode>>>> m_connectedNodes;
366 // Represents audio node graph with Oilpan references. N-th HeapHashSet 363 // Represents audio node graph with Oilpan references. N-th HeapHashSet
367 // represents a set of AudioParam objects connected to this AudioNode's N-th 364 // represents a set of AudioParam objects connected to this AudioNode's N-th
368 // output. 365 // output.
369 HeapVector<Member<HeapHashSet<Member<AudioParam>>>> m_connectedParams; 366 HeapVector<Member<HeapHashSet<Member<AudioParam>>>> m_connectedParams;
370 }; 367 };
371 368
372 } // namespace blink 369 } // namespace blink
373 370
374 #endif // AudioNode_h 371 #endif // AudioNode_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698