Commit Graph

96 Commits

Author SHA1 Message Date
Ehsan Akhgari
384530ea4e Bug 884368 - Part 1: Add a memory reporter for AudioContexts; r=roc,njn 2014-01-04 13:15:41 -05:00
Andrea Marchesini
eb960d6739 Bug 925594 - WebIDL enum for AudioChannel in HTMLMediaElement, r=ehsan, r=khuey 2013-10-28 17:08:14 -07:00
Carsten "Tomcat" Book
c225f46a40 Backed out changeset 5506e7033c85 (bug 925594) perma-orange mochitest test-failure on b2g-ics
--HG--
extra : transplant_source : %19E%9F_%BF%84%27%11%0D%DE%CA.%E7%09%9D%FD3%1A2U
2013-10-28 15:34:08 +01:00
Andrea Marchesini
60548554c9 Bug 925594 - WebIDL enum for AudioChannel in HTMLMediaElement, r=ehsan, r=khuey 2013-10-28 03:45:10 -07:00
Andrea Marchesini
848dcf3943 Bug 924870 - AudioContext.mozAudioChannel attribute, r=ehsan 2013-10-11 13:55:47 +02:00
Karl Tomlinson
c56ab2cb32 b=914033 use AudioContext::RegisterActiveNode() in AudioBufferSourceNode r=ehsan
Storing references on the AudioContext instead of on the AudioNodes will allow
the AudioContext to report them to the cycle collector until offline rendering
starts.

--HG--
extra : transplant_source : %13%87%97%9F%CD%D8V%16%D2%D4%B5%84D%0A%D6%02%9BNj%FC
2013-09-24 13:47:00 +12:00
Karl Tomlinson
98b52b4d99 b=914033 use AudioContext::RegisterActiveNode() in ScriptProcessorNode r=ehsan
Storing references on the AudioContext instead of on the AudioNodes will allow
the AudioContext to report them to the cycle collector until offline rendering
starts.

--HG--
extra : transplant_source : %CD%5Els2%7F/%DD%5E%07%08%FE%29%5B%98%95%F3%11G%E6
2013-09-24 13:46:30 +12:00
Karl Tomlinson
89cd46ef7d b=914033 use AudioContext::RegisterActiveNode() in OscillatorNode r=ehsan
Storing references on the AudioContext instead of on the AudioNodes will allow
the AudioContext to report them to the cycle collector until offline rendering
starts.

--HG--
extra : transplant_source : %81%83Hp%F6T%E7%9EA%B3%D0%5Dz%EA%1FYv%A2%23%ED
2013-09-24 13:45:41 +12:00
Karl Tomlinson
24edb394d3 b=916680 don't keep active AudioNodes alive from an AudioContext that has shut down r=ehsan
--HG--
extra : transplant_source : %20%3Fl%E0%D7R%7B_%E6%B0%C7%BB%3A%E7%21%9D%F1%A2%F4%1C
2013-09-18 13:10:30 +12:00
Karl Tomlinson
cf1704526c b=910171 add a general means to keep active nodes alive from the AudioContext r=ehsan
AudioNodes that keep playing or tail-time references need to have these
references cleared when an AudioContext has completed or is shut down by the
window.

Storing references on the AudioContext instead of on the AudioNodes will allow
the AudioContext to report playing references to the cycle collector until
offline rendering starts for bug 914033.  This is not necessary for tail-time
references, but it is tidier to use the same code for playing and tail-time
references.

--HG--
extra : transplant_source : %E0%F1%06%BFV%B6XI%9BX%8E%8D7%3FsU%8F%F9%14r
2013-09-17 11:53:40 +12:00
Karl Tomlinson
92875436fc b=916422 make OfflineAudioContext::StartRendering() throw if called more than once r=ehsan
--HG--
extra : transplant_source : %B6T%C0C%F0/%03%A3C%25%9B%EF%A8%C41%8E%86%E9%FCr
2013-09-16 17:14:45 +12:00
Karl Tomlinson
0a09f0a607 b=914030 shut down an AudioDestinationNode's graph on destruction, if not already r=ehsan
This means that the graph will be shutdown properly, even if the
AudioDestinationNode is unlinked before AudioContext::Shutdown() is called.

Making MediaStreamGraph::DestroyNonRealtimeInstance() idempotent also makes
AudioContext::Shutdown() idempotent.

