Commit Graph

629 Commits

Author SHA1 Message Date
Bobby Holley
ba05c93769 Bug 868130 - Include nsCxPusher.h everywhere we need it, and stop including it from nsContentUtils.h. r=gabor 2013-05-22 10:05:26 -06:00
Ehsan Akhgari
8225f28a47 Bug 874869 - Disallow setting AudioNode.channelCount to zero; r=roc 2013-05-22 11:30:31 -04:00
Ehsan Akhgari
e86b84cf6f Bug 873335 - Unlink ScriptProcessorNode members before AudioNode; r=mccr8 2013-05-21 14:54:23 -04:00
Ehsan Akhgari
8e8fe6fed9 Bug 836599 - Part 14: Run most of the existing Web Audio tests using OfflineAudioContext as well as AudioContext; r=roc
This helps us get a decent amount of test coverage on OfflineAudioContext in
both the existing tests and the future tests.
2013-05-16 19:31:08 -04:00
Ehsan Akhgari
f08b3af866 Bug 836599 - Part 13: Add a unit test for OfflineAudioContext; r=roc 2013-05-16 19:31: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
82bc5dd180 Bug 872635 - Drop the DelayNode's self-reference right on time, to make sure that DelayNodes don't leak with OfflineAudioContexts; r=roc 2013-05-15 20:51:47 -04:00
Paul Adenot
3158b60d85 Bug 867104 - Add a crashtest. r=ehsan 2013-05-14 14:14:42 +02:00
Paul Adenot
e1cda4145a Bug 867104 - r=ehsan 2013-05-14 14:14:42 +02:00
Ehsan Akhgari
a0b78d269a Bug 865251 - Implement WaveShaperNode; r=roc 2013-05-14 00:12:30 -04:00
Ed Morley
2710e5d6a9 Backed out changeset 496846474ed3 (bug 864774) 2013-05-13 10:05:49 +01:00
Ehsan Akhgari
1ad083a454 Bug 871201 - Part 2: Implement AudioBufferSourceNode.gain; r=roc
X-Git-Commit-ID: db8923b372db098aa7a5dc1cbf42674310b61aef
X-Mailer: git-send-email

--HG--
rename : content/media/webaudio/test/test_audioBufferSourceNode.html => content/media/webaudio/test/test_audioBufferSourceNodeGain.html
rename : content/media/webaudio/test/test_audioBufferSourceNode.html => content/media/webaudio/test/test_delayNodeWithGainAlternate.html
extra : rebase_source : 2cc9259229209fa926970e78ddfc2ef5765f4ad5
2013-05-13 00:17:55 -04:00
Ehsan Akhgari
0fe36724de Bug 871201 - Part 1: Refactor the gain processing logic of GainNodeEngine into a reusable base class; r=roc
X-Git-Commit-ID: e3c9ccaf984c74bb041e2a35fb092dd91e643555
X-Mailer: git-send-email

--HG--
extra : rebase_source : c26ad3b5953f15b599baa9fea0cf66580f2a3262
2013-05-13 00:17:36 -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
Mike Shal
d2b29f4e87 Bug 864774 - Part 2: Move CPPSRCS to moz.build as CPP_SOURCES; r=joey
From 140b9201e3b5d2d8efe7af286d279c2411dbc197 Mon Sep 17 00:00:00 2001
2013-04-23 17:54:15 -04:00
Nathan Froyd
dbba9baf39 Bug 858131 - rewrite FloatingPoint.h to be C++-only instead of C-compatible C++; r+original-author=Waldo 2013-05-01 16:55:13 -04:00
Ehsan Akhgari
3050474ec2 Bug 870167 - Create a mini test framework for Web Audio; r=roc
--HG--
rename : content/media/webaudio/test/test_audioBufferSourceNodeLoop.html => content/media/webaudio/test/test_audioBufferSourceNodeEnded.html
extra : rebase_source : 787d1d19b6463906ff9db8cbfb5e61d76a2ab667
2013-05-09 08:45:35 -04:00
Ehsan Akhgari
f5323eda03 Bug 869682 - Make sure that GainNode does not modify its input buffer; r=roc 2013-05-07 23:32:23 -04:00
Ehsan Akhgari
65d65fc57c Bug 869224 - Use the same algorithm to compute the buffer start/end time and to convert AudioParam time values to ticks; r=roc 2013-05-07 23:31:15 -04:00
Nathan Froyd
9fd3f3a56a Bug 869073 - make WebIDL enums enum classes instead of plain enums; r=bz 2013-05-06 15:28:13 -04:00
Ehsan Akhgari
a841e607de Bug 865242 - Remove support for soundfield panning from PannerNode; r=padenot 2013-05-07 08:27:08 -04:00
Ehsan Akhgari
d44761d8d4 Bug 865231 - Implement AudioParam.setValueCurveAtTime; r=roc 2013-05-06 19:50:45 -04:00
Ehsan Akhgari
fc836625cc Bug 868864 - Correctly scale the time values of AudioParam when converting it to ticks, and correctly calculate SetTargetAtTime event values the first time they're encountered; r=roc 2013-05-06 14:59:43 -04:00
Ehsan Akhgari
b5688423b2 Bug 868855 - Respect the input's volume in ChannelMergerNode and ChannelSplitterNode; r=roc 2013-05-06 14:30:47 -04:00
Ehsan Akhgari
566ab60c82 Bug 865233 - Implement the ended event for AudioBufferSourceNode; r=roc 2013-05-06 14:22:01 -04:00
Ehsan Akhgari
fefedbf170 Bug 867174 - Part 2: Protect against invalid sample rates a bit harder; r=padenot 2013-05-06 11:34:03 -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
cea007a9a4 Bug 865247 - Part 3: Add a ProduceAudioBlock overload to handle simultaneous processing of multiple input and output ports; r=roc
The ObtainInputBlock API is also changed to create an input block for one input
block at a time.  An array of these input blocks is then sent to
ProduceAudioBlock for processing, which generates an array of AudioChunks as
output.

