Commit Graph

705 Commits

Author SHA1 Message Date
Birunthan Mohanathas
3440613a39 Bug 713082 - Part 2: Rename Util.h to ArrayUtils.h. r=Waldo
--HG--
rename : mfbt/Util.h => mfbt/ArrayUtils.h
2013-12-08 21:52:54 -05:00
Karl Tomlinson
9e34766ff3 test for bug 937475
--HG--
extra : transplant_source : %BC%9F%D3%7FB%A2%93%F45%0E%A7%FD%BCXK%7D%D6I%29%8C
2013-12-04 14:40:38 +13:00
Karl Tomlinson
87c5a7f8be b=937057 remove resampler latency from BufferSource playback r=padenot
--HG--
extra : transplant_source : /pU%E1%EC%93%1F%04%29%7D%86%E7%C2%21%F6k%15%C0Bm
2013-12-04 14:20:12 +13:00
Karl Tomlinson
3e6429ba79 b=938450 test resampling by resampling back to original sample rate
--HG--
extra : transplant_source : z%D9%E8%9A%CC%0E%5B%A7%F3C%86%20%3BT%02%3F%06%CEzb
2013-12-03 20:29:24 +13:00
Karl Tomlinson
75eb0073f7 b=938450 use an OfflineAudioContext to test decodeAudioData at different sample rates f=padenot
--HG--
extra : transplant_source : %CF.%22r%F8%BB%D7%21%17%E9%96%19y1%5B%D0%E6%F0%D1%18
2013-12-03 12:23:49 +13:00
Karl Tomlinson
b20fe1ce50 b=938450 load the expected file only once and remove unused monoTest parameter
--HG--
extra : transplant_source : %8C%A4%04%FB%9E%F3%1D%90%DB%C7%B1-e.%1C%08%B7%84%7Fl
2013-12-03 12:21:00 +13:00
Karl Tomlinson
aa0a7e078f b=938450 reduce the number of offset parameters to compareChannels() f=ehsan
findFirstNonZeroSample() won't return an offset > buffer length, so clamping
the result to <= 2048 is not necessary.

--HG--
extra : transplant_source : %28HV%B3%9A%AA%D6%8C6n%FD%18%AE%D6g%83%03%EA%09%D4
2013-12-03 12:20:46 +13:00
Karl Tomlinson
45cc079f92 b=938450 rename compareBuffers to compareChannels & add compareBuffers f=ehsan
--HG--
extra : transplant_source : %93W%BC%84%FF%10%9B%F5%CD5%98%0E%F0/%F2R%B9W%1E%94
2013-12-03 12:13:15 +13:00
Karl Tomlinson
c2f93b452f b=938450 test lengths of decoded audio and change 48k wav files to 48k f=padenot
New wave files differ from those generated from ogg files using sox 14.4.1 and
libvorbis 1.3.3 by being one quantum less on about half of the samples.

--HG--
extra : transplant_source : B%27%8F%2B%40%22%C5%25%0CS%22%28%40%C0%C3%0EM%87%87%A7
2013-12-03 12:10:38 +13:00
Karl Tomlinson
b56423c2be b=938450 process all input samples in decodeAudioData r=padenot
--HG--
extra : transplant_source : %01%B2%FE%DA%BE%2CcX%B9%A7%60%15%FB%08%C5%2AS%99%B28
2013-12-03 12:09:01 +13:00
Karl Tomlinson
3d689d137a b=937057 provide a null ptr instead of a zero buffer when processing resampler tail r=padenot
--HG--
extra : transplant_source : %8EK%22q%A6%E9%82%F1%5E-%9E%BEs%01%F1%D1Jj%097
2013-12-03 12:07:17 +13:00
Karl Tomlinson
40a355cd1f b=937475 separate stream position from buffer position so that stop time can use stream position r=ehsan
--HG--
extra : transplant_source : %8C%F0%05w%0A%C6%21%11%D5A4%85%FD%BC%D6%1F%9A%B8%FE%CB
2013-12-03 12:07:17 +13:00
Karl Tomlinson
6595fc5808 b=937475 change DURATION from end-offset to duration and compare buffer length using integer sample count r=ehsan
--HG--
extra : transplant_source : %2BS%A0%A1%C04%BC%1D%A7vDh%8E%A4%F7%90%E62%DC%3D
2013-12-03 12:07:17 +13:00
Karl Tomlinson
c7825beee6 b=939491 avoid producing infinite stream of subnormals in BiquadFilterNode tail r=padenot
Using double precision for the processing means the main loop is unlikely to
encounter subnormals and provides suitable extra precision to minimize
accumulation of error.

