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
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
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
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
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
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
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
a749080ffb
Bug 865234 - Part 1: Add DOM bindings for the channel mixing attributes; r=roc
2013-04-27 18:44:50 -04: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
3d22663645
Bug 867089 - Validate the playbackRate before using it. r=ehsan
2013-04-30 16:04:05 +02:00
Ehsan Akhgari
3a048937ab
Bug 865550 - Unlink AudioBufferSourceNode members before AudioNode; r=mccr8
2013-04-25 16:52:52 -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
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
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
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
6ee7fc5a87
Bug 834513 - Part 2: Add an AudioNode weak pointer to the AudioNodeEngine class; r=roc
2013-04-20 12:16:28 -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
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
6f3b411b8e
Bug 859594 - Remove AudioSourceNode; r=bzbarsky
2013-04-08 22:45:02 -04: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
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
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