Commit Graph

570 Commits

Author SHA1 Message Date
Paul Adenot
14628109ab Bug 881959 - Clamp the DelayNode.delayTime to 128/AudioContext.sampleRate when in a cycle. r=ehsan
--HG--
extra : rebase_source : 7cf8945371bb6ff169ad61a8ccdda0ece36b5e83
2013-09-02 15:15:24 +02:00
Paul Adenot
7fb6ee6768 Bug 881959 - Tests for cycles in WebAudio graphs. r=ehsan
--HG--
extra : rebase_source : 5366c6aa0bb59f14adee74a3088488f9b15b52b1
2013-09-02 15:14:51 +02:00
Paul Adenot
7c95321d67 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 : d4bc378128cf15f8d8395b45b4443ca6b06c5bd2
2013-08-26 19:19:36 +02:00
Karl Tomlinson
078c7bc257 b=917260 null check mDestination in AudioContext::Shutdown() r=ehsan
This handles the case where Shutdown() is called after Unlink()
(but before the destructor).

--HG--
extra : transplant_source : %97A%BE%60%F5j%F5%F0GT%C2%B6%F8%A2%BD%13%2B%02%83R
2013-09-19 12:04:13 +12:00
Paul Adenot
611d691e3a Bug 917260 - Nullcheck Destination() in AudioContext::DestinationStream. r=ehsan 2013-09-17 15:23:52 +02:00
Ralph Giles
f574450bd6 Bug 865256 - Part 4: Implement custom waveforms. r=ehsan,padenot
Copy the periodicWave data into a shareable buffer.

Add a SetBuffer call to send the buffer data to the
OscillatorNodeEngine. Call into blink's PeriodicWave
implementation to generate bandlimited tables bracketing
the desired frequency and interpolate the output data
from them.

Change the PeriodicWave constructor to only take one
length, since both arrays must be the same size.

Change OscillatorNode's SetType to throw INVALID_STATE
instead of NOT_IMPLEMENTED if js tries to assign
type = 'custom' directly.
2013-08-28 15:39:26 -07:00
Ralph Giles
d120591c10 Bug 865256 - Part 3d: Port blink's PeriodicWave to gecko. r=ehsan
Changes to use gecko infrastructure.
2013-09-10 14:33:03 -07:00
Ralph Giles
fd839881f9 Bug 865256 - Part 3c: Import blink's PeriodicWave. r=ehsan
From 3807300c75ae70f004b76cbce023e59a0367e09b Mon Sep 17 00:00:00 2001
This is the original code from blink svn trunk r157670 for reference.
This commit has no porting or build support, to make subsequent changes
easier to identify.
2013-09-10 14:29:51 -07:00
Ralph Giles
3006203577 Bug 865256 - Part 3b: Add a complex->real ifft to FFTBlock. r=ehsan
From ea43bceaf8f6dd2c44d7f55a45f770be19b335a5 Mon Sep 17 00:00:00 2001
Currently FFTBlock only holds the complex frequency domain data
internally, reading and writing to external time domain data
buffers. For PeriodicWave we need to create a real, time domain
signal from real and imaginary frequency domain data. This method
does this without touching the internal output buffer at all.
FFTBlock is just used as a wrapper for kiss_fft_cfg.
2013-09-10 11:00:17 -07:00
Paul Adenot
8f5abfa81f Bug 908669 - Use band-limited impulse trains (BLIT) for OscillatorNode. r=rillian
This fixes the aliasing noise in the default oscillator types.
2013-09-17 10:36:00 -07:00
Karl Tomlinson
55c4867ce7 b=916680 don't keep active AudioNodes alive from an AudioContext that has shut down r=ehsan
--HG--
extra : transplant_source : %20%3Fl%E0%D7R%7B_%E6%B0%C7%BB%3A%E7%21%9D%F1%A2%F4%1C
2013-09-18 13:10:30 +12:00
Karl Tomlinson
9a843336e3 b=910171 register tail references with the AudioContext so they can be removed when the rendering is complete r=ehsan
--HG--
extra : transplant_source : %8C%C3%C2%2B%1B%E9Q%9B%0E%DE%B4%AA%02%B2%D1%A0S%F1%EC%0D
2013-09-17 11:54:52 +12:00
Karl Tomlinson
608b070c45 b=910171 add a general means to keep active nodes alive from the AudioContext r=ehsan
AudioNodes that keep playing or tail-time references need to have these
references cleared when an AudioContext has completed or is shut down by the
window.

Storing references on the AudioContext instead of on the AudioNodes will allow
the AudioContext to report playing references to the cycle collector until
offline rendering starts for bug 914033.  This is not necessary for tail-time
references, but it is tidier to use the same code for playing and tail-time
references.

