Commit Graph

111 Commits

Author SHA1 Message Date
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
Ehsan Akhgari
c08a3bf04a Bug 874915 - Stop the AudioBufferSourceNode if the offset is no longer valid after setting a new buffer; r=roc
--HG--
extra : rebase_source : 0b179aab5ddb1ffd4ab2aeb8366b36975c949187
2013-05-23 07:50:48 -04:00
Ehsan Akhgari
d2c63bc836 Bug 836599 - Part 12: Fix the lifetime management of the Web Audio graph in presence of OfflineAudioContexts; r=roc
Here we make the non-realtime graphs to go to sleep until they're shut down
from the main thread.  This allows us to use the common forced shutdown code
path in MediaStreamGraphImpl::RunThread.  We also need to delete the graph
object when the last message is dispatched to it.

In addition, we need to make sure that the AudioNodes also get released when
they're no longer needed.  To do this, we need for force the SelfReference of
AudioBufferSourceNodes to be released when the context is shut down, and also
trigger the destruction of the graph there.
2013-05-16 19:31:08 -04:00
Paul Adenot
0048792bd1 Bug 867104 - r=ehsan 2013-05-14 14:14:42 +02:00
Ehsan Akhgari
19d51152a3 Bug 871201 - Part 2: Implement AudioBufferSourceNode.gain; r=roc
X-Git-Commit-ID: db8923b372db098aa7a5dc1cbf42674310b61aef
X-Mailer: git-send-email

--HG--
rename : content/media/webaudio/test/test_audioBufferSourceNode.html => content/media/webaudio/test/test_audioBufferSourceNodeGain.html
rename : content/media/webaudio/test/test_audioBufferSourceNode.html => content/media/webaudio/test/test_delayNodeWithGainAlternate.html
extra : rebase_source : 2cc9259229209fa926970e78ddfc2ef5765f4ad5
2013-05-13 00:17:55 -04:00
Ehsan Akhgari
5a3c2ed05b Bug 870174 - Eliminate some lags and glitches caused by resampling in decodeAudioData and AudioBufferSourceNode.cpp, and make the code simpler too!; r=roc
X-Git-Commit-ID: d9ad3597291b9f656712dcdd15725afcc3882fa1
X-Mailer: git-send-email

--HG--
extra : rebase_source : 5f51d27aec53fd5e9ab868e799ce05ee2b7692d4
2013-05-13 00:17:00 -04:00
Ehsan Akhgari
98bbd68e08 Bug 865233 - Implement the ended event for AudioBufferSourceNode; r=roc 2013-05-06 14:22:01 -04:00
Ehsan Akhgari
d737c31ab8 Bug 867174 - Part 2: Protect against invalid sample rates a bit harder; r=padenot 2013-05-06 11:34:03 -04:00