Commit Graph

118 Commits

Author SHA1 Message Date
Eric Rahm
0c4d54b70f Bug 967817 - Finish memory reporters for Web Audio. r=roc, njn 2014-04-13 11:08:10 -07:00
Boris Zbarsky
35fca5eeeb Bug 991742 part 8. Remove the "aScope" argument of WebIDL/nsWrapperCache WrapObject() methods. r=bholley
This patch was mostly generated with the following command:

find . -name "*.h" -o -name "*.cpp" | xargs sed -e '/WrapObject(JSContext/ {; N; s/\(WrapObject(JSContext *\* *a\{0,1\}[Cc]x\),\n\{0,1\} *JS::Handle<JSObject\*> a\{0,1\}[sS]cope/\1/ ; }' -i ""

and then reverting the changes that made to
dom/bindings/BindingUtils.h, since those WrapObject methods are not
the ones we're trying to change here, plus a bunch of manual fixups
for cases that this command did not catch (including all the callsites
of WrapObject()).
2014-04-08 18:27:18 -04:00
Boris Zbarsky
56f44fdf10 Bug 991742 part 6. Remove the "aScope" argument of binding Wrap() methods. r=bholley
This patch was mostly generated with this command:

find . -name "*.h" -o -name "*.cpp" | xargs sed -e 's/Binding::Wrap(aCx, aScope, this/Binding::Wrap(aCx, this/' -e 's/Binding_workers::Wrap(aCx, aScope, this/Binding_workers::Wrap(aCx, this/' -e 's/Binding::Wrap(cx, scope, this/Binding::Wrap(cx, this/' -i ""

plus a few manual fixes to dom/bindings/Codegen.py, js/xpconnect/src/event_impl_gen.py, and a few C++ files that were not caught in the search-and-replace above.
2014-04-08 18:27:17 -04:00
Karl Tomlinson
2bb6ffd9ed b=932400 rename ProduceAudioBlock to ProcessBlock r=padenot
--HG--
rename : content/media/webaudio/DelayProcessor.cpp => content/media/webaudio/DelayBuffer.cpp
extra : rebase_source : ebdc7404c8d27e3a24098f21a7752df529bb44c9
2014-03-05 10:09:49 +13:00
Karl Tomlinson
59a9465d27 b=913854 pass start time as double parameter and subsample align r=padenot
The subsample alignment of resampled buffers provides seamless playback even
when buffer durations are not an integer number of track ticks.

--HG--
extra : rebase_source : 0fcd52e8a9560de881aa73931cf22a02f984d748
2014-02-27 11:45:04 +13:00
Karl Tomlinson
a671ab1fb8 b=913854 capture the full extent of the resampling filter r=padenot
The resampling filter means that the buffer influences a greater number of
samples than indicated by just its length.  Including the full influence of
the linear filter means that adjacent buffers aligned appropriately will
behave as if they were one extended buffer.

The buffers are not yet aligned more carefully than track ticks, so buffers
play back seamlessly only if their sample rates and lengths are such that
their duration is an integer number of track ticks.

Knowing how far the filter extends before the start time requires
initializing the resampler before buffer processing.

The patch also includes the input latency in the first resampler input
buffer sample count estimate to reduce the number to calls required
to start the resampler.

--HG--
extra : rebase_source : 16d5af79bc5621be830f5956b51f7ff59d490575
2014-02-27 11:45:03 +13:00
Karl Tomlinson
8f5e56b187 b=967972 avoid overflow in buffer position when looping r=padenot
As a side-effect, the buffer playback will now continue from the same buffer
sample number (even when looping), where possible, in the following situations:

* Changing the loop start or end parameters.

* Changing the buffer to one of a different sample rate.

--HG--
extra : transplant_source : 2%11%7Dm%92pu%60%E3G%D4%D4%DB0%2B%20%9A%1Bd%FA
2014-02-11 11:19:26 +13:00
Karl Tomlinson
38594bd8de b=967992 collect unreferenced AudioBufferSourceNodes with no buffer r=padenot
The playing ref now only exists while there is a buffer.
We don't currently dispatch ended events when there is no buffer.

