Commit Graph

73 Commits

Author SHA1 Message Date
James Willcox
8a604ee1de 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
4a49b819a3 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
ef70532696 # 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
06a84c0e3f 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
c9ce04d576 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
8d30e59ef8 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
d1a7b75684 Backed out changeset b66017604bdd (bug 867203) 2013-05-03 09:19:43 +01:00
Paul Adenot
871e1f91aa 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
33a92bcb9b 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
e0e22b93e7 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
2a2ec9bfc6 Backed out changeset cace8e8e8556 because of the wrong bug number 2013-05-01 01:15:09 -04:00
Ehsan Akhgari
6ce542d0e2 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
e753a9da50 Bug 866570 - AudioContext should use its superclass's CC stuff. r=smaug 2013-04-29 06:04:59 -07:00
Ehsan Akhgari
602c957366 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
f536477e52 Bug 859600 - Make AudioContext an EventTarget; r=smaug 2013-04-25 00:28:39 -04:00
Boris Zbarsky
9c1973b5d2 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
6aacd34ff0 Bug 865548 - Convert the node arrays in AudioContext to hashsets; r=padenot 2013-04-24 23:32:41 -04:00
Ehsan Akhgari
6b1729abc9 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
7b1d390d73 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
e6ef206ecb Bug 834513 - Part 3: Implement ScriptProcessorNode; r=roc 2013-04-13 21:37:04 -04:00
Ehsan Akhgari
4a146e0379 Bug 834513 - Part 1: Refactor WebAudioDecodeJob::GetJSContext into AudioContext; r=roc 2013-04-14 14:18:43 -04:00
Ehsan Akhgari
848d2fc00a Bug 853298 - Part 2: Make AudioNode an EventTarget; r=smaug 2013-04-12 11:28:33 -04:00
Ehsan Akhgari
ff2971de14 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
697026ca9e Bug 853551 - Implement the doppler part of AudioPannerNode. r=ehsan 2013-04-11 14:47:57 +02:00
Ehsan Akhgari
28ce05cf89 Bug 855990 - Part 1: Implement the DOM bindings to AnalyserNode; r=bzbarsky 2013-03-31 23:41:14 -04:00
Ehsan Akhgari
99e9635eee Backed out changeset 81bad314826a (bug 855990) because of build bustage 2013-04-01 18:41:30 -04:00
Ehsan Akhgari
f89c6909de Bug 855990 - Part 1: Implement the DOM bindings to AnalyserNode; r=bzbarsky 2013-03-31 23:41:14 -04:00
Ehsan Akhgari
a01b9d645e 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
a2906ca105 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
a2173990cc 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
da293697f1 Bug 851338 - Implement AudioContext.currentTime; r=roc 2013-03-14 21:01:02 -04:00
Ehsan Akhgari
636ad2fd16 Backed out changeset 6a23d4536079 (bug 851338) because of Android test failures 2013-03-15 01:26:22 -04:00
Ehsan Akhgari
4025fd2d19 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
b68208c0b9 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
30769cc4e2 Bug 851338 - Implement AudioContext.currentTime; r=roc
--HG--
extra : rebase_source : 064da119e26ca15e361c003a4fabe7d3fe77e256
2013-03-14 21:01:02 -04:00
Masatoshi Kimura
e5e5a90814 Bug 848339 - Remove the vestigial boolean outparam from nsWrapperCache::WrapObject. r=bz 2013-03-12 08:03:47 +09:00
Ehsan Akhgari
422eb58946 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
088271f880 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
Ehsan Akhgari
631b308649 Backed out 14 changesets (bug 804387) because of Android M2 crashes
Backed out changeset 80e8530f06ea (bug 804387)
Backed out changeset 3de2271ad47f (bug 804387)
Backed out changeset 00f86870931c (bug 804837)
Backed out changeset 0e3f20927c50 (bug 804387)
Backed out changeset e6ef90038007 (bug 804387)
Backed out changeset 0ad6f67a95f9 (bug 804387)
Backed out changeset d0772aba503c (bug 804387)
Backed out changeset 5477b87ff03e (bug 804387)
Backed out changeset 1d7ec5adc49f (bug 804387)
Backed out changeset 11f4d740cd6c (bug 804387)
Backed out changeset e6254d8997ab (bug 804387)
Backed out changeset 372322f3264d (bug 804387)
Backed out changeset 53d5ed687612 (bug 804387)
Backed out changeset 000b88ac40a7 (bug 804387)
2013-02-05 01:29:28 -05:00
Robert O'Callahan
45c5e4a1ad Bug 804837. 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.
2013-02-05 12:07:25 +13:00
Ehsan Akhgari
1090ae9f96 Bug 792263 - Implement decodeAudioData; r=bzbarsky,cpearce,padenot 2013-02-01 17:13:23 -05:00
Peter Van der Beken
b9d2ae906f Fix for bug 816088 (webIDL bindings try to extract nsISupports from the global object in static properties in workers). r=bz.
--HG--
extra : rebase_source : 5668d9e01bff0fe7831d98018428856e5940a620
2012-12-03 17:07:49 +01:00
Ed Morley
bc0702d0d7 Backout f3c145bd1dd2 & 5075690572a9 for OS X startup failures 2013-01-28 11:08:21 +00:00
Peter Van der Beken
b46afdef94 Fix for bug 816088 (webIDL bindings try to extract nsISupports from the global object in static properties in workers). r=bz.
--HG--
extra : rebase_source : 68e5630591f6209e2af9c5cd2321fed8edd3de24
2012-12-03 17:07:49 +01:00
Ehsan Akhgari
16e89b722a Bug 833631 - Unprefix mozAudioContext; r=roc
--HG--
extra : rebase_source : 3c477a97ea842a806f6fad6f5c3a81d6e50b27c3
2013-01-22 20:12:21 -05:00
Ehsan Akhgari
f2c331d256 Bug 816828 - Implement AudioContext.sampleRate; r=bzbarsky 2012-11-29 22:31:39 -05:00
Andrew McCreight
312e1c18f0 Bug 814752 - Make NS_IMPL_CYCLE_COLLECTION_UNLINK_PRESERVED_WRAPPER work for native CC classes. r=smaug,ehsan 2012-11-27 15:08:22 -08:00
Ehsan Akhgari
8ed79688df Bug 814789 - Tie the life-time of the AudioContext to the life-time of the document owning it; r=bzbarsky 2012-11-23 18:33:41 -05:00
Daniel Holbert
b6dbce0c4e Backed out changeset 704c91d3e7fa (Bug 814789) because of mac build-bustage 2012-11-26 20:34:10 -08:00
Ehsan Akhgari
993cf8162c Bug 814789 - Tie the life-time of the AudioContext to the life-time of the document owning it; r=bzbarsky 2012-11-23 18:33:41 -05:00