Commit Graph

606 Commits

Author SHA1 Message Date
Matthew Gregan
d7d00cf46f Bug 927245 - Preliminary work to enable preffing off the deprecated Audio Data API implementation. r=ehsan 2013-10-18 15:10:56 +13:00
JW Wang
b68260ee29 Bug 927322 - AudioDestinationNode should support weak reference; r=ehsan 2013-10-16 17:27:45 +08:00
Paul Adenot
75e0bc22e6 Bug 918861 - Update tests that were relying on a 48000Hz samplerate. r=ehsan
--HG--
extra : rebase_source : 84ba0d07e2c1905bc9b7d6e37121c6e0d3d53b33
2013-10-17 15:44:52 +02:00
Paul Adenot
98de946d68 Bug 918861 - Allow the MSG to choose a better samplerate than 48000Hz. r=roc
--HG--
extra : rebase_source : 2181ccbbdca370031d1d3ae5b44ef4e37a3e948c
2013-10-17 15:44:52 +02:00
Karl Tomlinson
e228c084a4 b=923106 recompute frequency dependent parameters when OscillatorType changes r=padenot
mSquare, mTriangle, and mSaw are not initialized in the OscillatorNodeEngine
constructor, just like they are not initialized when switching to
OscillatorType::Sine.  These parameters are initialized if and when switching
to the OscillatorTypes that use them.

mFinalFrequency, mNumberOfHarmonics, mSignalPeriod, mAmplitudeAtZero,
mPhaseIncrement, mPhaseWrap are not initialized in the OscillatorNodeEngine
constructor, just like they are not initialized immediately on switching
OscillatorType.  These parameters are initialized in
UpdateParametersIfNeeded(), conditional on mRecomputeParameters.

--HG--
extra : transplant_source : a%C1%83%03%03%5CJ%88%99j%A0%93%05%92%06%CA%D6%8B%00%21
2013-10-15 13:10:02 +13:00
Andrea Marchesini
848dcf3943 Bug 924870 - AudioContext.mozAudioChannel attribute, r=ehsan 2013-10-11 13:55:47 +02:00
Karl Tomlinson
2cc43e65c2 b=924288 no need to set filter parameters after every process() r=ehsan
--HG--
extra : transplant_source : %23%D1%3B%D8%03%85%25%95%A8z%15%24K%F0%F7f2%20u%95
2013-10-09 15:33:07 +13:00
Karl Tomlinson
1882e19f7d b=924286 handle non-unit mVolume in BiquadFilterNode r=ehsan
--HG--
extra : transplant_source : %E5%9E%3E%5D%F2%E5%99%7B%88%DB%21%7D%1C%82%1A.q%26%F0%EA
2013-10-09 15:33:02 +13:00
Karl Tomlinson
a5dfe99463 b=922458 allow copying the last sample in an AudioBuffer channel r=ehsan
--HG--
extra : transplant_source : %5EM%40g%06n%04%A1%DB%0A%7D%3A%5C6%21%CA%C101%09
2013-10-09 15:32:16 +13:00
Andrea Marchesini
937fe179d0 Bug 874508 - Web Audio is connected to AudioChannelService, r=ehsan 2013-10-08 20:20:33 +02:00
Phil Ringnalda
d1a7c5d6ec Merge b-i to m-c 2013-10-04 22:06:34 -07:00
Carsten "Tomcat" Book
623455bcc7 Backed out changeset b607cc162c2c (bug 874508) for causing perma orange b2g-crashtest failures 2013-10-04 16:31:02 +02:00
Andrea Marchesini
aaf2e61bf2 Bug 874508 - Web Audio is connected to AudioChannelService, r=ehsan 2013-10-04 06:27:49 -04:00
Phil Ringnalda
674bb561f6 Backed out changeset 643354059afb (bug 874508) for b2g build bustage
CLOSED TREE
2013-10-03 20:11:58 -07:00
Andrea Marchesini
fdbb7e1fbe Bug 874508 - Web Audio is connected to AudioChannelService, r=ehsan 2013-10-03 18:42:04 -04:00
Andrea Marchesini
8c22a53a8f Bug 923517 - AudioDestinationNode should work as an EventTarget, r=ehsan 2013-10-03 18:40:20 -04:00
JW Wang
9fefe5496e Bug 921695 - Part 2: Modify callers. r=karlt 2013-10-01 14:22:57 +08:00
JW Wang
a27668516f Bug 921695 - Part 1: Add convert function. r=karlt 2013-10-01 14:22:54 +08:00
Ms2ger
9d5ce8dfb7 Bug 922268 - Remove empty makefiles; r=gps 2013-10-03 09:10:00 +02:00
Masayuki Nakano
0823bd31f1 Bug 920377 part.31 Get rid of nsEvent r=roc 2013-10-02 12:46:04 +09:00
Ehsan Akhgari
40824c7e13 Convert the Web Audio DynamicsCompressorNode fatal assertion to a warning, because it should not be a fatal assertion (no bug) 2013-09-30 18:20:03 -04:00
Karl Tomlinson
a529c5bdb3 b=910174 add DelayNode's tail-time reference as soon as the engine receives sound r=ehsan
This removes the dependence on AllInputsFinished() which didn't return true
for many input types.

The DelayProcessor is no longer continuously reset (bug 921457) and the
reference is now correctly added again when all inputs are finished and then
new inputs are connected.