--HG--
extra : transplant_source : Ba%0BRD%89%96%99%F14%B6%40%3D%B2%C1%D5%28%D6%15%12
2014-02-06 08:33:16 +13:00
Karl Tomlinson
f1c8b044ec b=967992 dispatch ended event, remove playing ref when source buffer is replaced with one shorter than offset r=padenot
Sending an updated BUFFEREND will stop playback appropriately.

--HG--
extra : transplant_source : %17%81%5D%B5%CD%F1%7F%EC%23%28%F5D%E4oh%DB%9F%E7%210
2014-02-06 08:30:49 +13:00
Karl Tomlinson
8dd5bcc7a7 b=967972 include offset in buffer position r=padenot
There is a change in behaviour re the offset parameter when changing the
buffer while playing to one with a different sample rate, but I'm not clear
that what we current do with mPosition in that situation is best anyway.  I
think the main thing is to ensure playback from the same place if the buffer
is changed to one with the same sample rate.

--HG--
extra : transplant_source : %17%40%15%12L%9E%05et%C2o%BE%15%D7%C7%F4%ED%5E%24q
2014-02-06 08:28:42 +13:00
Karl Tomlinson
a2c021ffa5 b=967972 change DURATION engine parameter to BUFFEREND r=padenot
--HG--
extra : transplant_source : %B4%F3i%7FV%A95F%D0%BD%C4%E6u%03%F7%04%7Di%7C%A9
2014-02-06 08:27:45 +13:00
Karl Tomlinson
e3e1b11c56 b=967924 correct resampler input buffer sample count estimate math r=padenot
--HG--
extra : transplant_source : %15%90%0C%22_%99%BFK%14%93%28L%23hZ1%FE%B7NB
2014-02-06 08:15:31 +13:00
Karl Tomlinson
c8da5b50da b=966636 rename resampling copy variables consistently and test remaining input better r=padenot
--HG--
extra : rebase_source : 7d2c34865aeb21d67207e0d4e7b2fd3e8956d54c
2014-02-05 14:42:18 +13:00
Robert O'Callahan
b026956759 Bug 952893. Part 1: Block the AudioDestinationNode when it's the only node in the AudioContext. r=padenot,karlt 2014-01-16 00:08:20 +13:00
Ryan VanderMeulen
a5b81a765d Backed out changesets ac4e6f145b9a, 91c572ac5ee1, f501606dc1d3, and 15fc5d1cb10e (bug 952893) for test failures on a CLOSED TREE. 2014-01-29 14:34:08 -05:00
Robert O'Callahan
5e98538b88 Bug 952893. Part 1: Block the AudioDestinationNode when it's the only node in the AudioContext. r=padenot 2014-01-16 00:08:20 +13:00
Paul Adenot
8ae42d79f9 Bug 952893 - Backout changesets 780cba0f9f59, 887fe3a09c3d and fb04a4252ea3 for bad commit message, DONTBUILD. 2014-01-29 17:36:56 +01:00
Robert O'Callahan
eb9730310f Bug 952389. Part 1: Block the AudioDestinationNode when it's the only node in the AudioContext. r=padenot 2014-01-16 00:08:20 +13:00
Karl Tomlinson
0466b1681e b=964376 correctly handle a non-null ProduceAudioBlock aOutput parameter r=padenot
--HG--
extra : transplant_source : 6%BA%8FNSz%8C%BCrgZ%8B%96T-%8F%F6_%0B%01
2014-01-29 23:47:58 +13:00
Robert O'Callahan
c93171360b Bug 943461. Part 18: Ensure AudioBufferSourceNode's engine always produces an audio block when ProduceAudioBlock is called, and add an assertion to catch this kind of error directly. r=karl
--HG--
extra : rebase_source : e6ae51dc34f5567998af3b299acd48dd10e8394e
2013-12-13 01:33:01 +13:00
Karl Tomlinson
d0ee97e566 b=952756 always remember offset and duration from Start() r=padenot
--HG--
extra : transplant_source : %9A%3D%12wAbL%0D%E1%16G%A9%B7%23%A9%16%7F%8C%2B%18
2014-01-07 12:53:47 +13:00
Paul Adenot
a7bf924cb8 Bug 947910 - Relax the MOZ_ASSERT(mPosition <= mDuration) in case of looping, in AudioBufferSourceNode::CopyFromBufferWithResampling. r=karlt 2013-12-10 14:35:50 +01:00
Karl Tomlinson
91d1b9d3c6 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
8cdb723e52 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
3432499e21 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
57ec2f982a 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
e6eddf12f8 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
JW Wang
66cdab8a24 Bug 921695 - Part 2: Modify callers. r=karlt 2013-10-01 14:22:57 +08:00
Karl Tomlinson
3c9be2c42f 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
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
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
Ehsan Akhgari
f678926c6d Bug 905409 - Minimize the Web Audio #includes; r=roc 2013-08-15 15:44:14 -04:00
Mike Hommey
d01b5df996 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
043fd87042 Bug 886653 - Don't call speex_resampler_skip_zeros when changing the rate in AudioBufferSourceNode. r=ehsan 2013-07-12 17:21:51 +02:00
Paul Adenot
aacae3cd50 Bug 892492 - Fix automation on AudioBufferSourceNode.playbackRate. r=ehsan 2013-07-12 11:23:21 +02:00
Paul Adenot
967aaeb186 Bug 888271 - Don't substract twice by mOffset in AudioBufferSourceNode. r=ehsan 2013-07-09 10:41:54 +02:00
Robert O'Callahan
315060d0c1 Bug 886657. Don't play anything from an AudioBufferSourceNode until a buffer has been set and start() has been called. r=ehsan 2013-06-26 04:00:42 +12:00
Masatoshi Kimura
af2068ecf9 Bug 859022 - Remove the MSVC exemption for FAIL_ON_WARNINGS in content/media. r=roc 2013-06-27 20:30:41 +09:00
Ryan VanderMeulen
0406c5ea35 Backed out 2 changesets (bug 886618, bug 886657) for frequent OSX 10.7 mochitest-1 failures.
Backed out changeset 9fd8b2adc693 (bug 886618)
Backed out changeset 376fe12f4de4 (bug 886657)
2013-06-25 15:24:11 -04:00
Robert O'Callahan
402d68090e Bug 886657. Don't play anything from an AudioBufferSourceNode until a buffer has been set and start() has been called. r=ehsan
--HG--
extra : rebase_source : 48494d925526a8a064b42a59797fef70c61d4276
2013-06-26 04:00:42 +12:00
Ehsan Akhgari
e15c82a1f2 Bug 884632 - Optimize MediaStreamGraphImpl::PrepareUpdatesToMainThreadState in order to only include AudioNodeStreams that the main thread is interested in; r=roc 2013-06-18 23:09:44 -04:00
Sankha Narayan Guria
2bfc77e0ce Bug 880265 - Remove AudioBufferSourceNode.gain; r=ehsan 2013-06-08 00:55:04 +05:30
Ehsan Akhgari
5698703154 Bug 878478 - Disable looping of AudioBufferSourceNode when we detect that the loopStart offset is not less than the loopEnd offset; r=roc 2013-06-02 09:26:26 -04:00
Ehsan Akhgari
13fff291bf Bug 876024 - Sanity check all of the time values passed to Web Audio; r=roc 2013-05-30 20:53:15 -04:00
Ehsan Akhgari
59a18c2247 Bug 876252 - Stop the AudioBufferSourceNode if the offset is no longer valid after setting a new buffer more effectively; r=roc
Calling Stop() here is not quite enough, because web content might call stop() again
with a non-zero argument, which overrides what we do here.
2013-05-27 20:17:24 -04:00
Ehsan Akhgari
d934527fc6 Bug 873553 - Part 5: Port AudioBufferSourceNodeEngine to use the stream's sampling rate; r=roc
--HG--
extra : rebase_source : 13d1133fb34d3695eece432047b719b456961610
2013-05-24 13:13:31 -04:00
Ehsan Akhgari
6c146d9103 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
d5f53f01ab Bug 873553 - Part 3: Rename AudioBufferSourceNodeEngine::mSampleRate to mBufferSampleRate; r=roc
--HG--
extra : rebase_source : 3970da0f20d3d53f17d0ce8244a12de073eeb19a
2013-05-24 13:09:51 -04:00