Ehsan Akhgari
6d703a83b0
Bug 873553 - Part 10: Allow creating OfflineAudioContexts with arbitrary sampling rates; r=roc
...
--HG--
extra : rebase_source : 99758cbe05b83d34734e4df11f30ebbbd12811df
2013-05-24 13:11:32 -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
530a84ad34
Bug 875144 - Disallow creating AudioBuffers of 0 length; r=roc
2013-05-23 22:39:36 -04:00
Ehsan Akhgari
15180e2c8e
Bug 874024 - Allow creation of ScriptProcessorNodes with 0 input or output channels; r=roc
2013-05-23 08:26:21 -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
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
308783cb5d
Bug 870174 - Eliminate some lags and glitches caused by resampling in decodeAudioData and AudioBufferSourceNode.cpp, and make the code simpler too!; r=roc
...
X-Git-Commit-ID: d9ad3597291b9f656712dcdd15725afcc3882fa1
X-Mailer: git-send-email
--HG--
extra : rebase_source : 5f51d27aec53fd5e9ab868e799ce05ee2b7692d4
2013-05-13 00:17:00 -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
Ehsan Akhgari
7ea8b318c7
Bug 868485 - Part 1: Implement the mixToMono behavior for createBuffer; r=roc
2013-05-05 11:15:58 -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
Paul Adenot
6e76c43d3d
Bug 867203 - Part 2: Remove useless mPannerNode member in AudioBufferSourceNode. r=ehsan
...
--HG--
extra : rebase_source : dc94f66dbb4291226ab3f2c6c1ad8dc7aa4081e7
2013-05-02 17:04:49 +02:00
Ehsan Akhgari
96b8756891
Bug 867203 - Part 1: Unregister AudioBufferSourceNodes from PannerNodes when they die; r=padenot
...
--HG--
extra : rebase_source : 3c580a0feba39d01779a91e6bd10a10d98cb7114
2013-04-30 19:20:55 -04:00
Ed Morley
bbd462e94e
Backed out changeset 2938c2e1f7e7 (bug 867203) since part 1 had to be backed out for conflicts
2013-05-03 10:10:18 +01:00
Ed Morley
a98a3b019c
Backed out changeset b66017604bdd (bug 867203)
2013-05-03 09:19:43 +01:00
Paul Adenot
5bc11a52c7
Bug 867203 - Part 2: Remove useless mPannerNode member in AudioBufferSourceNode. r=ehsan
...
--HG--
extra : rebase_source : 1b4bb979fd34dabc470ed8e59a40deaff0fa61a5
2013-05-02 17:04:49 +02:00
Ehsan Akhgari
1e87638631
Bug 867203 - Part 1: Unregister AudioBufferSourceNodes from PannerNodes when they die; r=padenot
...
--HG--
extra : rebase_source : e4aca1ebb975e04e8821df0377ee652e18755ed7
2013-04-30 19:20:55 -04:00
Ehsan Akhgari
febaf4a1a5
Bug 867324 - Make it safe to stop source nodes when shutting down the AudioContext in case the nodes die right away; r=roc
...
(This time with the correct bug #)
2013-04-30 16:01:39 -04:00
Ehsan Akhgari
23d66661c0
Backed out changeset cace8e8e8556 because of the wrong bug number
2013-05-01 01:15:09 -04:00
Ehsan Akhgari
ffdb7c03e4
Bug 860958 - Make it safe to stop source nodes when shutting down the AudioContext in case the nodes die right away; r=roc
2013-04-30 16:01:39 -04:00
Andrew McCreight
6b31bf18b4
Bug 866570 - AudioContext should use its superclass's CC stuff. r=smaug
2013-04-29 06:04:59 -07:00
Ehsan Akhgari
6d602f4c09
Bug 866108 - Part 2: Do not assume that we can always get a script global from the context's window; r=padenot
2013-04-27 18:44:13 -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
Ehsan Akhgari
eb671321e6
Bug 834513 - Part 1: Refactor WebAudioDecodeJob::GetJSContext into AudioContext; r=roc
2013-04-14 14:18:43 -04:00
Ehsan Akhgari
97fdf4af59
Bug 853298 - Part 2: Make AudioNode an EventTarget; r=smaug
2013-04-12 11:28:33 -04:00
Ehsan Akhgari
2d790c190b
Bug 853298 - Part 1: Switch the ownership model of audio nodes to be based the cycle collector with wrapper caches; r=roc
...
Here is what this patch does:
* Got rid of the JSBindingFinalized stuff
* Made all nodes wrappercached
* Started to hold a self reference while the AudioBufferSourceNode is playing back
* Converted the input references to weak references
* Got rid of all of the SetProduceOwnOutput and UpdateOutputEnded logic
The nodes are now collected by the cycle collector which calls into
DisconnectFromGraph which drops the references to other nodes and destroys the
media stream. Note that most of the cycles that are now inherent in the
ownership model are between nodes and their AudioParams (that is, the cycles
not created by content.)
2013-04-14 21:52:55 -04:00
Paul Adenot
4acb2a4b45
Bug 853551 - Implement the doppler part of AudioPannerNode. r=ehsan
2013-04-11 14:47:57 +02:00
Ehsan Akhgari
7c71d168de
Bug 855990 - Part 1: Implement the DOM bindings to AnalyserNode; r=bzbarsky
2013-03-31 23:41:14 -04:00
Ehsan Akhgari
d94c38bba0
Backed out changeset 81bad314826a (bug 855990) because of build bustage
2013-04-01 18:41:30 -04:00
Ehsan Akhgari
f358d1c9b8
Bug 855990 - Part 1: Implement the DOM bindings to AnalyserNode; r=bzbarsky
2013-03-31 23:41:14 -04:00
Ehsan Akhgari
1b6b357049
Bug 854741 - Change the parameter to createDelay to be in seconds, not minutes; r=roc
2013-03-25 15:44:14 -04:00
Ehsan Akhgari
e9e1b63618
Bug 815492 - Pause Web Audio playback when entering the bfcache, and resume it when coming out of the bfcache; r=bzbarsky
2013-03-21 22:59:33 -04:00
Ms2ger
24bcddcf77
Bug 845374 - Part l: Stop including nsIDocument.h in nsContentUtils.h and fix two nits; r=khuey
2013-03-17 08:55:15 +01:00
Ehsan Akhgari
102d476f55
Bug 851338 - Implement AudioContext.currentTime; r=roc
2013-03-14 21:01:02 -04:00
Ehsan Akhgari
4b29362da4
Backed out changeset 6a23d4536079 (bug 851338) because of Android test failures
2013-03-15 01:26:22 -04:00
Ehsan Akhgari
0422ceeb14
Bug 851338 - Implement AudioContext.currentTime; r=roc
...
Landed on a CLOSED TREE, because I'm mad at X11!
2013-03-14 21:01:02 -04:00
Ehsan Akhgari
971d74a7cb
Backed out changeset a96fb85d42bf (bug 851338) because of Linux build failures
...
Landed on a CLOSED TREE
2013-03-14 23:53:27 -04:00
Ehsan Akhgari
bada1afd49
Bug 851338 - Implement AudioContext.currentTime; r=roc
...
--HG--
extra : rebase_source : 064da119e26ca15e361c003a4fabe7d3fe77e256
2013-03-14 21:01:02 -04:00
Masatoshi Kimura
7693df618d
Bug 848339 - Remove the vestigial boolean outparam from nsWrapperCache::WrapObject. r=bz
2013-03-12 08:03:47 +09:00
Ehsan Akhgari
c6ddf88782
Bug 849230 - Limit the range of sample rates accepted by AudioContext.createBuffer according to the spec; r=padenot
2013-03-08 12:29:00 -05:00
Robert O'Callahan
6d8b72a707
Bug 804387. Part 9: Update WebAudio implementation to integrate with AudioNodeStream. r=ehsan
...
This is a mega-patch that was too hard to disentangle. Here's what it does:
-- Create infrastructure around AudioNode::UpdateOutputEnded to detect
when a node can no longer produce any output. When that becomes true,
disconnect it from the AudioNode graph.
-- Have AudioNode implement JSBindingFinalized to use as input in
UpdateOutputEnded.
-- Give every AudioNode a MediaStream, and give every connection
a MediaInputPort.
-- Actually play the audio that reaches the AudioContext's destination node.
-- Force AudioContext to use the audio sample rate defined by MediaStreamGraph.
-- Fix AudioBufferSourceNode's start and stop methods to possibly throw and
take default 'when' parameters.
-- Create an AudioNodeStream for AudioBufferSourceNode and give it a
AudioBufferSourceNodeEngine that does what's needed. Set parameters for
this engine in the start() and stop() methods.
-- Create AudioBuffer::GetThreadSharedChannelsForRate, which is responsible
for stealing the contents of any JS array buffers, and bundling them up
into a thread-shared read-only buffer object which can be used as
part of an AudioChunk. This method will also be responsible for
resampling and caching as necessary.
--HG--
rename : content/media/MediaStreamGraph.cpp => content/media/MediaStreamGraphImpl.h
extra : rebase_source : 9fa0ec0efa304acd6513e427103d6339c78efa53
2013-02-05 12:07:25 +13:00