Backwards compatibilty with existing engines is achieved by keeping the
existing ProduceAudioBlock API for use with engines with only a maximum of one
input and output port.
2013-05-05 11:48:45 -04:00
Ehsan Akhgari
1f4e097965 Bug 865247 - Part 2: Tell MediaInputPorts about their input and output ports; r=roc 2013-05-05 11:47:59 -04:00
Ehsan Akhgari
a8711101f3 Bug 868485 - Part 2: Add test cases for createBuffer with mono downmixing; r=roc 2013-05-05 11:16:23 -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
Ehsan Akhgari
8e7457501a Bug 868776 - Fix rooting hazards in Web Audio code; r=till 2013-05-04 17:40:20 -04:00
Yuan Pengfei
8cab2eb577 Bug 868716 - Fix placement of #include <float.h>; r=ehsan 2013-05-04 11:35:35 -04:00
Chris Pearce
16011bf3ac Bug 847267 - Use DXVA2 to offload H.264 decoding to the GPU on Windows. r=Bas 2013-05-04 22:12:41 +12: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
Ehsan Akhgari
79f926cc63 Bug 868409 - ScriptProcessorNode's playing ref should remain active as long as there are outstanding connections; r=roc 2013-05-03 10:59:41 -04: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
e6e5e83119 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
78292ca533 Bug 867876 - Add some tests for the AudioParam automation events; r=roc 2013-05-02 01:13:27 -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
Ehsan Akhgari
253a6df0e6 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
e0262ff6ca 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
670b091738 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
51eb2bd838 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
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
e1d81087be 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
d320d9c131 Backed out changeset 9351bfd9d8c5 (bug 867174) 2013-05-03 09:20:05 +01:00
Ed Morley
b8d16c44dc Backed out changeset 85ec6c943147 (bug 867876) 2013-05-03 09:20:01 +01:00
Ed Morley
2976e17cdf Backed out changeset b342f87552a3 (bug 865642) 2013-05-03 09:19:58 +01:00
Ed Morley
ae15f3e346 Backed out changeset 3cadad39da66 (bug 868116) 2013-05-03 09:19:55 +01:00
Ed Morley
ca5a276d35 Backed out changeset 93602e7a1551 (bug 865642) 2013-05-03 09:19:52 +01:00
Ed Morley
58401e4f7b Backed out changeset da92f0c44e91 (bug 867980) 2013-05-03 09:19:49 +01:00
Ed Morley
cd69604be9 Backed out changeset 6402e13dc9ba (bug 865642) 2013-05-03 09:19:46 +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
Ryan VanderMeulen
ae1d5cb13b Bug 865642 - Disable more tests on Android. 2013-05-02 23:59:31 -04:00
Ryan VanderMeulen
b239f29690 Bug 867980 - Disable test on Android due to frequent timeouts. 2013-05-02 21:25:38 -04:00
Ryan VanderMeulen
3a29454d25 Bug 865642 - Disable tests on Android due to frequent timeouts. 2013-05-02 21:24:17 -04:00
Ryan VanderMeulen
d6c5ed3116 Bug 868116 - Disable test on Android due to being perma-orange. 2013-05-02 15:39:40 -04:00
Ehsan Akhgari
c4e4934952 Bug 865642 - Disable test_bug867174.html on Android 2013-05-02 12:03:49 -04:00
Oleg Romashin
c1b6457306 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
072e2f550f Bug 867876 - Add some tests for the AudioParam automation events; r=roc 2013-05-02 01:13:27 -04:00
Ehsan Akhgari
36e2c4b257 Bug 867174 - Part 2: Protect against invalid sample rates a bit harder; r=padenot 2013-04-30 16:37:23 -04:00
Ehsan Akhgari
bff2300eea 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
ee04d0f742 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
d876907238 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
df419ab210 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
40c7bffd01 Bug 865234 - Part 8: Add a test case for channel mixing rules; r=roc 2013-04-30 00:06:04 -04:00
Ehsan Akhgari
9c26dbc68f Bug 865234 - Part 2: Send the channel mixing information to the AudioNodeStream; r=roc 2013-04-27 19:25:23 -04:00
Ehsan Akhgari
a749080ffb Bug 865234 - Part 1: Add DOM bindings for the channel mixing attributes; r=roc 2013-04-27 18:44:50 -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
Paul Adenot
fe0d0dac61 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
6402233faa 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
97c7feb7b5 Backed out changesets 5447d49a2c6f and ab9c9d0819a2 (bug 867089) for mochitest failures.
CLOSED TREE
2013-04-30 11:16:55 -04:00
Paul Adenot
8c8d0b4eb8 Bug 867089 - Test for invalid playbackRate values on an AudioBufferSourceNode. r=ehsan 2013-04-30 16:04:44 +02:00
Paul Adenot
3d22663645 Bug 867089 - Validate the playbackRate before using it. r=ehsan 2013-04-30 16:04:05 +02:00
Andrew McCreight
30fedfb95c Bug 866570 - test. r=smaug 2013-04-28 22:38:57 -07:00
Ehsan Akhgari
aa479f73fd Bug 866737 - Unregister PannerNodes when they're unlinked by the cycle collector; r=padenot 2013-04-29 14:06:40 -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
c91f30797b Bug 866442 - Implement BiquadFilterNode.getFrequencyResponse; r=padenot 2013-04-27 16:29:48 -04:00
Ehsan Akhgari
2bdc8e9186 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
9eee1965be 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
c62b64e90c 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
18b36c4ebe 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
1b7dd43fa1 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
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
ab2d0bc310 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
f0797f9f57 Backed out changeset 7c244b521e54 (the investigation patch for bug 866079) 2013-04-27 15:07:29 -04:00
Ehsan Akhgari
7442c4df57 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
3a048937ab Bug 865550 - Unlink AudioBufferSourceNode members before AudioNode; r=mccr8 2013-04-25 16:52:52 -04:00
Ehsan Akhgari
38f134b992 Bug 859600 - Make AudioContext an EventTarget; r=smaug 2013-04-25 00:28:39 -04:00
Ehsan Akhgari
225ca99bf9 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
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
557ec26e0f 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
eac64e1821 Bug 865548 - Convert the node arrays in AudioContext to hashsets; r=padenot 2013-04-24 23:32:41 -04:00
Ehsan Akhgari
b6e9710e71 Bug 865004 - Disconnect the AudioNode from the graph before deleting it; r=bzbarsky 2013-04-24 16:57:07 -04:00
Ehsan Akhgari
fcf7078a8e Backed out changeset 089871cdaf1e (bug 865004) because of crashtest leaks on a CLOSED TREE 2013-04-24 16:29:08 -04:00
Ehsan Akhgari
01608e4b32 Bug 865004 - Disconnect the AudioNode from the graph before deleting it; r=bzbarsky 2013-04-24 15:30:19 -04:00
Ehsan Akhgari
f75763a080 Bug 864709 - Part 2: Protect accesses to AudioNodeEngine::mNode using a lock; r=padenot 2013-04-24 12:13:45 -04:00
Paul Adenot
bd71531a02 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
f3f4b81e3c 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
84afc888ff 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
960b4e84ff 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
7b3517171c 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
372be8564a 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
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
7571e9d313 Bug 834513 follow-up: Mode AudioNode::DestroyMediaStream into the cpp file, and inline UnbindFromEngine 2013-04-22 22:45:37 -04:00
Ehsan Akhgari
27c7c4dcf7 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
f03533b4a7 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
625818e3fe 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
ba2650c05f 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
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
65f9c8c375 Bug 864086 - Simplify AudioNode::DestroyMediaStream callers; r=padenot 2013-04-22 08:14:10 -04:00
Ehsan Akhgari
2666bbba26 Bug 864083 - Cleanup AudioBuffer::GetThreadSharedChannelsForRate; r=padenot 2013-04-22 08:12:45 -04:00
Ryan VanderMeulen
95d5080f59 Backed out changesets 3b8fdfefcf5e and ab61f99fb584 (bug 864083) for bustage on a CLOSED TREE. 2013-04-22 08:58:32 -04:00
Ehsan Akhgari
762d5ad5f6 Bug 864086 - Simplify AudioNode::DestroyMediaStream callers; r=padenot 2013-04-22 08:14:10 -04:00
Ehsan Akhgari
d7d8be9b4a Bug 864083 - Cleanup AudioBuffer::GetThreadSharedChannelsForRate; r=padenot 2013-04-22 08:12:45 -04:00
Ehsan Akhgari
7c8466ca68 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
51c4aebe76 Bug 834513 - Part 3: Implement ScriptProcessorNode; r=roc 2013-04-13 21:37:04 -04:00
Ehsan Akhgari
6ee7fc5a87 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
24b4056720 Bug 846634 - Part 2: Move EXPORTS to moz.build; r=joey 2013-04-16 15:24:43 -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
94e7d9880d 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
73adb43547 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
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
9ce6df6da6 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
d174da3ba1 Bug 854336 - Implement the playbackRate property of AudioBufferSourceNode. r=ehsan 2013-04-09 14:47:42 +02:00
Paul Adenot
59347270e4 Bug 852366 - Don't resample on the main thread. r=ehsan,roc 2013-03-18 20:54:32 -04:00
Ehsan Akhgari
b5c7a06c19 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
340cb86e25 Backed out changeset 92c2f24cb6ff (bug 854336) because of mochitest-1 crashes 2013-04-09 11:28:42 -04:00
Ehsan Akhgari
61bad51d84 Backed out changeset 9c080ffa640f (bug 853551) because of mochitest-1 crashes 2013-04-09 11:28:38 -04:00
Paul Adenot
e62b3f4e3d Bug 853551 - Implement the doppler part of AudioPannerNode. r=ehsan 2013-04-09 14:47:42 +02:00
Paul Adenot
e76e15c30c Bug 854336 - Implement the playbackRate property of AudioBufferSourceNode. r=ehsan 2013-04-09 14:47:42 +02:00
Paul Adenot
bdddd513a1 Bug 852366 - Don't resample on the main thread. r=ehsan,roc 2013-03-18 20:54:32 -04:00
Ehsan Akhgari
2785be0307 Bug 859597 - Narrow down the acceptable range for AnalyserNode.fftSize; r=padenot 2013-04-08 21:26:08 -04:00
Ehsan Akhgari
112a55b741 Bug 859602 - Remove AudioParam.minValue/maxValue; r=bzbarsky 2013-04-08 21:57:54 -04:00
Ehsan Akhgari
6f3b411b8e Bug 859594 - Remove AudioSourceNode; r=bzbarsky 2013-04-08 22:45:02 -04:00
Ehsan Akhgari
730bf8e981 Bug 853721 - Part 2: Hook up DelayNode to the media streams graph and implement delaying of incoming audio; r=roc 2013-03-25 08:34:59 -04:00
Ehsan Akhgari
7b9c05ad65 Bug 857793 - Always return the defaultValue before the first scheduled event on an AudioParam; r=roc 2013-04-03 17:31:42 -04:00
Ehsan Akhgari
d7e9372fcb Bug 857790 - Convert AudioParam time values to ticks relative to the source stream, not the destination stream; r=roc 2013-04-03 17:28:49 -04:00
Ehsan Akhgari
d11f87563d Bug 856771 - Protect the source buffer nodes from leaking when their binding goes away without being played back; r=roc
This is the real part of the patch which was dropped from the previous commit.
2013-04-01 16:06:55 -04:00
Ehsan Akhgari
e0738991cf Bug 855990 followup: move TransferBuffer outside of the function because gcc is not a grown-up
Landed on a CLOSED TREE
2013-04-02 16:18:32 -04:00
Ehsan Akhgari
037a61128d Bug 855990 - Part 5: Implement the analysis routines of AnalyserNode; r=padenot
--HG--
extra : rebase_source : dc459a731d5793c169f73271f2d2043d472288e4
2013-04-01 19:26:17 -04:00
Ehsan Akhgari
7b9c5e3aa8 Bug 855990 - Part 4: Send the buffer seen by AnalyserNodeEngine to AnalyserNode; r=padenot
--HG--
extra : rebase_source : be0b1c8197c1e8582d9dda31a74484901c665b79
2013-04-01 17:35:18 -04:00
Ehsan Akhgari
aafbcbdfdb Bug 856329 - Create an engine for BiquadFilterNode and make sure that we deliver the right parameteres to it; r=padenot
--HG--
extra : rebase_source : a06e3c79aa1ecbab0fa1b9ec01f0bccf466694ee
2013-03-29 19:11:58 -07:00
Ehsan Akhgari
05a1a42a6f Bug 856328 - Part 2: Create an engine for DynamicsCompressorNode and make sure that we deliver the right parameteres to it; r=padenot
--HG--
extra : rebase_source : 9a3257ca7e53c67353a3dc46318815ee2e465d44
2013-03-29 16:18:20 -07:00
Ehsan Akhgari
94d6e8730d Bug 856328 - Part 1: Refactor sending an AudioParamTimeline to the stream into an AudioNode helper; r=padenot
--HG--
extra : rebase_source : 8e2331ded7c35d1a6e9057c5be5ad31a959beed9
2013-03-29 18:46:03 -07:00
Ehsan Akhgari
9c134ee172 Bug 856771 - Protect the source buffer nodes from leaking when their binding goes away without being played back; r=roc 2013-04-01 16:06:55 -04: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
Kyle Machulis
f5e3aadf0b Bug 855465 - Add emacs python mode comments to moz.build files; r=gps 2013-04-01 11:36:59 -07:00
Kyle Machulis
d2b6e6e01a Backout for changeset 03452b187c14 (Bug 855465) due to bustage on a CLOSED TREE; r=qdot 2013-03-29 15:12:58 -07:00
Kyle Machulis
5663b98bc5 Bug 855465 - Add emacs python mode comments to moz.build files; r=gps
--HG--
extra : rebase_source : 004a756492323e1a049586e85b3be5037159df20
2013-03-29 13:56:18 -07: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
ea56b7855e Bug 853963 - Make the case where the listener and panner are at the same spot with 360 cone angles really a no-op; r=padenot 2013-03-22 15:32:24 -04:00
Ehsan Akhgari
d8b0ac719e Bug 849230 follow-up: Fix expectException to actually check the exception code, and don't use imaginary DOMException names!
--HG--
extra : rebase_source : df53ddca50487bfc10676fd43e98abb949a2c298
2013-03-22 19:57:08 -04:00
Ehsan Akhgari
0ac246e288 Bug 853718 - Pause the AudioContext when it is being torn down; r=bzbarsky 2013-03-21 23:07:44 -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
Ehsan Akhgari
9214399971 Bug 853721 - Part 1: Refactor the code to convert GainNode's AudioParamTimeline to ticks into WebAudioUtils; r=roc 2013-03-22 00:01:28 -04:00
Paul Adenot
f3581fffe3 Bug 853360 - Implement the coneGain part of the AudioPannerNode. r=roc
--HG--
extra : rebase_source : c3a27ef2da8a080b9b310af14cf85f68f13df9a6
2013-03-21 19:25:15 +01:00
Paul Adenot
9e83a59dad Bug 849918 - Initial support for PannerNode's 3D positional audio (equalpower panning model). r=ehsan,roc
--HG--
extra : rebase_source : d729da50f97b94ea0434a93ad481ac35954bfa9a
2013-03-21 17:45:53 +01:00
Kyle Huey
d719ea3e8e Backout things philor tells me to (Bug 853360, Bug 849918). 2013-03-21 18:20:42 -07:00
Paul Adenot
4dd453510a Bug 853360 - Implement the coneGain part of the AudioPannerNode. r=roc 2013-03-21 19:25:15 +01:00
Paul Adenot
89510dacb2 Bug 849918 - Initial support for PannerNode's 3D positional audio (equalpower panning model). r=ehsan,roc 2013-03-21 17:45:53 +01:00
Ehsan Akhgari
7613175e14 Bug 852817 - Don't do anything special when the JS binding to AudioDestinationNode gets finalized; r=roc 2013-03-20 21:35:44 -04:00
Ehsan Akhgari
8394a6f09e Bug 852838 - Make sure that trying to allocate an AudioBuffer with a very large number of channels does not cause an OOM crash; r=roc 2013-03-20 21:49:13 -04:00
Ehsan Akhgari
f96749709d Bug 853246 - Optimize Panner and Listener methods when processing them would not have a significant effect; r=roc 2013-03-20 20:12:07 -04:00
Mike Shal
ea1d9b8ba7 Bug 844654 - Part 2: Move MODULE to moz.build; rs=gps 2013-03-19 11:47:00 -07:00
Ehsan Akhgari
5fe38c48d5 Bug 852410 - Mark Web Audio streams as blocking on their input, not on their output; r=roc 2013-03-19 00:43:44 -04:00
Andrea Marchesini
6b08dd17f5 Bug 841493 - Rename nsHTMLMediaElement to HTMLMediaElement, r=Ms2ger
--HG--
rename : content/html/content/public/nsHTMLMediaElement.h => content/html/content/public/HTMLMediaElement.h
rename : content/html/content/src/nsHTMLMediaElement.cpp => content/html/content/src/HTMLMediaElement.cpp
2013-03-19 13:23:54 +01:00
Ehsan Akhgari
60ab45fb40 Bug 851966 - Only store the produced AudioChunks for AudioNodeStreams that will result in playback; r=roc 2013-03-17 20:37:47 -04:00
Ehsan Akhgari
a875e98108 Bug 851949 - Avoid setting AudioParam values needlessly; r=roc 2013-03-17 15:57:15 -04:00
Ms2ger
aed8044ac2 Merge m-c to m-i. 2013-03-17 13:22:37 +01:00
Ms2ger
ecaff4e0d2 Bug 845374 - Part r: Stop including nsTArray.h in nsReadableUtils.h; r=khuey 2013-03-17 08:55:16 +01: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
19c480342c Bug 851603 - Enable Web Audio in Nightly; r=roc
--HG--
extra : rebase_source : b79d7f2cb0e6257eae2f65bd8637f718324b43f4
2013-03-16 01:35:22 -04: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
Ehsan Akhgari
672e27d6bc Bug 850970 - Set the initial value of gain nodes on the audio stream to make sure that they don't mute playback; r=roc
--HG--
extra : rebase_source : caf58ca903665f8b3014451926cec9772969663f
2013-03-13 23:44:49 -04:00
Ehsan Akhgari
e48730f81b Bug 849713 - Part 5: Implement the looping logic in AudioBufferSourceNodeEngine; r=roc
The logic in this function is based around a while loop.  In every
iteration of the loop, we determine whether we need to output silence
(if we're at a position before the playback has started or after it has
stopped) or if we need to produce sound.  In each case, we call a helper
function which eagerly tries to produce as much silence or sound as
possible, while maintaining the constraints that are explained in the
comments in the code.
2013-03-10 21:02:22 -04:00
Ehsan Akhgari
245251292d Bug 849713 - Part 4: Refactor the logic for borrowing the output buffer from the input buffer; r=roc 2013-03-10 18:38:57 -04:00
Ehsan Akhgari
a4cc299dc2 Bug 849713 - Part 3: Set the loop parameters on AudioBufferSourceNodeEngine if looping is turned on when start() gets called; r=roc 2013-03-10 14:11:12 -04:00
Ehsan Akhgari
a03597ec60 Bug 849713 - Part 2: Accept the loop parameters on AudioBufferSourceNodeEngine; r=roc 2013-03-10 13:59:41 -04:00
Ehsan Akhgari
b01654e838 Bug 849713 - Part 1: Add DOM bindings for AudioBufferSourceNode loop attributes; r=roc 2013-03-10 12:56:14 -04:00
Ehsan Akhgari
06c15fd0ed Bug 849916 - Part 4: Don't rely on things still being around when we run PannerNode's dtor, use a weak pointer instead; r=roc
--HG--
extra : rebase_source : 8432bea9035761fcb52e77dfc474de8878fc4372
2013-03-12 19:28:30 -04:00
Ehsan Akhgari
ffee05887e Bug 849916 - Part 3: Create an engine for PannerNodes and make sure that we deliver the panner and listener parameters to it; r=padenot 2013-03-12 14:34:55 -04:00
Ehsan Akhgari
7a26abd817 Bug 849916 - Part 2: Add helper functions for sending different argument types to the AudioNodeStream; r=padenot 2013-03-12 11:28:14 -04:00
Ehsan Akhgari
023850e72d Bug 849916 - Part 1: Make it possible to send ThreeDPoint objects as commands to the MSG thread; r=padenot 2013-03-12 11:16:42 -04:00
Ryan VanderMeulen
f6ea8893e6 Backed out changesets 4ee69256f8f2, 2becc603eeb8, and afad1c17015e (bug 849916) for bustage on a CLOSED TREE. 2013-03-12 16:16:30 -04:00
Ehsan Akhgari
fc535e7e15 Bug 849916 - Part 3: Create an engine for PannerNodes and make sure that we deliver the panner and listener parameters to it; r=padenot 2013-03-12 14:34:55 -04:00
Ehsan Akhgari
4cbb915b76 Bug 849916 - Part 2: Add helper functions for sending different argument types to the AudioNodeStream; r=padenot 2013-03-12 11:28:14 -04:00
Ehsan Akhgari
d7560401d9 Bug 849916 - Part 1: Make it possible to send ThreeDPoint objects as commands to the MSG thread; r=padenot 2013-03-12 11:16:42 -04:00
Ehsan Akhgari
78ca80f126 Bug 849914 - Implement the latest spec changes to PannerNode and AudioListener; r=roc 2013-03-11 19:09:27 -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
bbfd0958e3 Backed out 4 changesets (bug 849713) since builds fail because of warnings as errors
Backed out changeset e811d4258d45 (bug 849713)
Backed out changeset 26aa58e87d5d (bug 849713)
Backed out changeset 9a6552161eff (bug 849713)
Backed out changeset 3551877d9b92 (bug 849713)