If the tail output values are denormalized when converted to single precision
then flush them to zero to reduce downstream computation cost.

--HG--
extra : transplant_source : %08%09u%C48%E3i%AB%23%1B%D8_kz%E5%A8_%3D%C4%93
2013-12-03 12:07:16 +13:00
Ehsan Akhgari
1a8e3f714a Bug 939571 - Build Web Audio in unified mode; r=glandium 2013-11-19 14:11:16 -05:00
Mike Hommey
2812d11fce Bug 939632 - Remove LIBRARY_NAME for leaf libraries. r=gps
Landing on a CLOSED TREE.
2013-11-19 11:50:54 +09:00
Mike Hommey
e06d795c71 Bug 939074 - Remove most LIBXUL_LIBRARY. rs=gps 2013-11-19 11:48:10 +09:00
Mike Hommey
e80e877ab7 Bug 939044 - Remove most definitions of MODULE. r=mshal 2013-11-19 11:47:39 +09:00
Mike Hommey
ffe0380912 Bug 935881 - Use FINAL_LIBRARY for all (fake) libraries that end up linked in a single other library. r=gps 2013-11-19 11:47:14 +09:00
Peiyong Lin
b7f5656542 Bug 934440 - Statically assert that MEDIA_STREAM_DEST_TRACK_ID is different than AUDIO_TRACK. r=jdm 2013-11-12 08:37:17 -05:00
Ms2ger
0fdc697b63 No bug - Fix some style issues in DOM code. 2013-11-11 09:04:41 +01:00
Ms2ger
b63b756490 Bug 931404 - Move LOCAL_INCLUDES to moz.build in content/; r=gps 2013-11-11 09:04:06 +01:00
Karl Tomlinson
16c0538632 b=931311 wait for HRTF panner to load impulse database before doing test
--HG--
extra : transplant_source : %2A%1F%D0kKSr%AA%8F%C1%26%E5%E6%EC%D5%CF%8C%A9%D11
2013-11-09 14:07:50 +13:00
Karl Tomlinson
5067764d69 b=936317 prevent MediaBufferDecoder threads from waiting after AudioContext shutdown() r=ehsan
--HG--
extra : transplant_source : %CE%E5O%83N%8FX%ED%2Ck%17I%B1%92%B6%A0lXH%D1
2013-11-09 14:07:45 +13:00
Karl Tomlinson
05d62a8b18 b=856850 use PodMove for potentially overlapping buffers r=roc
--HG--
extra : transplant_source : %A2%F8%85%0C%08%86%CE%E2%7F%A7X%9F%F1%B7%0E%3F%16%1E%BF%3F
2013-11-05 13:02:55 +13:00
Karl Tomlinson
a5f7733394 Bug 933156 - Don't send null input to EqualPowerPanningFunction. r=roc 2013-11-04 14:22:37 -05:00
Andrea Marchesini
8e89b14fa1 Bug 925594 - WebIDL enum for AudioChannel in HTMLMediaElement, r=ehsan, r=khuey 2013-10-28 17:08:14 -07:00
Carsten "Tomcat" Book
d00bdf2431 Backed out changeset 5506e7033c85 (bug 925594) perma-orange mochitest test-failure on b2g-ics
--HG--
extra : transplant_source : %19E%9F_%BF%84%27%11%0D%DE%CA.%E7%09%9D%FD3%1A2U
2013-10-28 15:34:08 +01:00
Andrea Marchesini
028b3d33fb Bug 925594 - WebIDL enum for AudioChannel in HTMLMediaElement, r=ehsan, r=khuey 2013-10-28 03:45:10 -07:00
Karl Tomlinson
2b3444a66e 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
3e9fb0ce4d 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
bc9f136d2d b=898291 erase azimuth/elevation history when reset()ing HRTFPanner r=ehsan
so that old cross-fade info does not distort new sound when a PannerNode
finishes and restarts.

