Commit Graph

136 Commits

Author SHA1 Message Date
Ehsan Akhgari
672e27d6bc Bug 850970 - Set the initial value of gain nodes on the audio stream to make sure that they don't mute playback; r=roc
--HG--
extra : rebase_source : caf58ca903665f8b3014451926cec9772969663f
2013-03-13 23:44:49 -04:00
Ehsan Akhgari
e48730f81b Bug 849713 - Part 5: Implement the looping logic in AudioBufferSourceNodeEngine; r=roc
The logic in this function is based around a while loop.  In every
iteration of the loop, we determine whether we need to output silence
(if we're at a position before the playback has started or after it has
stopped) or if we need to produce sound.  In each case, we call a helper
function which eagerly tries to produce as much silence or sound as
possible, while maintaining the constraints that are explained in the
comments in the code.
2013-03-10 21:02:22 -04:00
Ehsan Akhgari
245251292d Bug 849713 - Part 4: Refactor the logic for borrowing the output buffer from the input buffer; r=roc 2013-03-10 18:38:57 -04:00
Ehsan Akhgari
a4cc299dc2 Bug 849713 - Part 3: Set the loop parameters on AudioBufferSourceNodeEngine if looping is turned on when start() gets called; r=roc 2013-03-10 14:11:12 -04:00
Ehsan Akhgari
a03597ec60 Bug 849713 - Part 2: Accept the loop parameters on AudioBufferSourceNodeEngine; r=roc 2013-03-10 13:59:41 -04:00
Ehsan Akhgari
b01654e838 Bug 849713 - Part 1: Add DOM bindings for AudioBufferSourceNode loop attributes; r=roc 2013-03-10 12:56:14 -04:00
Ehsan Akhgari
06c15fd0ed Bug 849916 - Part 4: Don't rely on things still being around when we run PannerNode's dtor, use a weak pointer instead; r=roc
--HG--
extra : rebase_source : 8432bea9035761fcb52e77dfc474de8878fc4372
2013-03-12 19:28:30 -04:00
Ehsan Akhgari
ffee05887e Bug 849916 - Part 3: Create an engine for PannerNodes and make sure that we deliver the panner and listener parameters to it; r=padenot 2013-03-12 14:34:55 -04:00
Ehsan Akhgari
7a26abd817 Bug 849916 - Part 2: Add helper functions for sending different argument types to the AudioNodeStream; r=padenot 2013-03-12 11:28:14 -04:00
Ehsan Akhgari
023850e72d Bug 849916 - Part 1: Make it possible to send ThreeDPoint objects as commands to the MSG thread; r=padenot 2013-03-12 11:16:42 -04:00
Ryan VanderMeulen
f6ea8893e6 Backed out changesets 4ee69256f8f2, 2becc603eeb8, and afad1c17015e (bug 849916) for bustage on a CLOSED TREE. 2013-03-12 16:16:30 -04:00
Ehsan Akhgari
fc535e7e15 Bug 849916 - Part 3: Create an engine for PannerNodes and make sure that we deliver the panner and listener parameters to it; r=padenot 2013-03-12 14:34:55 -04:00
Ehsan Akhgari
4cbb915b76 Bug 849916 - Part 2: Add helper functions for sending different argument types to the AudioNodeStream; r=padenot 2013-03-12 11:28:14 -04:00
Ehsan Akhgari
d7560401d9 Bug 849916 - Part 1: Make it possible to send ThreeDPoint objects as commands to the MSG thread; r=padenot 2013-03-12 11:16:42 -04:00
Ehsan Akhgari
78ca80f126 Bug 849914 - Implement the latest spec changes to PannerNode and AudioListener; r=roc 2013-03-11 19:09:27 -04:00
Masatoshi Kimura
7693df618d Bug 848339 - Remove the vestigial boolean outparam from nsWrapperCache::WrapObject. r=bz 2013-03-12 08:03:47 +09:00
Ehsan Akhgari
bbfd0958e3 Backed out 4 changesets (bug 849713) since builds fail because of warnings as errors
Backed out changeset e811d4258d45 (bug 849713)
Backed out changeset 26aa58e87d5d (bug 849713)
Backed out changeset 9a6552161eff (bug 849713)
Backed out changeset 3551877d9b92 (bug 849713)