Landing on a CLOSED TREE
2013-03-11 16:14:42 -04:00
Ehsan Akhgari
35dae1b81f Backed out changeset 151b845b0fa9 (bug 849713 part 5) because it has not been reviewed yet! 2013-03-11 15:31:14 -04:00
Ehsan Akhgari
a974ee8086 Bug 849713 - Part 5: Implement the looping logic in AudioBufferSourceNodeEngine; r=roc
The logic in this function is mostly around the mLoop variable.  mLoop being
NotLooping means that the playback of this node is never going to loop, in
which case the logic doesn't change compared to the ProduceAudioBlock function
before this patch.

If the loop mode is turned on when start() is called, mLoop will initially be
WillLoop.  In that case, we play back until mLoopEnd, and then we will wrap
around to mLoopStart, set mLoop to be IsLooping, and start playback again.
From that point on, mLoop will always be IsLooping, and we will loop between
mLoopStart and mLoopEnd.  Where possible, we'll just use BorrowFromInputBuffer
to avoid copying the buffer, and if we hit the edges right around the time that
we loop, we copy some frames from the end of the input buffer and some from the
beginning in the memcpy loops at the end of the ProduceAudioBlock function.
2013-03-10 21:02:22 -04:00
Ehsan Akhgari
a5fea34024 Bug 849713 - Part 4: Refactor the logic for borrowing the output buffer from the input buffer; r=roc 2013-03-10 18:38:57 -04:00
Ehsan Akhgari
1300d21db5 Bug 849713 - Part 3: Set the loop parameters on AudioBufferSourceNodeEngine if looping is turned on when start() gets called; r=roc 2013-03-10 14:11:12 -04:00
Ehsan Akhgari
b646a29552 Bug 849713 - Part 2: Accept the loop parameters on AudioBufferSourceNodeEngine; r=roc 2013-03-10 13:59:41 -04:00
Ehsan Akhgari
5e3e5535d4 Bug 849713 - Part 1: Add DOM bindings for AudioBufferSourceNode loop attributes; r=roc 2013-03-10 12:56:14 -04:00
Ehsan Akhgari
aacd3da00e Bug 849652 - Copy enough number of bytes in AudioBufferSourceNode::ProduceAudioBlock's memcpy loop; r=roc 2013-03-10 17:37:40 -04:00
Ehsan Akhgari
3418e3c685 Bug 849106 - Adjust the fuzz tolerance value for small-shot.ogg on mobile 2013-03-08 13:07:21 -05: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
Ehsan Akhgari
fc32827507 Bug 848651 - Part 2: Log an error to the Web Console if we run out of memory while trying to resample an AudioBuffer for playback; r=padenot 2013-03-08 11:49:56 -05:00
Ehsan Akhgari
a06ea67f9d Bug 848651 - Part 1: Implement resampling of audio buffers to be able to play back buffers with a different sample rate than the AudioContext; r=padenot 2013-03-07 18:14:46 -05:00
Ehsan Akhgari
f2b7547cab Bug 846329 - Fix decodeAudioData to decode all channels and not only the first one; r=padenot 2013-03-04 21:27:13 -05:00
Thomas Zimmermann
1823db9f02 Bug 834172 - Remove GStreamer flags from webaudio Makefile. r=cpearce
With the move of all codec-specific code to DecoderTraits, there is no
need to pass compiler flags for GStreamer when building the webaudio
library. This patch updates the Makefile template accordingly.
2013-03-05 09:56:35 -05:00
Thomas Zimmermann
3867cce83c Bug 834172 - Implement CreateReader in DecoderTraits. r=cpearce
MediaDecoderReaders are now created from within DecoderTraits. The
codec-specific code has been removed from class MediaDecodeTask.
2013-03-05 09:56:35 -05:00
Ehsan Akhgari
14a0e48617 Bug 836076 - Part 6: Hook up GainNode to the MediaStreams back-end to enable controlling the volume of the audio being played back; r=roc 2013-01-29 18:37:51 -05:00
Ehsan Akhgari
61bbd92228 Bug 836076 - Part 5: Provide an API for converting event times to tick values; r=roc 2013-03-01 17:06:03 -05:00
Ehsan Akhgari
6fe682381f Bug 845960 - Fix a crash resulted from a missing nullcheck for the optional failure callback of decodeAudioData; r=bzbarsky 2013-03-04 23:04:51 -05:00
Ryan VanderMeulen
527466b973 Backed out 5 changesets (bug 834172) for Android build bustage. 2013-03-04 11:17:36 -05:00
Thomas Zimmermann
6afb280c5a Bug 834172 - Remove GStreamer flags from webaudio Makefile. r=cpearce
With the move of all codec-specific code to DecoderTraits, there is no
need to pass compiler flags for GStreamer when building the webaudio
library. This patch updates the Makefile template accordingly.
2013-03-04 10:24:45 -05:00
Thomas Zimmermann
979b84ab7c Bug 834172 - Implement CreateReader in DecoderTraits. r=cpearce
MediaDecoderReaders are now created from within DecoderTraits. The
codec-specific code has been removed from class MediaDecodeTask.
2013-03-04 10:24:45 -05:00
Ehsan Akhgari
5b6e81b5cf Bug 838065 - Re-enable the decodeAudioData tests; r=roc 2013-02-27 16:59:46 -05:00
Gregory Szorc
803629b9c6 Merge mozilla-central into build-system
There were merges in configure.in and some Makefile.in. None had any
conflicts. I spot verified the Makefile.in changes and confirmed that
the changes did not touch any DIRS* variables.
2013-02-27 10:03:52 -08:00
Gregory Szorc
fee2be3026 Bug 784841 - Part 18g: Convert /content; r=glandium 2013-02-25 12:47:19 -08:00
Bobby Holley
2589449122 Bug 834732 - Audit callers of GetNativeContext and use AutoPushJSContext where appropriate. r=mrbkap 2013-02-26 11:04:13 -08:00
Ehsan Akhgari
dbd98a978d Bug 836072 - Validate the arguments to AudioParam.exponentialRampToValueAtTime() correctly; r=roc
--HG--
extra : rebase_source : 4da10bc054e2d978b3639a537bd46b2614586647
2013-01-29 18:30:22 -05:00
Chris Pearce
5607881905 Bug 839031 - Store the Content-Type/MIME-Type on MediaResource. r=padenot 2013-02-15 14:10:58 +13:00
Andrew McCreight
090a8455ed Bug 839753 - Fix up CC implementation for AudioDestinationNode. r=smaug 2013-02-12 08:42:59 -08:00
Honza Bambas
725e26027d Bug 839175 - missing using namespace dom in MediaBufferDecoder.cpp, r=roc 2013-02-11 22:56:57 +01:00
Phil Ringnalda
361f43b776 Back out 6a5dcf166f09 (bug 836072) for build bustage
CLOSED TREE
2013-02-07 21:35:08 -08:00
Ehsan Akhgari
32c41e5463 Bug 836072 - Validate the arguments to AudioParam.exponentialRampToValueAtTime() correctly; r=roc 2013-01-29 18:30:22 -05:00
John Schoenick
fb66de7b8c Bug 837427 - Include gstreamer cflags in content/media/webaudio; r=ehsan 2013-02-05 13:34:19 -05:00
Ehsan Akhgari
6d64573151 Bug 836076 - Part 3: Make AudioParams call back into their owning node when they're modified; r=roc
We need this in order to update the MediaStreamGraph thread when an
AudioParam changes.  This enables each AudioParam to be registered with
a callback from its owner node, so that the owner node can have custom
processing code for each AudioParam's mutation.
2013-01-28 18:59:29 -05:00
Ehsan Akhgari
0dd0c24483 Bug 836076 - Part 2: Make it possible to send AudioEventTimeline objects as commands to the MSG thread; r=roc 2013-01-28 17:42:27 -05:00
Ehsan Akhgari
5c1dc30b64 Bug 836076 - Part 1: Move AudioEventTimeline.h to content/media; r=roc
--HG--
rename : content/media/webaudio/AudioEventTimeline.h => content/media/AudioEventTimeline.h
2013-01-28 17:21:43 -05:00
Ehsan Akhgari
4e8b7b6319 Bug 804387. Part 11: Fix testcase to expect correct sample rate. r=roc
--HG--
extra : rebase_source : aabab48ccaa6cbfacc2d22a425574d6e5b4109ee
2013-01-25 16:44:28 -05:00
Ehsan Akhgari
438db37746 Bug 804387. Part 10: Add a mechanism for ensuring that we don't attempt to allocate an input port if the input node is not hooked up to MSG yet. r=roc
--HG--
extra : rebase_source : dc3a202cbb94c266f6df4b0c1b5247522fc76658
2013-01-25 16:39:51 -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
Robert O'Callahan
82088f3e65 Bug 804387. Part 7.5: Make Web Audio tests context-rate-independent (disabling some decodeAudioData tests). r=ehsan
--HG--
extra : rebase_source : c625c50a08da1871e79851c2a824b0e3ea170eba
2013-02-05 10:57:36 +13:00
Robert O'Callahan
93a3ca0e54 Bug 804387. Part 7.2: Let BiquadFilterNode use the actual context sample rate. r=ehsan
--HG--
rename : content/media/MediaStreamGraph.cpp => content/media/MediaStreamGraphImpl.h
extra : rebase_source : 3d50af2ff2dff9fa047d59d0f3c815dec5cc686c
2013-02-05 10:55:50 +13:00
Ehsan Akhgari
598f705578 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
Ehsan Akhgari
b2bde00794 Backed out 3 changesets (bug 836076) becasue bug 804387 is getting backed out
Backed out changeset d567b1bb34ad (bug 836076)
Backed out changeset 51f7c9e31f9a (bug 836076)
Backed out changeset 901c735274bc (bug 836076)