--HG--
extra : transplant_source : I%A9%DAx%9F%AE%B8%88%90FN%3B%3E%FC%FE%827%CB%10%8C
2013-10-25 14:05:42 +13:00
Karl Tomlinson
b74d3ed9ec mochitest for bug 898291
--HG--
extra : transplant_source : %1F%18%3A%91%21%06%B6%C47%7Ck%83%C7%C8yo%2A%22%A5%02
2013-10-25 14:05:42 +13:00
Karl Tomlinson
4503f80c5a b=924288 continue producing BiquadFilter sound output after input becomes null r=ehsan
--HG--
extra : transplant_source : %A6%DDf%09%98C%C0%E6%AEy%F8%F6%FF%7E/f%D7%12Ub
2013-10-25 14:05:42 +13:00
Karl Tomlinson
1e1ae1b30b b=923301 use MediaStreamGraph to dispatch the other PlayingRefChangeHandlers too r=trivial
--HG--
extra : transplant_source : %A6%9F%81%40%AF%EE_EU%03%BCvZ%0B%1CE%7F%8C%80F
2013-10-25 14:05:41 +13:00
Mike Hommey
b000a846c2 Bug 929905 - Consolidate sources in moz.build. r=gps 2013-10-25 08:23:05 +09:00
Karl Tomlinson
7d5f234734 b=923301 use MediaStreamGraph to dispatch PlayingRefChangeHandlers r=roc
This reduces the number of events dispatched to the main thread
and ensures these run in order with other pending updates.

--HG--
extra : transplant_source : %5E%235%DEz%EB%7D%C6%C7%F8%AF%A3%84%1F%F9%5B%87D%B3%13
2013-10-25 12:12:33 +13:00
Karl Tomlinson
7fd355fc05 b=923301 skip reverb processing when input has been null long enough for output to be null r=roc
--HG--
extra : transplant_source : t%F4Fi%7C%FE%A0l%7B%8FT%9D%F8%F8A%15%93%2A%5Bw
2013-10-25 12:12:13 +13:00
Karl Tomlinson
dade295bc2 b=923301 skip delay processing when nothing is buffered and input is null r=roc
--HG--
extra : transplant_source : %60%1B%88Z%BD%9AoAI%92%FA%B1%E4%A1%EFg%2A%FE%05%8F
2013-10-25 12:12:13 +13:00
Karl Tomlinson
c087522703 b=923301 send only one release message when convolver tail time expires r=roc
--HG--
extra : transplant_source : p%B7dN%D9%A7%DB%F3%FB%A9a%85%BC%2BH%A4uW%A4%84
2013-10-25 12:12:13 +13:00
Karl Tomlinson
a9d4f15ee6 b=923301 send only one release message when delay buffer is drained r=roc
--HG--
extra : transplant_source : %C7%8Ag%B2%C52X%A2%96%D1%8E%BB%15%E4%15%CC%1D%1Er%B8
2013-10-25 12:12:13 +13:00
Karl Tomlinson
748b20e3a4 b=923301 remove now-unnecessary node-type templating of PlayingRefChangeHandler r=roc
--HG--
extra : transplant_source : %0A%BA%C9%1D%1AX%0Dxg9%3BL%1F%98%BE%98%87%20o%3A
2013-10-25 12:12:12 +13:00
Karl Tomlinson
c9bdef52d5 b=923301 remove now-unnecessary AcceptPlayingRefRelease r=roc
--HG--
extra : transplant_source : %7B%21%18%B17%16%7B%9E%9F%B3%23%17%FD%3DZ%FC%5C%0F%D3%8C
2013-10-25 12:11:24 +13:00
Karl Tomlinson
1c5f0e79ec b=923301 keep a tail-time reference on DelayNode until *after* the last non-silent block has been produced r=roc
This gives a downstream node a chance to take a tail-time reference when it
receives the last non-silent block from the DelayNode.

--HG--
extra : transplant_source : %B5%7C%E1%F6%00%D4W%D6%A22%0C%F2%0A%2C%60%F2%18%C6%A5%B8
2013-10-25 12:11:24 +13:00
Karl Tomlinson
55b7a4274f b=923301 keep disconnected destination nodes alive long enough for their engines to add tail-time references if necessary r=roc
--HG--
extra : transplant_source : %24%5D%7B%3F%7E%87%20%FF%20%09%CE%AD%91%F8%7C%E7%E1%DB%3D%83
2013-10-25 12:11:01 +13:00
Brian O'Keefe
9c9d71fddb Bug 928709 - Convert chromium-config.mk to mozbuild, r=mshal 2013-10-02 13:17:55 -04:00
Birunthan Mohanathas
a058382a85 Bug 784739 - Switch from NULL to nullptr in content/; r=ehsan
--HG--
extra : rebase_source : 9237726507e8002479616a98a82646a763932507
2013-10-23 16:34:10 -04:00
Karl Tomlinson
29f8ad0439 b=925619 simplify loop sanity checks r=ehsan
The removed condition is always satisfied when mLoopEnd > 0.0