--HG--
extra : transplant_source : %E0%F1%06%BFV%B6XI%9BX%8E%8D7%3FsU%8F%F9%14r
2013-09-17 11:53:40 +12:00
Karl Tomlinson
f0f3cd0ecb b=916422 make OfflineAudioContext::StartRendering() throw if called more than once r=ehsan
--HG--
extra : transplant_source : %B6T%C0C%F0/%03%A3C%25%9B%EF%A8%C41%8E%86%E9%FCr
2013-09-16 17:14:45 +12:00
Paul Adenot
5d34d71eef Bug 916773 - Initialize mLatency in SharedBuffer's constructor. r=ehsan 2013-09-16 17:37:26 +02:00
Ehsan Akhgari
ef3770d249 Bug 917299 - Remove some dead code in content/ and dom/; r=bzbarsky 2013-09-17 12:49:07 -04:00
Ed Morley
a3ff7956ba Backed out changeset 9524b1df278e (bug 908669) 2013-09-17 17:14:58 +01:00
Ed Morley
6a8bde5bc5 Backed out changeset fb89f2090779 (bug 881959) 2013-09-17 17:14:55 +01:00
Ed Morley
fc3dc2a135 Backed out changeset b221626331b4 (bug 881959) 2013-09-17 17:14:45 +01:00
Ed Morley
14cbc2101a Backed out changeset 2aa38a1a2b06 (bug 881959) 2013-09-17 17:14:42 +01:00
Ed Morley
1b19fad168 Backed out changeset 3d2aac8dc618 (bug 916773) 2013-09-17 17:14:39 +01:00
Ed Morley
6013f526dd Backed out changeset 4323508b3412 (bug 917260) 2013-09-17 17:14:33 +01:00
Ed Morley
5ec4d375ee Backed out changeset 7d17f2d129e3 (bug 881959) 2013-09-17 17:14:26 +01:00
Paul Adenot
35cd2c5606 Bug 881959 - Fix inbound bustage on XP again, on a CLOSED TREE. 2013-09-17 17:25:33 +02:00
Paul Adenot
06ee843621 Bug 917260 - Nullcheck Destination() in AudioContext::DestinationStream. r=ehsan
--HG--
extra : rebase_source : daec86b27d8497ba109ca998f0fccf3d6d7c3677
2013-09-17 15:23:52 +02:00
Paul Adenot
eeb99d293f Bug 916773 - Initialize mLatency in SharedBuffer's constructor. r=ehsan
--HG--
extra : rebase_source : a40fb148498981c1a65a5cd9756201b90d8d98a4
2013-09-16 17:37:26 +02:00
Paul Adenot
65b02e466e Bug 881959 - Clamp the DelayNode.delayTime to 128/AudioContext.sampleRate when in a cycle. r=ehsan
--HG--
extra : rebase_source : 5282e468fbe411a455f65bc0d22b16163db4bd7a
2013-09-02 15:15:24 +02:00
Paul Adenot
a4656230f2 Bug 881959 - Tests for cycles in WebAudio graphs. r=ehsan
--HG--
extra : rebase_source : 6673c86a52952d05e3fdf60205250379ad27d82f
2013-09-02 15:14:51 +02:00
Paul Adenot
f4a229fbf9 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
Paul Adenot
56edbaaf01 Bug 908669 - Use band-limited impulse trains (BLIT) for OscillatorNode. r=rillian
--HG--
extra : rebase_source : c786c507b48a1fcdd49e7c14482d621a463f6c9c
2013-09-16 16:48:33 +02:00
Ehsan Akhgari
e33789d856 Bug 915524 - Implement AudioBuffer.copyFromChannel and AudioBuffer.copyToChannel; r=roc 2013-09-17 07:30:32 -04:00
Karl Tomlinson
5751aaa536 b=914030 don't keep alive used AudioContexts from the window r=ehsan,bz
--HG--
extra : transplant_source : %9D%94%FF%AA%92%C7%5B8%FA%C7%DD%3A%E3W%9E%BD%7F%25%5C%19
2013-09-12 16:16:53 +12:00
Karl Tomlinson
91b88fa3bd b=914030 keep a self reference on destination while offline context is rendering r=ehsan
--HG--
extra : transplant_source : %FAk%98%E7%CB%2C%C6uf%EE%F4%CFq%3D%A7%D1%D6%E9%F1%29
2013-09-10 17:10:53 +12:00
Karl Tomlinson
7f81f91b49 b=914030 shutdown an OfflineAudioContext when it has completed r=ehsan
This is needed to remove self-references in the graph when no more processing
will take place on the graph.