--HG--
rename : content/media/AudioEventTimeline.h => content/media/webaudio/AudioEventTimeline.h
2013-02-05 01:28:38 -05:00
Ehsan Akhgari
057108984e Bug 836076 - Part 3: Make AudioParams call back into their owning node when they're modified; r=roc
We need this in order to update the MediaStreamGraph thread when an
AudioParam changes.  This enables each AudioParam to be registered with
a callback from its owner node, so that the owner node can have custom
processing code for each AudioParam's mutation.
2013-01-28 18:59:29 -05:00
Ehsan Akhgari
d65f82d1a1 Bug 836076 - Part 2: Make it possible to send AudioEventTimeline objects as commands to the MSG thread; r=roc 2013-01-28 17:42:27 -05:00
Ehsan Akhgari
9721bd3a5c Bug 836076 - Part 1: Move AudioEventTimeline.h to content/media; r=roc
--HG--
rename : content/media/webaudio/AudioEventTimeline.h => content/media/AudioEventTimeline.h
2013-01-28 17:21:43 -05:00
Ehsan Akhgari
b77d993ad2 Bug 804387. Part 11: Fix testcase to expect correct sample rate. r=roc 2013-01-25 16:44:28 -05:00
Ehsan Akhgari
147214ed9d Bug 804387. Part 10: Add a mechanism for ensuring that we don't attempt to allocate an input port if the input node is not hooked up to MSG yet. r=roc 2013-01-25 16:39:51 -05:00
Robert O'Callahan
41a1e70799 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
Robert O'Callahan
36d8e43a3b Bug 804387. Part 7.5: Make Web Audio tests context-rate-independent (disabling some decodeAudioData tests). r=ehsan 2013-02-05 10:57:36 +13:00
Robert O'Callahan
02d2c848e5 Bug 804387. Part 7.2: Let BiquadFilterNode use the actual context sample rate. r=ehsan 2013-02-05 10:55:50 +13:00
Ehsan Akhgari
6ae155f23d Export MediaBufferDecoder.h, no bug 2013-02-04 13:16:57 -05:00
Matthew Gregan
fca4ee9782 Bug 835075 - Modify the mochitest. r=padenot 2013-02-04 14:08:47 +01:00
Ehsan Akhgari
1aad4eaa4d Bug 792263 follow-up: Use class instead of struct to satisfy pesky compiler warnings (or rather, errors)
--HG--
extra : rebase_source : 900df4204ac807bb9d8e35d2837971905ecde151
2013-02-01 18:11:25 -05:00
Ehsan Akhgari
c78c1b8384 Bug 792263 - Implement decodeAudioData; r=bzbarsky,cpearce,padenot 2013-02-01 17:13:23 -05:00
Jeff Walden
37fe466d6f Bug 835648 - Move typed enum support to a new header. r=Ms2ger 2013-01-28 16:33:17 -08:00
Ryan VanderMeulen
7e8ed87ae1 Backed out changeset 3eb633a97c1f (bug 835648) for suspected Windows orange on a CLOSED TREE. 2013-01-29 19:01:45 -05:00
Jeff Walden
dd0f69c43a Bug 835648 - Move typed enum support to a new header. r=Ms2ger
--HG--
extra : rebase_source : 8c912fba889c1c5435e3619714071502fbfb30a3
2013-01-28 16:33:17 -08:00
Robert O'Callahan
2532cb1a6a Bug 832788. Part 3: AudioListener DopplerFactor/SpeedOfSound should take float per WebIDL. r=ehsan
--HG--
extra : rebase_source : d435b1678b09075cecf75e8da64364ec62964d00
2013-01-29 14:40:59 +13:00
Robert O'Callahan
e2bc683bfc Bug 832788. Part 2: AudioEventTimeline::IsValid needs to accept double. r=ehsan
--HG--
extra : rebase_source : 74c278d121419448b264ec3be4b8717bd99e15d1
2013-01-29 14:40:26 +13:00
Ehsan Akhgari
e8b9d1f551 Bug 834929 - Part 3: Squeeze two members of Event into a union to reduce its size; r=roc 2013-01-28 15:40:12 -05:00
Ehsan Akhgari
bdb1536ac3 Bug 834929 - Part 2: Remove FloatArrayWrapper and just copy the curve array when needed; r=roc 2013-01-25 16:46:44 -05:00
Ehsan Akhgari
cd11a234ad Bug 834929 - Part 1: Store the default/min/max values on the AudioParam itself; r=roc 2013-01-25 14:26:31 -05:00
Peter Van der Beken
bfc9de7860 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
19dd19ed37 Backout f3c145bd1dd2 & 5075690572a9 for OS X startup failures 2013-01-28 11:08:21 +00:00
Peter Van der Beken
70a2f7c413 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
aab1f242be Bug 834869 - AudioBuffer's Unlink method should drop js objects; r=mccr8
--HG--
extra : rebase_source : 3ee8bc593cdffff135a7094eacee7c5d34c70848
2013-01-25 16:21:22 -05:00
Robert O'Callahan
52fa9f133a Bug 804837. Part 0: Rework the connection and input/output port logic for Web Audio nodes; r=ehsan
Here's what this patch does:
-- Makes AudioNodes mostly not use nsWrapperCache. AudioDestinationNode
still does.
-- Rename MaxNumberOfInputs/Outputs to NumberOfInputs/Outputs, and have them
default to 1 in AudioNode.
-- Allow any number of nodes to be connected to any given input/output port.
2013-01-23 19:50:18 -05:00
Ehsan Akhgari
94b2981ab9 Bug 833631 - Unprefix mozAudioContext; r=roc
--HG--
extra : rebase_source : 3c477a97ea842a806f6fad6f5c3a81d6e50b27c3
2013-01-22 20:12:21 -05:00
Steve Fink
d3f194fbfb Bug 828753 - jsid rooting, mostly in jsinfer.*. Also switch JSObject from struct to class. r=terrence 2012-12-31 12:40:21 -08:00
Steve Fink
cb8aecdd2a Backed out changeset fce4e0f8a553 (bug 828753) for breaking windows warnings-as-errors (stop adding JSObject forward decls, please!) 2013-01-18 13:20:21 -08:00
Steve Fink
fa3e8f224b Bug 828753 - jsid rooting, mostly in jsinfer.*. Also switch JSObject from struct to class. r=terrence
--HG--
extra : rebase_source : c8806b27677594925ad0e6b54c47af5cf17e1153
2012-12-31 12:40:21 -08:00
Trevor Saunders
b98e34aed0 bug 822289 - remove NS_IMPL_CYCLE_COLLECTION_CLASS and friends r=mccr8 2013-01-12 07:40:33 -05:00
Ehsan Akhgari
7ba545bbc6 Bug 827541 follow-up: Make sure that the test case actually instantiates an AudioContext object the first time, as opposed to just access the constructor function through a property access 2013-01-15 01:15:25 -05:00
Andrew McCreight
c6adbf1b9c Bug 827541 - Traverse/Unlink nsGlobalWindow::mAudioContexts. r=ehsan 2013-01-14 15:22:00 -08:00
Masatoshi Kimura
ecc812a3c0 Bug 824247 - Part 3: Disable FAIL_ON_WARNINGS on not-yet-warning-free directories on MSVC. r=ted 2013-01-03 00:56:38 +09:00
Ehsan Akhgari
1a5f026835 Bug 816828 - Implement AudioContext.sampleRate; r=bzbarsky 2012-11-29 22:31:39 -05:00
Ehsan Akhgari
a7a98ebf22 Merge mozilla-central into mozilla-inbound 2012-11-28 09:43:30 -05:00
Olli Pettay
f62ac2c85e Bug 811206, Fix JSHolder drop handling, part 3 (fixes), r=mccr8,khuey
--HG--
extra : rebase_source : 7b2726d2aa7f5764a3c4cb750e5a735728069687
2012-11-28 03:37:57 +02:00
Ehsan Akhgari
165f9042db 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
254a73bfa8 Bug 815450: Add "u" suffix to numeric literals in TestAudioEventTimeline.cpp, to fix sign-compare build warnings. r=ehsan 2012-11-26 20:34:16 -08:00
Daniel Holbert
d7b2de9476 Backed out changeset 704c91d3e7fa (Bug 814789) because of mac build-bustage 2012-11-26 20:34:10 -08:00
Ehsan Akhgari
64400b3001 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
Andrew McCreight
0687798248 Bug 814453 - Eliminate NS_IMPL_CYCLE_COLLECTION_UNLINK_NATIVE_0 and NS_IMPL_CYCLE_COLLECTION_TRACE_NATIVE_BEGIN. r=smaug 2012-11-23 11:27:06 -08:00
Benoit Jacob
97c1c2f31c Bug 814444 - Remove now-useless TRAVERSE_NATIVE_BEGIN and UNLINK_BEGIN_NATIVE macros - r=mccr8 2012-11-22 12:15:38 -05:00
Andrew McCreight
9e1bb32dec Bug 815454 - Clean up Traverse/Unlink of web audio. r=smaug 2012-11-27 15:08:22 -08:00
Andrew McCreight
7e2e9bf16b 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
Boris Zbarsky
e0facaae90 Bug 767933 part 4. Make 'float' and 'double' types throw on non-finite values. r=khuey,ehsan,bas 2012-11-27 15:32:05 -05:00
Ehsan Akhgari
0423e87304 Bug 813269 - Use double to represent time in Web Audio; r=bzbarsky 2012-11-19 15:52:29 -05:00
Ehsan Akhgari
67aa9cceb9 Bug 812390 - Protect against NaN in AudioContext.createDelay; r=bzbarsky 2012-11-15 17:48:04 -08:00
Benoit Jacob
5a8b82a1cb Bug 807437 - Eliminate redundant Traverse/Unlink CC macros - part 1: automatic changes - r=mccr8 2012-11-15 02:32:40 -05:00
Benoit Jacob
f4c1a03e74 Bug 806279 - CC macros refactoring: part 3: fold the TRAVERSE_NATIVE and AMBIGUOUS cases - r=mccr8,smaug 2012-11-15 02:32:39 -05:00
David Zbarsky
5832069b20 No bug, fix struct/class mismatch warnings 2012-11-14 21:38:26 -05:00
Ehsan Akhgari
5b5d63517f Bug 811864 - Remove PannerNode.coneGain/distanceGain; r=bzbarsky 2012-11-14 13:03:24 -08:00
Ehsan Akhgari
c28044a224 Bug 811555 - Make AudioContext.createDelay not accept arguments greater than or equal to 3; r=bzbarsky
--HG--
extra : rebase_source : 5ad2006acb9c27ba7f94c0d1858a19d71cc663c4
2012-11-13 16:46:25 -08:00
Ehsan Akhgari
602f1aa144 Bug 809882 - Disallow non-positive arguments to AudioContext.createDelay; r=bzbarsky 2012-11-08 13:17:22 -05:00
Ehsan Akhgari
aefcb09647 Add the missing file for the test in bug 809654 2012-11-08 09:33:12 -05:00
Ehsan Akhgari
ab8bc55c73 Bug 809654 - Implement BiquadFilterNode; r=bzbarsky 2012-11-07 20:59:14 -05:00
Ehsan Akhgari
21bc1f2095 Bug 809271 - Implement DynamicsCompressorNode; r=bzbarsky 2012-11-06 20:01:11 -05:00
Ehsan Akhgari
46aae97b87 Bug 808876 - Part 1: Implement PannerNode; r=bzbarsky
--HG--
extra : rebase_source : a7b901dcc7758ff9c7a8917a956d0541187fea07
2012-11-05 21:14:13 -05:00
Ehsan Akhgari
543d0a3b54 Backed out changeset ecf0c2a7cb9f (bug 808876) for build bustage 2012-11-05 22:30:08 -05:00
Ehsan Akhgari
45ebdb31e5 Bug 808876 - Implement PannerNode; r=bzbarsky 2012-11-05 21:14:13 -05:00
Ehsan Akhgari
08000c870e Bug 808841 follow-up: Add ThreeDPoint.h 2012-11-05 21:34:31 -05:00
Ehsan Akhgari
0eea5a9900 Bug 808841 - Implement AudioContext.listener; r=bzbarsky 2012-11-05 19:26:03 -05:00
Ehsan Akhgari
1f14e63f36 Bug 808374 - Balance holding and dropping the JS object references for AudioBuffers initialized with 0 channels; r=mmcr8 2012-11-05 13:49:35 -05:00
Ehsan Akhgari
67d9a2b2ad Bug 807533 - Implement DelayNode; r=bzbarsky
--HG--
extra : rebase_source : 36bb70c9f4b9c86fc1564447a34153d92fe7f347
2012-10-31 20:26:03 -04:00
Ehsan Akhgari
7afb9c40d0 Bug 807526 - Implement GainNode; r=bzbarsky 2012-10-31 15:09:32 -04:00
Ehsan Akhgari
da0f0b1bfc Bug 807171 - Implement AudioParam.cancelScheduledValues; r=bzbarsky 2012-10-30 20:12:19 -04:00
Nathan Froyd
e089fcf7fc Bug 807329 - fix AudioEventTimeline.h for compilers that don't support enum classes; r=ehsan 2012-10-31 11:58:42 -04:00
Ehsan Akhgari
a329381db8 Use #include guards in the web audio code, no bug 2012-10-30 17:39:38 -04:00
Ehsan Akhgari
2bcb7f9713 Bug 803392 - Initial implementation of AudioParam; r=bzbarsky
This patch implements most of the semantics of AudioParam in a
templatized base class called AudioEventTimeline.  This is done in order
to make it possible to test this code from C++ without the need of
linking to libxul.  Basically we take everything that could depend on
libxul or is not suitable for a genertic implementation and put it in a
traits like type as a template argument.  Then the test creates mock
objects that conform to the argument interfaces, and tests the logic of
AudioEventTimeline.
2012-10-16 21:19:06 -04:00
Peter Van der Beken
0b7bff61e0 Fix for bug 799465 (Add complete support for non-nsISupports objects in new DOM bindings) - remove nsISupports from AudioContext. r=ehsan.
--HG--
extra : rebase_source : f37b849c020bd9e4bc72e16df71a0241fafb0829
2012-10-09 20:50:26 +02:00
Ehsan Akhgari
7e2287d842 Bug 797150 - Rename AudioBufferSourceNode's noteOn and noteOff to start/stop; r=bzbarsky 2012-10-02 18:15:33 -04:00
Ehsan Akhgari
d7adf52afa Bug 792649 - Make the simplest of Web Audio tests work without audio playback for now; r=bzbarsky 2012-09-24 23:31:58 -04:00
Ehsan Akhgari
f8e3b2e4eb Bug 793294 follow-up: Hold on to JS objects early in AudioBuffer::InitializeBuffers 2012-09-26 11:52:01 -04:00
Ehsan Akhgari
5366306b68 Bug 793294 - Implement AudioBuffer; r=bzbarsky,smaug
This is the full implementation of the AudioBuffer object.  There are
two ways to create these objects from an audio context and this patch
implements only one of them.