Landing on a CLOSED TREE
2013-03-11 16:14:42 -04:00
Ehsan Akhgari
35dae1b81f Backed out changeset 151b845b0fa9 (bug 849713 part 5) because it has not been reviewed yet! 2013-03-11 15:31:14 -04:00
Ehsan Akhgari
a974ee8086 Bug 849713 - Part 5: Implement the looping logic in AudioBufferSourceNodeEngine; r=roc
The logic in this function is mostly around the mLoop variable.  mLoop being
NotLooping means that the playback of this node is never going to loop, in
which case the logic doesn't change compared to the ProduceAudioBlock function
before this patch.

If the loop mode is turned on when start() is called, mLoop will initially be
WillLoop.  In that case, we play back until mLoopEnd, and then we will wrap
around to mLoopStart, set mLoop to be IsLooping, and start playback again.
From that point on, mLoop will always be IsLooping, and we will loop between
mLoopStart and mLoopEnd.  Where possible, we'll just use BorrowFromInputBuffer
to avoid copying the buffer, and if we hit the edges right around the time that
we loop, we copy some frames from the end of the input buffer and some from the
beginning in the memcpy loops at the end of the ProduceAudioBlock function.
2013-03-10 21:02:22 -04:00
Ehsan Akhgari
a5fea34024 Bug 849713 - Part 4: Refactor the logic for borrowing the output buffer from the input buffer; r=roc 2013-03-10 18:38:57 -04:00
Ehsan Akhgari
1300d21db5 Bug 849713 - Part 3: Set the loop parameters on AudioBufferSourceNodeEngine if looping is turned on when start() gets called; r=roc 2013-03-10 14:11:12 -04:00
Ehsan Akhgari
b646a29552 Bug 849713 - Part 2: Accept the loop parameters on AudioBufferSourceNodeEngine; r=roc 2013-03-10 13:59:41 -04:00
Ehsan Akhgari
5e3e5535d4 Bug 849713 - Part 1: Add DOM bindings for AudioBufferSourceNode loop attributes; r=roc 2013-03-10 12:56:14 -04:00
Ehsan Akhgari
aacd3da00e Bug 849652 - Copy enough number of bytes in AudioBufferSourceNode::ProduceAudioBlock's memcpy loop; r=roc 2013-03-10 17:37:40 -04:00
Ehsan Akhgari
3418e3c685 Bug 849106 - Adjust the fuzz tolerance value for small-shot.ogg on mobile 2013-03-08 13:07:21 -05:00
Ehsan Akhgari
c6ddf88782 Bug 849230 - Limit the range of sample rates accepted by AudioContext.createBuffer according to the spec; r=padenot 2013-03-08 12:29:00 -05:00
Ehsan Akhgari
fc32827507 Bug 848651 - Part 2: Log an error to the Web Console if we run out of memory while trying to resample an AudioBuffer for playback; r=padenot 2013-03-08 11:49:56 -05:00
Ehsan Akhgari
a06ea67f9d Bug 848651 - Part 1: Implement resampling of audio buffers to be able to play back buffers with a different sample rate than the AudioContext; r=padenot 2013-03-07 18:14:46 -05:00
Ehsan Akhgari
f2b7547cab Bug 846329 - Fix decodeAudioData to decode all channels and not only the first one; r=padenot 2013-03-04 21:27:13 -05:00
Thomas Zimmermann
1823db9f02 Bug 834172 - Remove GStreamer flags from webaudio Makefile. r=cpearce
With the move of all codec-specific code to DecoderTraits, there is no
need to pass compiler flags for GStreamer when building the webaudio
library. This patch updates the Makefile template accordingly.
2013-03-05 09:56:35 -05:00
Thomas Zimmermann
3867cce83c Bug 834172 - Implement CreateReader in DecoderTraits. r=cpearce
MediaDecoderReaders are now created from within DecoderTraits. The
codec-specific code has been removed from class MediaDecodeTask.
2013-03-05 09:56:35 -05:00
Ehsan Akhgari
14a0e48617 Bug 836076 - Part 6: Hook up GainNode to the MediaStreams back-end to enable controlling the volume of the audio being played back; r=roc 2013-01-29 18:37:51 -05:00
Ehsan Akhgari
61bbd92228 Bug 836076 - Part 5: Provide an API for converting event times to tick values; r=roc 2013-03-01 17:06:03 -05:00
Ehsan Akhgari
6fe682381f Bug 845960 - Fix a crash resulted from a missing nullcheck for the optional failure callback of decodeAudioData; r=bzbarsky 2013-03-04 23:04:51 -05:00
Ryan VanderMeulen
527466b973 Backed out 5 changesets (bug 834172) for Android build bustage. 2013-03-04 11:17:36 -05:00
Thomas Zimmermann
6afb280c5a Bug 834172 - Remove GStreamer flags from webaudio Makefile. r=cpearce
With the move of all codec-specific code to DecoderTraits, there is no
need to pass compiler flags for GStreamer when building the webaudio
library. This patch updates the Makefile template accordingly.
2013-03-04 10:24:45 -05:00
Thomas Zimmermann
979b84ab7c Bug 834172 - Implement CreateReader in DecoderTraits. r=cpearce
MediaDecoderReaders are now created from within DecoderTraits. The
codec-specific code has been removed from class MediaDecodeTask.
2013-03-04 10:24:45 -05:00
Ehsan Akhgari
5b6e81b5cf Bug 838065 - Re-enable the decodeAudioData tests; r=roc 2013-02-27 16:59:46 -05:00
Gregory Szorc
803629b9c6 Merge mozilla-central into build-system
There were merges in configure.in and some Makefile.in. None had any
conflicts. I spot verified the Makefile.in changes and confirmed that
the changes did not touch any DIRS* variables.
2013-02-27 10:03:52 -08:00
Gregory Szorc
fee2be3026 Bug 784841 - Part 18g: Convert /content; r=glandium 2013-02-25 12:47:19 -08:00
Bobby Holley
2589449122 Bug 834732 - Audit callers of GetNativeContext and use AutoPushJSContext where appropriate. r=mrbkap 2013-02-26 11:04:13 -08:00
Ehsan Akhgari
dbd98a978d Bug 836072 - Validate the arguments to AudioParam.exponentialRampToValueAtTime() correctly; r=roc
--HG--
extra : rebase_source : 4da10bc054e2d978b3639a537bd46b2614586647
2013-01-29 18:30:22 -05:00
Chris Pearce
5607881905 Bug 839031 - Store the Content-Type/MIME-Type on MediaResource. r=padenot 2013-02-15 14:10:58 +13:00
Andrew McCreight
090a8455ed Bug 839753 - Fix up CC implementation for AudioDestinationNode. r=smaug 2013-02-12 08:42:59 -08:00
Honza Bambas
725e26027d Bug 839175 - missing using namespace dom in MediaBufferDecoder.cpp, r=roc 2013-02-11 22:56:57 +01:00
Phil Ringnalda
361f43b776 Back out 6a5dcf166f09 (bug 836072) for build bustage
CLOSED TREE
2013-02-07 21:35:08 -08:00
Ehsan Akhgari
32c41e5463 Bug 836072 - Validate the arguments to AudioParam.exponentialRampToValueAtTime() correctly; r=roc 2013-01-29 18:30:22 -05:00
John Schoenick
fb66de7b8c Bug 837427 - Include gstreamer cflags in content/media/webaudio; r=ehsan 2013-02-05 13:34:19 -05:00
Ehsan Akhgari
6d64573151 Bug 836076 - Part 3: Make AudioParams call back into their owning node when they're modified; r=roc
We need this in order to update the MediaStreamGraph thread when an
AudioParam changes.  This enables each AudioParam to be registered with
a callback from its owner node, so that the owner node can have custom
processing code for each AudioParam's mutation.
2013-01-28 18:59:29 -05:00
Ehsan Akhgari
0dd0c24483 Bug 836076 - Part 2: Make it possible to send AudioEventTimeline objects as commands to the MSG thread; r=roc 2013-01-28 17:42:27 -05:00