Commit Graph

333 Commits

Author SHA1 Message Date
Ehsan Akhgari
84fa792d7b Bug 866434 - Part 4: Add a test case for connecting an AudioNode to an AudioParam; r=roc 2013-05-01 23:13:43 -04:00
Ehsan Akhgari
1dcf3ec65a Bug 866434 - Part 3: Mix in the value generated by AudioNode inputs to AudioParams when getting their values during audio processing; r=roc 2013-05-01 23:12:59 -04:00
Ehsan Akhgari
85820ff13a Bug 866434 - Part 2: Give each AudioParam that is connected to an AudioNode an AudioNodeStream; r=roc
These MediaStreams are used as a way to down-mix the input AudioChunks, and
also as a way to get proper stream processing ordering.  The MediaStream for
the source AudioNode is an input to these streams, and these streams in turn
are inputs to the MediaStream that the AudioNode that owns the AudioParam owns.
This way, the Media Streams Graph processing code will order the streams so
that by the time that the MediaStream for a given node is processed, all of the
MediaStreams belonging to the AudioNode(s) feeding into the AudioParam have
been processed.

This has a tricky side-effect that those streams also being considered when
determining the input block for the AudioNodeStream belonging to the
AudioParam's owner AudioNode.  In order to fix that, we simply special case
those streams and make AudioNodeStream::ObtainInputBlock ignore them.
2013-05-01 21:02:31 -04:00
Ehsan Akhgari
caeeb616ee Bug 866434 - Part 1: Make it possible to connect an AudioNode to an AudioParam; r=roc 2013-05-01 18:59:02 -04:00
Ed Morley
6941e106a7 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
a1f0bc5292 Backed out changeset ad407adf94f2 (bug 867174) and friends for causing permaorange mochitest-2 on Android, disabling tests without using android.json and/or conflicting with the backouts on three CLOSED TREEs 2013-05-03 09:24:04 +01:00
Ed Morley
0c87398ccc Backed out changeset 9351bfd9d8c5 (bug 867174) 2013-05-03 09:20:05 +01:00
Ed Morley
2042650fd5 Backed out changeset 85ec6c943147 (bug 867876) 2013-05-03 09:20:01 +01:00
Ed Morley
4e31011251 Backed out changeset b342f87552a3 (bug 865642) 2013-05-03 09:19:58 +01:00
Ed Morley
03354ae3f1 Backed out changeset 3cadad39da66 (bug 868116) 2013-05-03 09:19:55 +01:00
Ed Morley
8eeceb52e2 Backed out changeset 93602e7a1551 (bug 865642) 2013-05-03 09:19:52 +01:00
Ed Morley
737faba1ab Backed out changeset da92f0c44e91 (bug 867980) 2013-05-03 09:19:49 +01:00
Ed Morley
3753e02750 Backed out changeset 6402e13dc9ba (bug 865642) 2013-05-03 09:19:46 +01:00
Ed Morley
a9f3ed873a Backed out changeset b66017604bdd (bug 867203) 2013-05-03 09:19:43 +01:00
Paul Adenot
37c08feeaa 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
1eee4090f6 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
Ryan VanderMeulen
fbab08d93b Bug 865642 - Disable more tests on Android. 2013-05-02 23:59:31 -04:00
Ryan VanderMeulen
b03746dc75 Bug 867980 - Disable test on Android due to frequent timeouts. 2013-05-02 21:25:38 -04:00
Ryan VanderMeulen
83f65e06ef Bug 865642 - Disable tests on Android due to frequent timeouts. 2013-05-02 21:24:17 -04:00
Ryan VanderMeulen
a0f47f11d0 Bug 868116 - Disable test on Android due to being perma-orange. 2013-05-02 15:39:40 -04:00
Ehsan Akhgari
81ad4113d5 Bug 865642 - Disable test_bug867174.html on Android 2013-05-02 12:03:49 -04:00
Oleg Romashin
ec83e8bc77 Bug 867964 - Build fail with DenormalDisabler.h:116: error: 'FLT_MIN' was not declared in this scope. r=ehsan
--HG--
extra : rebase_source : 7076471a442c3ce639b81259e824edd0c1a69eb0
2013-05-01 06:51:13 -07:00
Ehsan Akhgari
fedd33c510 Bug 867876 - Add some tests for the AudioParam automation events; r=roc 2013-05-02 01:13:27 -04:00
Ehsan Akhgari
f4ef30f478 Bug 867174 - Part 2: Protect against invalid sample rates a bit harder; r=padenot 2013-04-30 16:37:23 -04:00
Ehsan Akhgari
35b84ef38c Bug 867174 - Part 1: Deliver the correct channel count the to the resampler the first time that we see a buffer; r=padenot 2013-04-30 16:36:19 -04:00
Ehsan Akhgari
899863a74d Bug 867511 - Part 2: Use DynamicCompressorNode's input channel count when processing input; r=roc 2013-05-01 15:40:07 -04:00
Ehsan Akhgari
28407c41d6 Bug 867511 - Part 1: Use ScriptProcessorNode's input channel count when buffering input; r=roc 2013-05-01 15:10:45 -04:00
Ehsan Akhgari
589fed31a5 Bug 867588 - Remove support for implementing Web Audio nodes which are not connected to the MediaStreams backend; r=roc 2013-05-01 11:09:07 -04:00
Ehsan Akhgari
ad99fd0d6c Bug 865234 - Part 8: Add a test case for channel mixing rules; r=roc 2013-04-30 00:06:04 -04:00
Ehsan Akhgari
db6a4e8298 Bug 865234 - Part 2: Send the channel mixing information to the AudioNodeStream; r=roc 2013-04-27 19:25:23 -04:00
Ehsan Akhgari
13fd72e30d Bug 865234 - Part 1: Add DOM bindings for the channel mixing attributes; r=roc 2013-04-27 18:44:50 -04:00
Ehsan Akhgari
ac4719d170 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
ea0642fdbb Backed out changeset cace8e8e8556 because of the wrong bug number 2013-05-01 01:15:09 -04:00
Ehsan Akhgari
0517ae39d8 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
Paul Adenot
24fbfcefb9 Bug 867089 - Test for invalid playbackRate values on an AudioBufferSourceNode. r=ehsan
--HG--
extra : rebase_source : 215d7cbe21144a3ed2a0642e49f10c4f10d1d66a
2013-04-30 16:04:44 +02:00
Paul Adenot
ac5e6b15a5 Bug 867089 - Validate the playbackRate before using it. r=ehsan
--HG--
extra : rebase_source : 6e4065d4db69cb2d13f7ba5c05fbe9c74db03bf3
2013-04-30 16:04:05 +02:00
Ryan VanderMeulen
939a5e76b9 Backed out changesets 5447d49a2c6f and ab9c9d0819a2 (bug 867089) for mochitest failures.
CLOSED TREE
2013-04-30 11:16:55 -04:00
Paul Adenot
8d81faa16c Bug 867089 - Test for invalid playbackRate values on an AudioBufferSourceNode. r=ehsan 2013-04-30 16:04:44 +02:00
Paul Adenot
616d1f9c6c Bug 867089 - Validate the playbackRate before using it. r=ehsan 2013-04-30 16:04:05 +02:00
Andrew McCreight
870975029d Bug 866570 - test. r=smaug 2013-04-28 22:38:57 -07:00
Ehsan Akhgari
c08f31fb0c Bug 866737 - Unregister PannerNodes when they're unlinked by the cycle collector; r=padenot 2013-04-29 14:06:40 -04:00
Andrew McCreight
03a59e841e Bug 866570 - AudioContext should use its superclass's CC stuff. r=smaug 2013-04-29 06:04:59 -07:00
Ehsan Akhgari
13392450f0 Bug 866442 - Implement BiquadFilterNode.getFrequencyResponse; r=padenot 2013-04-27 16:29:48 -04:00
Ehsan Akhgari
506c3d8044 Bug 865246 - Part 5: Implement BiquadFilterNode's processing based on the Blink implementation; r=padenot 2013-04-26 17:49:09 -04:00
Ehsan Akhgari
b4e7ad956e Bug 865246 - Part 4: Send the changes in the type parameter to the stream; r=padenot 2013-04-26 18:23:52 -04:00
Ehsan Akhgari
3163802ff4 Bug 865246 - Part 3: Update the BiquadFilterNode IDL to match the current spec; r=padenot 2013-04-26 17:11:23 -04:00
Ehsan Akhgari
bfd9579893 Bug 865246 - Part 2: Add the Biquad processing implementation to the build system; r=padenot 2013-04-26 14:48:45 -04:00
Ehsan Akhgari
5615dfd14f Bug 865246 - Part 1: Import the Biquad processing implementation from Blink; r=padenot
The original code was copied from Blink SVN revision 148720.
2013-04-26 14:42:22 -04:00
Ehsan Akhgari
4c262b87b0 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
8558db626e Bug 866108 - Part 1: Don't attempt to dispatch the audioprocess event on a node which has been unlinked by the cycle collector; r=padenot 2013-04-27 15:04:10 -04:00
Ehsan Akhgari
f9764c2d00 Backed out changeset 7c244b521e54 (the investigation patch for bug 866079) 2013-04-27 15:07:29 -04:00
Ehsan Akhgari
0c3c1d6ffa Investigation for bug 866079 - Make the Command class live in the global scope in the hopes of getting better stack traces 2013-04-26 12:02:19 -04:00
Ehsan Akhgari
a254b1fcac Bug 865550 - Unlink AudioBufferSourceNode members before AudioNode; r=mccr8 2013-04-25 16:52:52 -04:00
Ehsan Akhgari
eabaf3e71e Bug 859600 - Make AudioContext an EventTarget; r=smaug 2013-04-25 00:28:39 -04:00
Ehsan Akhgari
ce979bfbde Bug 865650 - Ensure that looping will only happen if the start offset is less than the end offset; r=padenot
--HG--
extra : rebase_source : 3de31185083df174f7b6e823d1a135aee39c211d
2013-04-25 09:34:47 -04:00
Boris Zbarsky
b834439797 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
8f22491495 Bug 865532 - Don't attempt to stop an AudioBufferSourceNode that doesn't have a context; r=padenot 2013-04-24 22:24:25 -04:00
Ehsan Akhgari
6c274aa699 Bug 865548 - Convert the node arrays in AudioContext to hashsets; r=padenot 2013-04-24 23:32:41 -04:00
Ehsan Akhgari
9773a06f1b Bug 865004 - Disconnect the AudioNode from the graph before deleting it; r=bzbarsky 2013-04-24 16:57:07 -04:00
Ehsan Akhgari
3aafed5c8f Backed out changeset 089871cdaf1e (bug 865004) because of crashtest leaks on a CLOSED TREE 2013-04-24 16:29:08 -04:00
Ehsan Akhgari
bae9f2a9a4 Bug 865004 - Disconnect the AudioNode from the graph before deleting it; r=bzbarsky 2013-04-24 15:30:19 -04:00
Ehsan Akhgari
ad6c0922c2 Bug 864709 - Part 2: Protect accesses to AudioNodeEngine::mNode using a lock; r=padenot 2013-04-24 12:13:45 -04:00
Paul Adenot
87427692d3 Bug 864164 followup - Also send the params to the stream when setting the buffer. r=ehsan 2013-04-23 17:42:40 +02:00
Ehsan Akhgari
f4ede88cdf Bug 864164 - Part 2: Send the AudioBufferSourceNode buffer parameter changes to the stream; r=padenot 2013-04-22 17:01:22 -04:00
Ehsan Akhgari
ae2e659fa6 Bug 864613 - Take the dynamics compressor node's input chunk volume into account; r=padenot
--HG--
extra : rebase_source : d065091c344325b9c42c26307074d20ad81e0cd0
2013-04-22 22:16:42 -04:00
Ehsan Akhgari
12e6ca7aff Bug 864609 - Take the panner node's input chunk volume into account; r=padenot
--HG--
extra : rebase_source : 4ccebeb02cd8a52721b5bff5f5c77f9a7201312b
2013-04-22 22:07:49 -04:00
Ehsan Akhgari
5d8d818bac Bug 864606 - Take the gain node's input chunk volume into account when we have automation events for changing the gain value; r=padenot
--HG--
extra : rebase_source : 0d8c538a22ba764559a30c09e436eaaf38ac63fd
2013-04-22 22:05:16 -04:00
Ehsan Akhgari
1275a7058a Bug 864605 - Take the input chunk's volume into account in the nodes that buffer their input; r=padenot
--HG--
extra : rebase_source : 7590e20cbb1ac347f3988aaa5dbc586012747221
2013-04-22 21:59:51 -04:00
Ehsan Akhgari
4393d3e222 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
5ddf6abea4 Bug 834513 follow-up: Mode AudioNode::DestroyMediaStream into the cpp file, and inline UnbindFromEngine 2013-04-22 22:45:37 -04:00
Ehsan Akhgari
4b6164232a Bug 864091 - Part 3: Implement DynamicsCompressorNode's processing based on the Blink's implementation; r=padenot 2013-04-21 16:13:59 -04:00
Ehsan Akhgari
bc6410c3a7 Bug 864091 - Part 2: Add the Blink Dynamics Compressor implementation to the build system; r=padenot,glandium 2013-04-20 23:12:00 -04:00
Ehsan Akhgari
6d48241e2c Bug 864091 - Part 1: Import the Dynamics Compressor implementation from Blink; r=padenot
The original code was copied from Blink SVN revision 148720.
2013-04-20 19:46:24 -04:00
Ehsan Akhgari
d968757da5 Bug 864164 - Part 1: Send the AudioBufferSourceNode loop parameter changes to the stream; r=padenot 2013-04-22 00:22:33 -04:00
Ehsan Akhgari
95796cdc83 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
7fffefb66d Bug 864086 - Simplify AudioNode::DestroyMediaStream callers; r=padenot 2013-04-22 08:14:10 -04:00
Ehsan Akhgari
e1e2e74fd1 Bug 864083 - Cleanup AudioBuffer::GetThreadSharedChannelsForRate; r=padenot 2013-04-22 08:12:45 -04:00
Ryan VanderMeulen
462cd28766 Backed out changesets 3b8fdfefcf5e and ab61f99fb584 (bug 864083) for bustage on a CLOSED TREE. 2013-04-22 08:58:32 -04:00
Ehsan Akhgari
ab040a1f23 Bug 864086 - Simplify AudioNode::DestroyMediaStream callers; r=padenot 2013-04-22 08:14:10 -04:00
Ehsan Akhgari
15db25666d Bug 864083 - Cleanup AudioBuffer::GetThreadSharedChannelsForRate; r=padenot 2013-04-22 08:12:45 -04:00
Ehsan Akhgari
2ab3cbac5a Bug 834513 - Part 4: Add tests for ScriptProcessorNode, and also test AudioBufferSourceNode using it; r=roc 2013-04-20 11:17:58 -04:00
Ehsan Akhgari
21b6d807c6 Bug 834513 - Part 3: Implement ScriptProcessorNode; r=roc 2013-04-13 21:37:04 -04:00
Ehsan Akhgari
82a95502c9 Bug 834513 - Part 2: Add an AudioNode weak pointer to the AudioNodeEngine class; r=roc 2013-04-20 12:16:28 -04:00
Mike Shal
df7deac25b Bug 846634 - Part 2: Move EXPORTS to moz.build; r=joey 2013-04-16 15:24:43 -04:00
Ehsan Akhgari
bf197ee0b6 Bug 834513 - Part 1: Refactor WebAudioDecodeJob::GetJSContext into AudioContext; r=roc 2013-04-14 14:18:43 -04:00
Ehsan Akhgari
ed2b473e45 Bug 854319 - Part 2: Always use a ref pointer when dealing with MediaResource objects; r=cpearce 2013-04-15 20:08:03 -04:00
Ehsan Akhgari
bb3fe4cc6f Bug 854319 - Part 1: Call BeginDecoding before OnDecodeThreadStart; r=cpearce
This is what WMFReader::OnDecodeThreadStart() expects.
2013-04-15 19:49:35 -04:00
Ehsan Akhgari
24a63e7a4e Bug 853298 - Part 2: Make AudioNode an EventTarget; r=smaug 2013-04-12 11:28:33 -04:00
Ehsan Akhgari
21fef81a58 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
1804f67723 Bug 853551 - Implement the doppler part of AudioPannerNode. r=ehsan 2013-04-11 14:47:57 +02:00
Ehsan Akhgari
c2ff4fe5ac Bug 859595 - Implement the alternate names for AudioBufferSourceNode, AudioContext and AudioParam; r=bzbarsky
Let this be mentioned in our code base history that I wrote this patch
with tears in my eyes.  This is the saddest thing I've ever had to do to
Gecko. :(

--HG--
extra : rebase_source : 798e5b1dc8af51a399189dd05bc59ac077670820
2013-04-11 22:08:05 -04:00
Paul Adenot
e699f7917a Bug 854336 - Implement the playbackRate property of AudioBufferSourceNode. r=ehsan 2013-04-09 14:47:42 +02:00
Paul Adenot
1e2f674242 Bug 852366 - Don't resample on the main thread. r=ehsan,roc 2013-03-18 20:54:32 -04:00
Ehsan Akhgari
30b359b669 Backed out changeset 3ae03ecf8b5e (bug 852366) because of mochitest-1 crashes
Landed on a CLOSED TREE
2013-04-09 11:29:15 -04:00
Ehsan Akhgari
401ac0136b Backed out changeset 92c2f24cb6ff (bug 854336) because of mochitest-1 crashes 2013-04-09 11:28:42 -04:00
Ehsan Akhgari
a2348a1115 Backed out changeset 9c080ffa640f (bug 853551) because of mochitest-1 crashes 2013-04-09 11:28:38 -04:00
Paul Adenot
1e8caad6cf Bug 853551 - Implement the doppler part of AudioPannerNode. r=ehsan 2013-04-09 14:47:42 +02:00
Paul Adenot
60af723f4c Bug 854336 - Implement the playbackRate property of AudioBufferSourceNode. r=ehsan 2013-04-09 14:47:42 +02:00
Paul Adenot
a1ad1c8920 Bug 852366 - Don't resample on the main thread. r=ehsan,roc 2013-03-18 20:54:32 -04:00
Ehsan Akhgari
5fda9c3404 Bug 859597 - Narrow down the acceptable range for AnalyserNode.fftSize; r=padenot 2013-04-08 21:26:08 -04:00