Commit Graph

49 Commits

Author SHA1 Message Date
Karl Tomlinson
7a847783e0 Bug 933156 - Don't send null input to EqualPowerPanningFunction. r=roc 2013-11-04 14:22:37 -05:00
Karl Tomlinson
a1eb5075e9 b=898291 skip HRTF panner processing when input has been null long enough for output to be null r=ehsan
--HG--
extra : transplant_source : %E4l%83zo%0E%08%14%FF%F7%9D%D6%8C%FD%A2%07a%2A%8Aq
2013-10-25 14:05:43 +13:00
Karl Tomlinson
63f4eca296 b=898291 remove unused PannerNodeEngine model type variables r=ehsan
--HG--
extra : transplant_source : %0F%F0%EB%AF%17%B6%B6%CEI0%857%D8%09%C4%D1%0D%C2.l
2013-10-25 14:05:43 +13:00
Karl Tomlinson
74e3f50648 b=907986 handle zero front-right plane projection without NaNs r=padenot
The azimuth calculation in the Web Audio spec becomes undefined in this
situation as it requires normalizing a zero vector.  The panning effect should
not depend on azimuth when the source is directly above the listener (because
position does not depend on azimuth), but the specified "equalpower" panning
model does depend on azimuth even at this elevation.  Setting azimuth to zero
produces the same result as if the normalized projection were replaced with a
zero vector.

--HG--
extra : transplant_source : f%A4h%CB7%7Bp%87%AE%09%9F%2Cu%D7%CD%9D%5E%A8%EC%0D
2013-09-04 21:20:59 +12:00
Karl Tomlinson
2a2ab79432 b=907986 normalize orientation vectors early and keep existing state if directions are undefined r=padenot
Normalizing the AudioListener front orientation vectors before taking their
cross product avoids the possibility of overflow.

The panning effect and the azimuth and elevation calculation in the Web Audio
spec becomes undefined with linearly dependent listener vectors, so keep
existing state in these situations.

PannerNode orientation is normalized for consistency, but zero is permitted
for this vector because the sound cone algorithm in the Web Audio specifies
behavior for this case.

--HG--
extra : transplant_source : %DA%C7e%E7%90%14%AF%EA%08%94x%C1%A2g%F1%9A%EE%16%EB%29
2013-09-04 21:20:59 +12:00
Karl Tomlinson
6d0652f9c8 b=907986 don't calculate upProjection twice r=padenot
--HG--
extra : transplant_source : %8E%E1r%9F%AC%EB%C6%9A%EE_%10%0F%B9%1D%EF%85%EBu%CD%96
2013-09-04 21:20:58 +12:00
Karl Tomlinson
14736f8cee revert 3171b6ad0055 b=907986
--HG--
extra : transplant_source : K%83%1FS%27%A7%20%82%C4P%08%E5n%8C%830%B6%2C%24%97
2013-09-04 15:02:04 +12:00
Paul Adenot
252e552736 b=907986 part 3 fold-in 1 remove normalize of unit vector r=padenot 2013-09-03 10:52:55 +02:00
Ehsan Akhgari
1bb70455b6 Bug 905409 - Minimize the Web Audio #includes; r=roc 2013-08-15 15:44:14 -04:00
Karl Tomlinson
6cb557818b b=815643 Implement HRTF panner processing based on Blink implementation r=ehsan
--HG--
extra : rebase_source : 197fd6f39d3d45b61d25d9dc399c72828d93655a
2013-08-09 10:08:06 +12:00
Mike Hommey
ca80cd82ad Bug 881323 - Re-implement CycleCollectorParticipant with actual vtables, with constexpr to avoid static initializers. r=mccr8 2013-08-02 10:29:05 +09:00
Paul Adenot
23e5b0ef24 Bug 894150 - Unregister the PannerNode in the AudioListener when destroying the stream. r=ehsan 2013-07-16 14:45:41 +02:00
Ryan VanderMeulen
01616062a4 Backed out 2 changesets (bug 894150) for crashtest orange.
Backed out changeset 80ce41a4e6ee (bug 894150)
Backed out changeset b41c7f2ddda5 (bug 894150)
2013-07-16 12:33:56 -04:00
Paul Adenot
127e99dd3c Bug 894150 - Unregister the PannerNode in the AudioListener when destroying the stream. r=ehsan 2013-07-16 14:45:41 +02:00
Ehsan Akhgari
2ef673d28b Bug 815643 - Part 4: Add the Convolution processing implementation to the build system; r=roc
--HG--
extra : rebase_source : 2a5aa609334c67bb9b09090d9f681c5c3a940c5c
2013-06-10 16:09:01 -04:00
Ehsan Akhgari
5e015adfe7 Bug 879014 - Part 1: Implement the alternate enum values for PannerNode; r=roc 2013-06-03 19:22:48 -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
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
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
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
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
aa479f73fd Bug 866737 - Unregister PannerNodes when they're unlinked by the cycle collector; r=padenot 2013-04-29 14:06:40 -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
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
65f9c8c375 Bug 864086 - Simplify AudioNode::DestroyMediaStream callers; r=padenot 2013-04-22 08:14:10 -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
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
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
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
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
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
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
78ca80f126 Bug 849914 - Implement the latest spec changes to PannerNode and AudioListener; r=roc 2013-03-11 19:09:27 -04: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
Andrew McCreight
9e1bb32dec Bug 815454 - Clean up Traverse/Unlink of web audio. r=smaug 2012-11-27 15:08:22 -08:00
Ehsan Akhgari
5b5d63517f Bug 811864 - Remove PannerNode.coneGain/distanceGain; r=bzbarsky 2012-11-14 13:03:24 -08: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