Commit Graph

33 Commits

Author SHA1 Message Date
Ralph Giles
99eb27b196 Bug 865256 - Part 3a: Add AudioBufferPeakValue utility. r=ehsan
From 6c057c02970c79d620527d08bc3755491c99b1d3 Mon Sep 17 00:00:00 2001
This is an equivalent, C-only implementation of blink's
VectorMath::maxmgv or Apple's vDSP_maxmgv. It finds the
maximum absolute value of the elements in a float buffer.
Used by blink's PeriodicWave implementation for normalization.
2013-09-10 10:54:17 -07:00
Ed Morley
e41d9b2e38 Backed out changeset fb89f2090779 (bug 881959) 2013-09-17 17:14:55 +01:00
Paul Adenot
e1cb07fb80 Bug 881959 - Mute WebAudio nodes that are part of a cycle that contains no DelayNode, and make cycles work. r=ehsan
--HG--
extra : rebase_source : a92e90a2fb08f784d3a1b7d0701a5dd20595c4ef
2013-08-26 19:19:36 +02:00
Ehsan Akhgari
3b48889d78 Bug 912702 - Minimize the #includes in content/media; r=roc 2013-09-05 16:25:17 -04:00
Ehsan Akhgari
22fac42fb0 Backed out changeset 2f15518f566e (bug 912702) because of B2G JB Emulator build bustage
--HG--
extra : rebase_source : 6c01ad3bc2f91b0e7e3edab84aedbfe064310a8b
2013-09-05 13:29:38 -04:00
Ehsan Akhgari
2ce2ec0cdb Bug 912702 - Minimize the #includes in content/media; r=roc 2013-09-04 17:58:14 -04:00
Robert O'Callahan
bb4a03e7ad Bug 890716. Fix race in Reverb::Reverb. r=padenot
--HG--
extra : rebase_source : 65af577f5ffcf7f7a0b650f1693f4159ddac4ac6
2013-07-26 13:35:22 +12: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
82519eedaf Bug 815643 - Part 2: Refactor our Web Audio FFT code into the FFTBlock class; r=roc
This is useful in order for us to be able to borrow code from Blink with
fewer changes, and also to explore faster platform dependent FFT
implementations in the future if needed.

--HG--
extra : rebase_source : 34bbded736e1b385754756513c59ee27ce7552a5
2013-06-10 16:08:21 -04:00
Ehsan Akhgari
6c12a5399d Bug 873553 - Part 4: Pass the sampling rate to the engine in SetTimelineParameter; r=roc
--HG--
extra : rebase_source : aa574757e9791eafd8c6825328fc4e2f65479f34
2013-05-24 13:10:08 -04:00
Ehsan Akhgari
d0bcd953b7 Bug 873553 - Part 2: Teach each AudioNodeStream about its sampling rate, and store the value inside AudioContext; r=roc
--HG--
extra : rebase_source : beed6a6f965acdff307b7d4861d5f336c224d498
2013-05-24 13:09:29 -04:00
Ehsan Akhgari
a0b78d269a Bug 865251 - Implement WaveShaperNode; r=roc 2013-05-14 00:12:30 -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
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
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
f75763a080 Bug 864709 - Part 2: Protect accesses to AudioNodeEngine::mNode using a lock; r=padenot 2013-04-24 12:13:45 -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
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
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
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
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
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
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
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
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
Robert O'Callahan
5d60f92b6f Bug 804387. Part 8: Create AudioNodeEngine and AudioNodeStream. r=jesup
Modifies MediaStreamGraph to always advance its time by a multiple of
WEBAUDIO_BLOCK_SIZE.

--HG--
extra : rebase_source : 99524b09edd4ac0e1bc6607f2ba14925bc2f11c2
2013-01-14 11:46:57 +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
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
Robert O'Callahan
85199704c0 Bug 804387. Part 8: Create AudioNodeEngine and AudioNodeStream. r=jesup
Modifies MediaStreamGraph to always advance its time by a multiple of
WEBAUDIO_BLOCK_SIZE.
2013-01-14 11:46:57 +13:00