--HG--
extra : rebase_source : b85c62305a6fcfce57bd40a11edaeaaf2a63c188
2013-10-01 09:50:04 +13:00
Karl Tomlinson
21ac35b75a b=921675 use maximum instead of current delay for tail time because delay can increase faster than time passes r=ehsan
--HG--
extra : rebase_source : b74864829e5fa0cdfbd555d93d2c71dd656f2258
2013-10-01 09:50:03 +13:00
Gregory Szorc
c44d9c8614 Bug 920223 - Part 1: Mass convert MOCHITEST_FILES to manifests; rs=Ms2ger 2013-09-30 09:51:57 +02:00
Ed Morley
eae8f15a4a Backed out changeset 77bff106b704 (bug 920223) 2013-09-30 12:50:12 +01:00
Gregory Szorc
3d0a157ac2 Bug 920223 - Part 1: Mass convert MOCHITEST_FILES to manifests; rs=Ms2ger 2013-09-30 09:51:57 +02:00
Karl Tomlinson
04e5132bbb b=912474 use speex_resampler_process_int on platforms where speex_resampler_process_float expects samples in the range +/-32767 r=ehsan
--HG--
extra : rebase_source : 48b08dc174e49d26b80ac4e439f97c5e2fa65f58
2013-09-28 12:16:57 +12:00
Karl Tomlinson
dda93e86d7 b=920987 check for ovrflw in addition r=ehsan
--HG--
extra : rebase_source : 759d416f4697bb60dd24b104678b6fb259ee308d
2013-09-28 12:11:26 +12:00
Matthew Gregan
8d51f7a552 Bug 920867 - Split VideoInfo into Video and Audio objects, then encapsulate in new MediaInfo object. r=cpearce 2013-09-27 17:22:38 +12:00
Karl Tomlinson
ac34407a47 b=918221 don't remove OscillatorNode playing ref on stop() but wait until finished r=ehsan
--HG--
extra : transplant_source : %A6%90%DB%00%FD5.%40%ED%F6l%17%E69E%D6%40%B5%EA%2A
2013-09-24 13:48:56 +12:00
Karl Tomlinson
41f2afcff3 b=918213 dispatch onended from OscillatorNode even when stop time is before start r=ehsan
This makes OscillatorNode consistent with AudioBufferSourceNode

--HG--
extra : transplant_source : %AE8%3B%B4%E5M%60%03%CBN.%21%BD%FF%60%A6%F2a%BDi
2013-09-24 13:48:35 +12:00
Karl Tomlinson
0fa976d665 b=918212 make OscillatorNode a MainThreadListener for its stream so that ended is dispatched r=ehsan
--HG--
extra : transplant_source : %9D%B8%82%B3%B1%99%C6%CE%1C%E1%DDs%D1%40%EA%E3%DD%D2%01%A4
2013-09-24 13:47:30 +12:00
Karl Tomlinson
369838f31f b=914033 add active nodes to CC traversal of AudioContext when the context is not rendering r=ehsan
An OfflineAudioContext needs to keep references to nodes that will be used if
startRendering() is called.  If, however, the last reference to the Context is
removed, then startRendering() will not be called and so the nodes will not be
used and can be unlinked now.

--HG--
extra : transplant_source : %D4%91%0B%99K%2A%3E%906%1D%08%5D%60%84%B8%25O%3C%08D
2013-09-24 13:47:30 +12:00
Karl Tomlinson
c56ab2cb32 b=914033 use AudioContext::RegisterActiveNode() in AudioBufferSourceNode r=ehsan
Storing references on the AudioContext instead of on the AudioNodes will allow
the AudioContext to report them to the cycle collector until offline rendering
starts.

--HG--
extra : transplant_source : %13%87%97%9F%CD%D8V%16%D2%D4%B5%84D%0A%D6%02%9BNj%FC
2013-09-24 13:47:00 +12:00
Karl Tomlinson
98b52b4d99 b=914033 use AudioContext::RegisterActiveNode() in ScriptProcessorNode r=ehsan
Storing references on the AudioContext instead of on the AudioNodes will allow
the AudioContext to report them to the cycle collector until offline rendering
starts.

--HG--
extra : transplant_source : %CD%5Els2%7F/%DD%5E%07%08%FE%29%5B%98%95%F3%11G%E6
2013-09-24 13:46:30 +12:00
Karl Tomlinson
89cd46ef7d b=914033 use AudioContext::RegisterActiveNode() in OscillatorNode r=ehsan
Storing references on the AudioContext instead of on the AudioNodes will allow
the AudioContext to report them to the cycle collector until offline rendering
starts.

--HG--
extra : transplant_source : %81%83Hp%F6T%E7%9EA%B3%D0%5Dz%EA%1FYv%A2%23%ED
2013-09-24 13:45:41 +12:00
Paul Adenot
5c66861bdf 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
d72b8f68e2 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
a1241e028e 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
9afb11760d 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
c94c62d6d1 Bug 917260 - Nullcheck Destination() in AudioContext::DestinationStream. r=ehsan 2013-09-17 15:23:52 +02:00
Ralph Giles
ee917522f4 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
260debb621 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
96f4f677b2 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
7d11abd2ed 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
8281440e86 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
24edb394d3 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
7445da2394 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
cf1704526c 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
92875436fc 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