--HG--
extra : transplant_source : 4%9F%7C%92%F7-f%05%F96%0F%7C.%AF%8CE%82F%D3%A0
2013-10-23 18:40:11 +13:00
Karl Tomlinson
c05507569d b=925619 truncate TrackTicks differences to uint32_t after limiting to WEBAUDIO_BLOCK_SIZE r=ehsan
--HG--
extra : transplant_source : %F6%8B%89C%60%02Hm%11%9FZ%F7I%2BJ%CF%23%8E%CE%D3
2013-10-23 18:36:59 +13:00
Matthew Gregan
50cbffb3ef 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
e1956dccf3 Bug 927322 - AudioDestinationNode should support weak reference; r=ehsan 2013-10-16 17:27:45 +08:00
Paul Adenot
a676f4ac7e 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
00111b2b51 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
63a42b0bd9 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
e103c1c47e Bug 924870 - AudioContext.mozAudioChannel attribute, r=ehsan 2013-10-11 13:55:47 +02:00
Karl Tomlinson
27cf88ffdf 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
f0ee7f661f 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
4e76869b02 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
dd679dbe56 Bug 874508 - Web Audio is connected to AudioChannelService, r=ehsan 2013-10-08 20:20:33 +02:00
Phil Ringnalda
a82cbc5d48 Merge b-i to m-c 2013-10-04 22:06:34 -07:00
Carsten "Tomcat" Book
c2d9983719 Backed out changeset b607cc162c2c (bug 874508) for causing perma orange b2g-crashtest failures 2013-10-04 16:31:02 +02:00
Andrea Marchesini
581d9cf944 Bug 874508 - Web Audio is connected to AudioChannelService, r=ehsan 2013-10-04 06:27:49 -04:00
Phil Ringnalda
450b9ed8c7 Backed out changeset 643354059afb (bug 874508) for b2g build bustage
CLOSED TREE
2013-10-03 20:11:58 -07:00
Andrea Marchesini
eef83fde31 Bug 874508 - Web Audio is connected to AudioChannelService, r=ehsan 2013-10-03 18:42:04 -04:00
Andrea Marchesini
68bf49d79c Bug 923517 - AudioDestinationNode should work as an EventTarget, r=ehsan 2013-10-03 18:40:20 -04:00
JW Wang
4ffa278343 Bug 921695 - Part 2: Modify callers. r=karlt 2013-10-01 14:22:57 +08:00
JW Wang
11b47d7a8d Bug 921695 - Part 1: Add convert function. r=karlt 2013-10-01 14:22:54 +08:00
Ms2ger
1ee1f27aa3 Bug 922268 - Remove empty makefiles; r=gps 2013-10-03 09:10:00 +02:00
Masayuki Nakano
5dbc2a60e4 Bug 920377 part.31 Get rid of nsEvent r=roc 2013-10-02 12:46:04 +09:00
Ehsan Akhgari
8febb002f2 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
fec6395878 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
960af07a87 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
1cff342d15 Bug 920223 - Part 1: Mass convert MOCHITEST_FILES to manifests; rs=Ms2ger 2013-09-30 09:51:57 +02:00
Ed Morley
18a411a55c Backed out changeset 77bff106b704 (bug 920223) 2013-09-30 12:50:12 +01:00
Gregory Szorc
6ed63cb064 Bug 920223 - Part 1: Mass convert MOCHITEST_FILES to manifests; rs=Ms2ger 2013-09-30 09:51:57 +02:00
Karl Tomlinson
02d29ab666 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
6a14cf69bf b=920987 check for ovrflw in addition r=ehsan
--HG--
extra : rebase_source : 759d416f4697bb60dd24b104678b6fb259ee308d
2013-09-28 12:11:26 +12:00
Matthew Gregan
609f3ce232 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
4775d608a9 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
1eaf698496 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
7185723413 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
dda34e4051 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
fd76422dd6 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
a6c6d85ac8 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
7127e8b159 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
a37178b018 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
395218d076 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
71dddda23b 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
d3bfbb3654 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
df87016e5b Bug 917260 - Nullcheck Destination() in AudioContext::DestinationStream. r=ehsan 2013-09-17 15:23:52 +02:00
Ralph Giles
a4447ac147 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
2ea123dcde 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
bd65ff7b49 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
7a01f0d203 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
cafa3e5a01 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
d1696dd567 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
fac25b8e05 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
006662cf9c 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
83c991e4d3 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
8a595afe28 Bug 916773 - Initialize mLatency in SharedBuffer's constructor. r=ehsan 2013-09-16 17:37:26 +02:00