The construction of the AudioBuffer object is a two step process: the
object should be created with operator new first, and then
InitializeBuffers should be called on it.  InitializeBuffers is
fallible, because it uses the JS API to create the underlying typed
arrays, but that's fine, since the length of the buffers comes from web
content, and we don't want to use infallible allocations for those
anyways.

We hold on to the JS objects from the C++ implementation, and trace
through all of those objects, so that a GC does not kill those object
without us knowing.

The buffer should be possible to manipulate from both C++ and JS, and
the C++ object probably needs to support a set of methods for the C++
callers at some point.
2012-09-25 17:58:50 -04:00
Ehsan Akhgari
9d98e76815 Bug 792646 - Implement the skeleton of Web Audio source and destination nodes; r=bzbarsky
This is the bare minimum that one needs in order to get those interfaces
implemented.  The work to make the simplest of Web Audio test cases
actually pass will be done in bug 792649.
2012-09-21 11:33:03 -04:00
Ehsan Akhgari
b6f864617f Backout changeset 7d0776416955 (bug 792646) because of leaks 2012-09-20 19:47:07 -04:00
Ehsan Akhgari
bbd265ce79 Bug 792646 - Implement the skeleton of Web Audio source and destination nodes; r=bzbarsky
This is the bare minimum that one needs in order to get those interfaces
implemented.  The work to make the simplest of Web Audio test cases
actually pass will be done in bug 792649.
2012-09-20 18:05:38 -04:00
Ehsan Akhgari
e4c337219e Bug 788310 - Hide mozAudioContext behind a pref; r=bzbarsky 2012-09-07 18:13:26 -04:00
Ehsan Akhgari
4ccf1a400c Bug 775302 - Stub out the implementation of mozAudioContext; r=bzbarsky,khuey 2012-08-31 16:59:37 -04:00