--HG--
extra : transplant_source : jZ%86%C5%C2n%17%EF%C2%C0y%ED%14%0E%17_dt%0C%07
2013-09-10 17:05:22 +12:00
Nicholas Nethercote
d74157039d Bug 911020 - Introduce js/TypeDecls.h, which holds very commonly used type declarations from the JS engine. r=luke.
--HG--
extra : rebase_source : 008ef689989f93b46627b8be8608bdbc544ca3a2
2013-08-27 19:59:14 -07:00
Kyle Huey
bf31d78a83 Bug 903772: Part 3 - Refactor GlobalObject. r=peterv 2013-08-22 22:17:08 -07:00
Ralph Giles
b2a2d1d336 Bug 865253 - Part 4: Stop OscillatorNodes on context shutdown. r=ehsan
Like AudioBufferSourceNode and ScriptProcessorNode, OscillatorNode
holds a self-reference in mPlaying. Keep track of all osc nodes
in the AudioContext and explicitly stop them to make sure this
reference is dropped.
2013-08-19 11:57:00 -07:00
Ehsan Akhgari
d323ec880a Bug 865253 - Part 1: Implement the DOM bindings for OscillatorNode; r=roc 2013-08-19 11:53:00 -07:00
Ehsan Akhgari
1bb70455b6 Bug 905409 - Minimize the Web Audio #includes; r=roc 2013-08-15 15:44:14 -04:00
Nathan Froyd
149b32cc38 Bug 901615 - don't include BindingUtils.h in AudioContext.h; r=roc 2013-08-05 13:40:06 -04:00
Ehsan Akhgari
d6eeb2dccd Bug 855568 - Implement MediaElementAudioSourceNode
X-Git-Commit-ID: 52f1fcdd561e8214e6820a3f2478d9e8b9623430

--HG--
extra : rebase_source : c40cd0c7070dec9e0273093499228f13906f8fc5
2013-07-25 15:01:49 +12:00
Robert O'Callahan
306005fb0f Bug 856361. Part 6: Make MediaStreamAudioSourceNode keep its DOMMediaStream alive, and make the DOMMediaStream keep the MediaStreamAudioSourceNode alive. r=ehsan
--HG--
extra : rebase_source : 0e3b5108d8ced8b1f1f427c9fd4f87e97c46921d
2013-07-25 14:07:34 +12:00
secretrobotron
2c86644947 Bug 856361. Part 5: Implement MediaStreamAudioSourceNode. r=ehsan
--HG--
extra : rebase_source : 265f31edda31a2f749eacc568919304622446748
2013-07-24 23:29:39 +12:00
Boris Zbarsky
82ba945cef Bug 900898 part 2. Move to using Nullable<TypedArray> to represent possibly-null TypedArray structs. r=smaug 2013-08-05 13:40:01 -04:00
Ehsan Akhgari
fa95f63946 Bug 900341 - Shut down the decoder object for an AudioContext from a runnable; r=bent,roc 2013-08-02 12:07:17 -04:00
Ms2ger
5ae654e2b6 Bug 885170 - Remove nsINode::GetClassInfo(); r=peterv 2013-07-24 09:31:06 +02:00
Paul Adenot
f0b2dcf9d3 Bug 883591 - Don't allow creating a MediaStreamDestinationNode on an OfflineAudioContext. r=ehsan 2013-07-18 11:57:38 +02:00
Paul Adenot
6200078a6f Bug 891986 - Keep the source ArrayBuffer to a decodeAudioData call alive until the decoding is complete. r=mccr8,ehsan 2013-07-16 11:00:36 +02:00
Drew Willcoxon
086255d6ab Bug 879111 - Mute Web Audio when allowMedia is false on the docshell. r=ehsan 2013-07-03 17:44:32 -07:00
Ehsan Akhgari
556060ee93 Bug 865256 - Part 2: Rename WaveTable to PeriodicWave; r=roc
--HG--
rename : content/media/webaudio/WaveTable.cpp => content/media/webaudio/PeriodicWave.cpp
rename : content/media/webaudio/WaveTable.h => content/media/webaudio/PeriodicWave.h
rename : content/media/webaudio/test/test_waveTable.html => content/media/webaudio/test/test_periodicWave.html
rename : dom/webidl/WaveTable.webidl => dom/webidl/PeriodicWave.webidl
2013-06-19 18:24:26 -04:00
Josh Matthews
e9baa064b2 Bug 865257 - Implement MediaStreamAudioDestinationNode. r=ehsan,roc 2013-05-21 15:17:47 -04:00
Ehsan Akhgari
bcac308338 Bug 815643 - Part 1: Implement the DOM bindings for ConvolverNode; r=roc
--HG--
extra : rebase_source : 9f6853dcaeeac1f36aa8c2ee90991a7f0ea0b145
2013-06-10 16:07:55 -04:00
Paul Adenot
3aa35d131a Bug 865244 - Implement AudioContext.destination.maxChannelCount. r=ehsan 2013-06-10 19:32:28 +02:00
Ehsan Akhgari
d923161800 Bug 865256 - Part 1: Implement the DOM bindings for WaveTable; r=roc 2013-05-28 07:19:07 -04:00
Ehsan Akhgari
d0bcd953b7 Bug 873553 - Part 2: Teach each AudioNodeStream about its sampling rate, and store the value inside AudioContext; r=roc
--HG--
extra : rebase_source : beed6a6f965acdff307b7d4861d5f336c224d498
2013-05-24 13:09:29 -04:00
Ehsan Akhgari
39ee36fa36 Bug 873553 - Part 1: Remove AudioContext::GetRate; r=roc
This method is currently unused.