--HG--
extra : transplant_source : %EC%82%A8s%3D%08%E4%FB%8C%A5%A6%28d/2%89Rz%98s
2013-09-10 17:10:36 +12:00
Karl Tomlinson
7a48a1f657 b=914030 shut down an AudioDestinationNode's graph on destruction, if not already r=ehsan
This means that the graph will be shutdown properly, even if the
AudioDestinationNode is unlinked before AudioContext::Shutdown() is called.

Making MediaStreamGraph::DestroyNonRealtimeInstance() idempotent also makes
AudioContext::Shutdown() idempotent.

--HG--
extra : transplant_source : jZ%86%C5%C2n%17%EF%C2%C0y%ED%14%0E%17_dt%0C%07
2013-09-10 17:05:22 +12:00
Karl Tomlinson
e2e8e5cdd4 b=914030 remove MediaBufferDecoder::Shutdown(), no longer necessary since bug 900711, as part of making AudioContext::Shutdown() idempotent r=ehsan
--HG--
extra : transplant_source : %A8%BB%7D%A3%A6%87NF%F3%9D.Lu%D4%15B%10%9C%DFR
2013-09-10 17:03:06 +12:00
Karl Tomlinson
3609f6d2d3 b=914030 update AudioNode ownership comment r=roc
--HG--
extra : transplant_source : %B2z%F7%B7%8F%0F%AB%95N%B0%82%AC%8D%917%1B%84%3D%3A%9C
2013-09-10 16:35:47 +12:00
Karl Tomlinson
7b39d8a51c b=914013 tighten detection of end of buffer playback r=ehsan
--HG--
extra : transplant_source : %40%3F%5D%9A%05%87b%97%12%7BO%8A%2Ai%F38%98%F4.%DF
2013-09-10 15:39:19 +12:00
Karl Tomlinson
54ae7bf864 b=911777 collect cycles before getting maxChannelCount to release some cubeb streams r=padenot
--HG--
extra : transplant_source : %C3W%96%C2J%B9%B4V%9C%C0yA%10%09%7B%B2%17%D8%E0R
2013-09-07 00:33:32 +12:00
Ms2ger
1c16df3e56 Bug 913923 - Part b: Move OwningNonNull into its own header; r=dzbarsky
--HG--
rename : dom/bindings/BindingUtils.h => dom/bindings/OwningNonNull.h
2013-09-10 09:03:37 +02:00
Ehsan Akhgari
143454cc1a Bug 912702 - Minimize the #includes in content/media; r=roc 2013-09-05 16:25:17 -04:00
Ehsan Akhgari
92ad73ef93 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
be1e68caf3 Bug 912702 - Minimize the #includes in content/media; r=roc 2013-09-04 17:58:14 -04:00
Robert O'Callahan
33cdb42706 Bug 910989. Remove nsTHashtable::Init, fallible allocation, and MT hashtables. r=ehsan,bsmedberg
--HG--
extra : rebase_source : 0787130b1814c74bfb38dc178de94022f0b2e64e
2013-09-02 20:41:57 +12:00
Mike Hommey
f1cf3b4238 Bug 912293 - Remove now redundant boilerplate from Makefile.in. r=gps 2013-09-05 09:01:46 +09:00
Karl Tomlinson
e1e0a17c5b b=906966 limit ScriptProcessorNode input channel count through channelCount and channelCountMode r=ehsan
--HG--
extra : transplant_source : %E6-%8A%10%BEb%FEg%8C%C3f%2C%1F%C6%859%E5%27%1C%60
2013-09-05 07:44:37 +12:00
Karl Tomlinson
949c11371d b=906966 limit ConvolverNode and PannerNode input channel count through channelCount and channelCountMode r=ehsan
--HG--
extra : transplant_source : %8A%FB%BC%D3%D0%F3Ct%A5%D1%B1%AF%3D%9Bk%896%7F%7F%1F
2013-09-05 07:44:35 +12:00
Karl Tomlinson
4a187db18b tests for convolver and panner channelCount b=906966
--HG--
extra : transplant_source : %17%A2WFH%18%7E-c%2CZVC%AAc%85%FB%02%BE%BD
2013-09-05 07:44:04 +12:00
Karl Tomlinson
04ac113d63 b=907986 remove unused ThreeDPoint::Distance() r=padenot
--HG--
extra : transplant_source : %19%DD%A9%CB%CC%B1%C42%E2%8EY%CE%22%89o_%97i%03_
2013-09-04 21:21:00 +12:00
Karl Tomlinson
9bea792d2f 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