--HG--
extra : rebase_source : c6d5a9788e6cb03fc965852e5b97a72e05cfd3e2
2013-05-24 13:09:08 -04:00
Ehsan Akhgari
e5e74aa411 Bug 836599 - Part 12: Fix the lifetime management of the Web Audio graph in presence of OfflineAudioContexts; r=roc
Here we make the non-realtime graphs to go to sleep until they're shut down
from the main thread.  This allows us to use the common forced shutdown code
path in MediaStreamGraphImpl::RunThread.  We also need to delete the graph
object when the last message is dispatched to it.

In addition, we need to make sure that the AudioNodes also get released when
they're no longer needed.  To do this, we need for force the SelfReference of
AudioBufferSourceNodes to be released when the context is shut down, and also
trigger the destruction of the graph there.
2013-05-16 19:31:08 -04:00
Ehsan Akhgari
3922e3215b Bug 836599 - Part 11: Implement the processing of OfflineAudioContext; r=roc
We use a custom AudioNodeEngine for the destination nodes belonging to
OfflineAudioContexts, and there we record the rendered buffer.  Once the buffer
is full, we resample it if the sampling rate of the OfflineAudioContext is
different than the ideal sampling rate, and then we hand it off to the main
thread in order for the complete event to be dispatched.
2013-05-16 19:30:57 -04:00
Ehsan Akhgari
e27939f54d Bug 836599 - Part 10: Use the non-realtime MediaStreamGraph API and a custom destination node engine for OfflineAudioContext; r=roc
We offload most of the logic for OfflineAudioContext to the destination node,
since that's where the sample recording needs to happen, so doing this will
make the code simpler.
2013-05-16 19:30:42 -04:00
Ehsan Akhgari
a96e98f013 Bug 836599 - Part 9: Implement the DOM binding for OfflineAudioContext; r=roc 2013-05-16 19:30:41 -04:00
Ehsan Akhgari
a0b78d269a Bug 865251 - Implement WaveShaperNode; r=roc 2013-05-14 00:12:30 -04:00
Ehsan Akhgari
855b90e600 Bug 865248 - Implement ChannelMergerNode; r=roc
--HG--
rename : content/media/webaudio/ChannelSplitterNode.h => content/media/webaudio/ChannelMergerNode.h
2013-05-05 11:49:37 -04:00
Ehsan Akhgari
cb9c2a7a4c Bug 865247 - Part 4: Implement ChannelSplitterNode; r=roc 2013-05-05 11:49:13 -04:00
James Willcox
26839b9119 Bug 848652 - Implement ArrayBuffer version of AudioContext.createBuffer r=ehsan
--HG--
rename : content/media/webaudio/test/test_decodeAudioData.html => content/media/webaudio/test/test_mediaDecoding.html
2013-05-03 16:42:28 -04:00
Matt Brubeck
eb1363b174 Back out changeset 1a0f522cf110 (bug 848652) because of assertion failures in MediaBufferDecoder.cpp
CLOSED TREE

--HG--
rename : content/media/webaudio/test/test_mediaDecoding.html => content/media/webaudio/test/test_decodeAudioData.html
2013-05-03 15:18:06 -07:00
James Willcox
9b1a0377f4 # ebe5edd8c0ac367c043437a674d4200cf4525757
Bug 848652 - Implement ArrayBuffer version of AudioContext.createBuffer r=ehsan

--HG--
rename : content/media/webaudio/test/test_decodeAudioData.html => content/media/webaudio/test/test_mediaDecoding.html
extra : rebase_source : 7b0926091743dd6cd17a0adee9a6d3c5181dfa4d
2013-05-03 16:42:28 -04:00
Ehsan Akhgari
38f134b992 Bug 859600 - Make AudioContext an EventTarget; r=smaug 2013-04-25 00:28:39 -04:00
Boris Zbarsky
f75142b01d Bug 864727 part 5. Make all the WrapObject methods take a handle for the scope object. r=ms2ger 2013-04-25 12:29:54 -04:00
Ehsan Akhgari
eac64e1821 Bug 865548 - Convert the node arrays in AudioContext to hashsets; r=padenot 2013-04-24 23:32:41 -04:00
Ehsan Akhgari
febd320fc7 Bug 864351 - Hold on to a SelfReference for ScriptProcessorNodes to make sure that they won't go away prematurely if they're used as source nodes; r=padenot 2013-04-22 21:23:54 -04:00
Ehsan Akhgari
a09ccd781d Bug 864322 - Stop all audio buffer source nodes when the context is being shut down to prevent leaks in the graph; r=padenot
--HG--
extra : rebase_source : a64d445609ac9892d0fae36122fdc25e1437f400
2013-04-22 11:45:34 -04:00
Ehsan Akhgari
51c4aebe76 Bug 834513 - Part 3: Implement ScriptProcessorNode; r=roc 2013-04-13 21:37:04 -04:00