Commit Graph

432 Commits

Author SHA1 Message Date
Wes Kocher
ba9de6a2f7 Backed out changeset f5b2a11c64c9 (bug 1201271) for bustage 2015-09-09 15:56:21 -07:00
Andrew McCreight
3e590f4e78 Bug 1201271 - Warn about unused results for more methods of nsTArray. r=froydnj
This leaves alone the AppendElement methods.
2015-09-09 15:39:10 -07:00
Joel Maher
af2cf10bce backout 06bb0c1766f1 for more frequent bc failures 2015-09-09 07:55:37 -04:00
Karl Tomlinson
4852256c3a bug 1197028 add MOZ_IMPLICIT for AudioBlock constructor from base AudioChunk on CLOSED TREE 2015-09-09 23:04:02 +12:00
Karl Tomlinson
46752d8354 bug 1201855 send ended event even when the buffer has no channel data r=padenot
The ThreadSharedFloatArrayBufferList may be null even when there is a buffer
if one of its arrays has been neutered.

SAMPLE_RATE is used instead of BUFFEREND to detect whether start() and buffer
have been received because buffers can have zero length when acquiring the
contents returns "zero-length channel data buffers", although this zero-length
is not yet implemented.

LOOP and BUFFEREND are reset when the buffer is set to null to end playback.

--HG--
extra : rebase_source : f247ca61e045ff548180da5c8c6e521e944620be
2015-09-05 00:15:52 +12:00
Karl Tomlinson
f0c5e3a312 bug 1201855 use unsigned integers for buffer positions so that negative buffer positions are impossible r=padenot
I think the limits on sample rates already ensure that mBufferPosition will
not overflow, but this makes sure that there are no out of bounds reads.

The node checks the parameters are > 0 before sending to the engine.

--HG--
extra : rebase_source : 3547c7a6ed8bd1e30a34c8c402a1c339ecb89ac2
2015-08-25 13:01:15 +12:00
Karl Tomlinson
129da4defa bug 1201855 keep track of buffer position even when there are no channels r=padenot
--HG--
extra : rebase_source : 38eb547011207d8f21970402204cac5613adb07b
2015-09-05 00:50:35 +12:00
Karl Tomlinson
153f9a5413 bug 1201855 rearrange CopyFromBuffer to separate code using numFrames r=padenot
--HG--
extra : rebase_source : ad70b02ae650410c6f7b86230ddfac3cda5d0aa9
2015-09-04 23:06:50 +12:00
Karl Tomlinson
2fba565b9f bug 1201854 handle stop time precisely even when resampling r=padenot
--HG--
extra : rebase_source : f2a8c0b28ff614e85d184e3f7c1bb8b0622caea9
2015-09-04 22:05:49 +12:00
Karl Tomlinson
e74d20e2da bug 1197028 use AudioBlock for web audio processing to reuse buffers shared downstream r=padenot
--HG--
extra : rebase_source : d2e403ae64a314177cba4d596ea235eb351ad3bc
2015-09-03 19:01:50 +12:00
Karl Tomlinson
c5c6b3c71f bug 1197028 introduce AudioBlock to keep track of downstream references to AudioBlockBuffer r=padenot
--HG--
extra : rebase_source : 18b55c10869e58cda0b3c9e99e4c97bd76f26359
2015-09-08 12:04:16 +12:00
Karl Tomlinson
cdffecdf9b bug 1197028 use AudioChunk::GetDuration() r=padenot
--HG--
extra : rebase_source : 48c1a44fd8509fc3a20f96861790be7b09715214
2015-09-03 18:04:41 +12:00
Karl Tomlinson
e32bdd4030 bug 1197028 use AudioChunk::ChannelCount() r=padenot
--HG--
extra : rebase_source : 033220c221f33fb4230f1384427d24e9b0b01213
2015-09-03 17:30:16 +12:00
Karl Tomlinson
0219374858 bug 1197028 introduce AudioBlockBuffer r=padenot
At this point AudioBlockBuffer is just like SharedBuffer but always with float
channels of length 128.

--HG--
extra : rebase_source : 61159da1577fb9607d5a766ba4288db3a7be2aff
2015-09-03 18:45:14 +12:00
Karl Tomlinson
68df460f8c bug 1197028 move AllocateAudioBlock to AudioBlock.h r=padenot
In a subsequent patch, AllocateAudioBlock will become part of an AudioBlock
class derived from AudioChunk and used for AudioNodeStream members.

--HG--
extra : rebase_source : a3bfde8345995865c6f8e46abed24f008c112702
2015-09-03 19:05:02 +12:00
Kaustabh Datta Choudhury
eeaa15095f Bug 1162003 - Enable run-by-dir mode on Fx desktop debug & ASAN builds. r=jmaher 2015-09-09 05:42:04 -04:00
Dragana Damjanovic dd.mozilla@gmail.com
94779891d5 Bug 1202421 - Rename the network.auth.allow-subresource-auth pref. r=michal 2015-09-08 08:21:19 -07:00
Robert O'Callahan
cfb5a21039 Bug 1201393. Remove usage of FLAG_BLOCK_INPUT from AudioParam/AudioNode. r=padenot
We don't need AudioNodes to block each other anymore.

--HG--
extra : commitid : 9rtWh5A3YY2
extra : rebase_source : cdd5c28b11602e53aaee178d3978b3e983ba5195
2015-08-31 16:58:10 +12:00
Robert O'Callahan
07c25fad56 Bug 1201393. Make suspended MediaStreams implicitly always block. r=padenot
To make this work, we have to iterate over suspended MediaStreams in a few
more places. We don't need START_TIME_DELAYED anymore since blocking takes
care of that. I think it's good to allow suspended MediaStreams to notify
the main thread that they're finished; we might need that later when
we have non-AudioNode streams being suspended.

--HG--
extra : commitid : AZKt73Eg3rQ
extra : rebase_source : a662e9c85453212299f30085c1228ec959355440
2015-09-04 17:01:01 +12:00
Robert O'Callahan
49d3b935f2 Bug 1201393. Remove usage of FLAG_BLOCK_INPUT from MediaStreamAudioSourceNode. r=jwwang
There's no reason why WebAudio should block an incoming MediaStream.

--HG--
extra : commitid : IjUoo3OFdq9
extra : rebase_source : 5df1530c9d927e30194931c15f97389b7b74b524
2015-08-31 16:56:33 +12:00
JW Wang
7cab08fca3 Bug 1195158. Part 4 - remove unused code. r=cpearce. 2015-09-07 11:39:16 +08:00
Karl Tomlinson
b02fb63b9a back out 0b4230b29db5,c8d987aeaece from bug 1197028 2015-09-02 23:44:37 +12:00
Karl Tomlinson
72bf6e31a4 bug 1193922 skip SetIsOnlyNodeForContext after shutdown r=padenot
This works around bug 1200514 but also avoids some unnecessary work.

--HG--
extra : rebase_source : 9f442f7eeac65976a711d6cc8e3947276bada756
2015-09-01 18:20:24 +12:00
Paul Adenot
7c49f38e2c Bug 901633 - Part 7 - Update AudioNodeExternalInputStream to use the new AudioChunk methods. r=karlt
--HG--
extra : rebase_source : 29fe9e5df5bb9a3521d65f7f56cfbc17480eeef0
2015-07-29 18:37:18 +02:00
Paul Adenot
aec5b5430b Bug 901633 - Part 6 - Update DelayBuffer to use the new AudioChunk methods. r=karlt
--HG--
extra : rebase_source : cb40d64841ca96562e5988aa37a30f0134194faf
2015-07-30 11:27:26 +02:00
Paul Adenot
077db3cb37 Bug 901633 - Part 4 - Update AudioNodeStream to use new chunk methods. r=roc
--HG--
extra : rebase_source : 521914982fc0d0d7ff0ea94dd999d649f7e5f267
2015-07-29 18:36:47 +02:00
Paul Adenot
8eb4594e21 Bug 1190676 - Part 10 - Fix consumers: AudioDestinationNode. r=karlt
--HG--
extra : rebase_source : 6cbad24c90bb83b1ee44a299f8eadd8eabff53cf
2015-08-25 10:30:43 +02:00
Nicholas Nethercote
f44287005f Bug 1198334 (part 1) - Replace the opt-in FAIL_ON_WARNINGS with the opt-out ALLOW_COMPILER_WARNINGS. r=glandium.
The patch removes 455 occurrences of FAIL_ON_WARNINGS from moz.build files, and
adds 78 instances of ALLOW_COMPILER_WARNINGS. About half of those 78 are in
code we control and which should be removable with a little effort.

--HG--
extra : rebase_source : 82e3387abfbd5f1471e953961d301d3d97ed2973
2015-08-27 20:44:53 -07:00
Karl Tomlinson
605cd07259 bug 1199561 delay offline buffer allocation until non-null input is received r=padenot
The avoids the allocation and copying altogether when the output buffer
is silent.

--HG--
extra : rebase_source : f225628dc9bb2ea0cd0ec414a2212e39da92405f
2015-08-24 19:34:15 +12:00
Karl Tomlinson
b8ba84787a bug 1199560 finish offline audio context processing even when allocation fails r=padenot
ProcessBlock() needs to return aFinished = true at some point.

--HG--
extra : rebase_source : 941371af142472ddf25a380b57f5e6f2f2d3029f
2015-08-24 19:29:15 +12:00
Karl Tomlinson
5c88921fb1 bug 1199559 remove now unused SetRawChannelContents r=padenot
--HG--
extra : rebase_source : 55881334df6dd69a43922d9b3bd5cee3f5e5d34b
2015-08-25 11:46:30 +12:00
Karl Tomlinson
306e3b5c38 bug 1199559 write audioprocess input buffer in a format suitable for direct use by AudioBuffer r=padenot
saving copying.

This also avoids graph thread allocations when input is null.

--HG--
extra : rebase_source : f9d2d987076fd23ecf2ff37ab0008ef7eb50a278
2015-08-28 18:30:17 +12:00
Karl Tomlinson
604c7a838d bug 1199559 write decodeAudioData buffer in a format suitable for direct use by AudioBuffer r=padenot
saving a copy.

--HG--
extra : rebase_source : 8592e6c30c2e4ffec33bb844db8ad32c5135bf16
2015-08-28 11:15:39 +12:00
Karl Tomlinson
d94d65b40b bug 1199559 write offline buffer in a format suitable for direct use by AudioBuffer r=padenot
saving a copy.

--HG--
extra : rebase_source : e3d477c46ca365f0d65b47355b5ecf42d81a056b
2015-08-27 21:32:41 +12:00
Karl Tomlinson
90d515b961 bug 1199559 add a factory method to accept generated buffer contents in a format suitable for direct use r=padenot
This API lets AudioBuffer generators avoid a copy.

Future modifications to AudioBuffer will remove the unnecessary initial
allocation and zeroing.

--HG--
extra : rebase_source : 50f4d4dd79b32111583748d0b83065a13b03d888
2015-08-28 18:30:49 +12:00
Karl Tomlinson
74c733393d bug 1199559 add a helper to fallibly allocate ThreadSharedFloatArrayBufferList with buffers r=padenot
--HG--
extra : rebase_source : f7d532fb2142624b0a3c3423c954a2e817d529ea
2015-08-27 20:35:43 +12:00
Karl Tomlinson
c919923973 bug 1199559 permit writing to ThreadSharedFloatArrayBufferList when not shared r=padenot
Being able to write to the channel data in the buffer list saves the creator
from needing to manage its own pointers to the channel data.

--HG--
extra : rebase_source : 02b22b8b2dc2d640bec706433d7f921858fd8ef4
2015-08-25 08:41:14 +12:00
Karl Tomlinson
2385836d46 bug 1197028 re-use DelayNode output buffer r=padenot
--HG--
extra : rebase_source : 138c4be0b1a248104049e4980b2656ff819dbf92
2015-08-21 13:36:31 +12:00
Karl Tomlinson
df8f7c8b48 bug 1197028 release shared buffers from downstream so that upstream can re-use r=padenot
--HG--
extra : rebase_source : fe7817e706633c0849b3bc7738b44911071f8615
2015-08-21 13:26:58 +12:00
Karl Tomlinson
2a2e08e57d bug 1196109 keep memory allocation for mixed input channel pointer array r=padenot
--HG--
extra : rebase_source : 002f4ba2d79e027911a47b7a956c02eef6a18332
2015-08-20 18:41:25 +12:00
Karl Tomlinson
46ff786925 bug 1197043 use flags to distinguish between external streams and events r=padenot
MediaStreamAudioDestinationNode does not need any main thread events because
mDOMStream provides GetCurrentTime to consumers.

MediaRecoder also does not use main thread current time.

--HG--
extra : rebase_source : e022dc12e8a0e67c70d4a617449e28e76288b57e
2015-08-13 16:13:34 +12:00
Karl Tomlinson
330a9459ea bug 1197043 move AudioNodeStream creation to stream class r=padenot
--HG--
extra : rebase_source : 2e399f5d59b057a0cca6a423481ac86f6fa2c507
2015-08-12 11:26:24 +12:00
Karl Tomlinson
cd9d54d222 bug 1197043 remove unnecessary aSampleRate parameter for AudioNodeStream creation r=padenot
--HG--
extra : rebase_source : 63ba0bf5008a9acd0a268051cbcde43ba5bfad0a
2015-08-12 11:04:13 +12:00
Karl Tomlinson
0c9e5bbfe0 bug 1196111 don't keep AudioContext alive from AudioBuffer r=baku
AudioBuffers are often generated from OfflineAudioContext to be used in other
contexts, when the OfflineAudioContext is no longer required.

--HG--
extra : rebase_source : 4d163ba69164f813256478ed0870803421c1f6a5
2015-08-18 11:48:38 +12:00
Ehsan Akhgari
f9752f535c Bug 1196361 - Remove the media.useAudioChannelService pref; r=baku
We need to rely on the audio channel service for all products now,
so supporting running without it seems pointless at this point.
2015-08-19 21:00:18 -04:00
Sebastian Hengst
a133c6114b Backed out changesets 7610baf4a3ae, 6226b99f19bd, 157e41e32906, 60a3b1862f71 (bug 1195158). r=backout
Backed out changeset 7610baf4a3ae (bug 1195158)
Backed out changeset 6226b99f19bd (bug 1195158)
Backed out changeset 157e41e32906 (bug 1195158)
Backed out changeset 60a3b1862f71 (bug 1195158)
2015-08-18 10:52:09 +02:00
JW Wang
b47fc2fd4d Bug 1195158. Part 4 - remove unused code. r=cpearce. 2015-08-18 11:12:39 +08:00
Ehsan Akhgari
5e993ab31c Bug 1195051 - Part 4: Fix a null pointer crash happening after the destination node gets CCed
Landed on a CLOSED TREE
2015-08-17 11:45:25 -04:00
Ehsan Akhgari
bd4b9d61f6 Bug 1195051 - Part 2: Mute the destination node when the AudioContext is suspended, and unmute when resumed; r=padenot 2015-08-17 08:55:00 -04:00
Ehsan Akhgari
53b1ca8619 Bug 1195051 - Part 1: Do not unmute the destination node as soon as the AudioContext is constructed; r=padenot 2015-08-17 08:54:59 -04:00
Karl Tomlinson
795135daf2 test for bug 1191648
--HG--
extra : rebase_source : 3588805b7e34ac76ed6422c6703c25d1fcc220bc
2015-08-11 13:37:20 +12:00
JW Wang
3a7d265755 Bug 1193603. Part 2 - Fix miscalculation in converting micro seconds to seconds. r=jya. 2015-08-12 18:02:34 +08:00
Kyle Huey
76e3009ab8 Bug 1179909: Refactor stable state handling. r=smaug
This is motivated by three separate but related problems:

1. Our concept of recursion depth is broken for things that run from AfterProcessNextEvent observers (e.g. Promises). We decrement the recursionDepth counter before firing observers, so a Promise callback running at the lowest event loop depth has a recursion depth of 0 (whereas a regular nsIRunnable would be 1). This is a problem because it's impossible to distinguish a Promise running after a sync XHR's onreadystatechange handler from a top-level event (since the former runs with depth 2 - 1 = 1, and the latter runs with just 1).

2. The nsIThreadObserver mechanism that is used by a lot of code to run "after" the current event is a poor fit for anything that runs script. First, the order the observers fire in is the order they were added, not anything fixed by spec. Additionally, running script can cause the event loop to spin, which is a big source of pain here (bholley has some nasty bug caused by this).

3. We run Promises from different points in the code for workers and main thread. The latter runs from XPConnect's nsIThreadObserver callbacks, while the former runs from a hardcoded call to run Promises in the worker event loop. What workers do is particularly problematic because it means we can't get the right recursion depth no matter what we do to nsThread.

The solve this, this patch does the following:

1. Consolidate some handling of microtasks and all handling of stable state from appshell and WorkerPrivate into CycleCollectedJSRuntime.
2. Make the recursionDepth counter only available to CycleCollectedJSRuntime (and its consumers) and remove it from the nsIThreadInternal and nsIThreadObserver APIs.
3. Adjust the recursionDepth counter so that microtasks run with the recursionDepth of the task they are associated with.
4. Introduce the concept of metastable state to replace appshell's RunBeforeNextEvent. Metastable state is reached after every microtask or task is completed. This provides the semantics that bent and I want for IndexedDB, where transactions autocommit at the end of a microtask and do not "spill" from one microtask into a subsequent microtask. This differs from appshell's RunBeforeNextEvent in two ways:
a) It fires between microtasks, which was the motivation for starting this.
b) It no longer ensures that we're at the same event loop depth in the native event queue. bent decided we don't care about this.
5. Reorder stable state to happen after microtasks such as Promises, per HTML. Right now we call the regular thread observers, including appshell, before the main thread observer (XPConnect), so stable state tasks happen before microtasks.
2015-08-11 06:10:46 -07:00
Karl Tomlinson
da9d3d3591 bug 916387 remove workarounds in tests r=padenot
Zero output channels are used on ScriptProcessorNodes to improve efficiency in
tests when output is not required.

--HG--
extra : rebase_source : f3ddee8031d772bdcedbd482d80d3259a095e0ea
2015-08-06 16:04:23 +12:00
Karl Tomlinson
3a15b165c6 bug 916387 keep ScriptProcessorNode alive after input is GCed r=padenot
--HG--
extra : rebase_source : a9f5d8f4c33845d1548c2daf53d7aced6d6e668b
2015-08-06 17:56:06 +12:00
Karl Tomlinson
fda85fcc8b bug 916387 add a notification of garbage collected input node r=padenot
The effects of garbage collection must not be observable.  We can collect an
AudioNode if it is not going to cause any further changes, but we must keep
any current effects.

--HG--
extra : rebase_source : f7ce500de2afd4f6cdff79c30c99a0ee8e74ab40
2015-08-06 14:15:40 +12:00
Karl Tomlinson
487efc8f27 bug 1191649 determine ScriptProcessor connected status on main thread r=padenot
because stream inputs may be removed when only providing null data.

The ScriptProcessor is also kept alive when it has only input nodes so that it
is not garbage collected when its input nodes are collected.

--HG--
extra : rebase_source : ee70db1b3e13b212107e048620880b929c662ad6
2015-08-06 16:22:56 +12:00
Karl Tomlinson
e35277a491 bug 1191649 add notification of input node changes r=padenot
--HG--
extra : rebase_source : 71b101935ef10b5fa01008234897c0bb2c6979ba
2015-08-06 19:25:53 +12:00
Karl Tomlinson
b78f6f2712 bug 1191648 don't create audioprocess event when there is no listener r=padenot
Creating the event added a reference to the ScriptProcessorNode, which wasn't
released until the AudioProcessingEvent was destroyed in
nsCycleCollector::FreeSnowWhite().

If another event is dispatched before cycle collection considers the
ScriptProcessorNode, then the node will not be collected.

Also, the reference count of the ScriptProcessorNode is no longer toggled
because this seemed to interfere with the cycle collection process.

--HG--
extra : rebase_source : 41878e716fe3fcc8f46f518be2a50d050b8ed14c
2015-08-10 12:51:37 +12:00
Karl Tomlinson
d03299a57a bug 1191648 don't keep ScriptProcessorNode alive when it has no audioprocess listener r=padenot
--HG--
extra : rebase_source : 49b8c338a3cd645a67937a7584cba666512b31b6
2015-08-06 19:28:10 +12:00
Ehsan Akhgari
f22dea9a72 Bug 1190040 - Part 2: Teach the audio channel service how to not notify audio-playback, and do that when a media element has no audio track; r=padenot 2015-08-06 10:26:27 -04:00
Aryeh Gregor
2311382621 Bug 1191305 - Alphabetize some includes; r=froydnj 2015-08-06 15:45:21 +03:00
Aryeh Gregor
80ea0a3e53 Bug 1190823 - Move OwningNonNull.h to xpcom/base/; r=froydnj
--HG--
rename : dom/bindings/OwningNonNull.h => xpcom/base/OwningNonNull.h
2015-08-05 15:28:27 +03:00
Karl Tomlinson
0f7fc2c09c bug 1184801 Test output of AnalyserNode with GainNode
--HG--
extra : rebase_source : 2158db1151e6b4dd3c862635c1bec4e0498a9135
2015-07-28 11:03:31 +12:00
Karl Tomlinson
d149f45532 bug 1189168 avoid main thread assertion accessing mNode in SizeOfIncludingThis() r=padenot
because the main thread is blocked during the call.

--HG--
extra : rebase_source : 5ab42bd4d8a14e66e34781456ad11c6b48dc6227
2015-07-31 12:49:07 +12:00
Nicholas Nethercote
1059c1de13 Bug 1189156 (part 2) - Don't use enumeration style for nsTHashtable::SizeOf{In,Ex}cludingThis(). r=erahm.
After this change, we have ShallowSizeOf{In,Ex}cludingThis(), which don't do
anything to measure children. (They can be combined with iteration to measure
children.)

And we still have the existing single-arg SizeOf{In,Ex}cluding() functions,
which work if the entry type itself defines SizeOfExcludingThis().

--HG--
extra : rebase_source : f93de9b789c21b1b148bed9de795f663f77c9dd9
2015-07-29 01:50:52 -07:00
Jan-Ivar Bruaroey
0ccb51ddc8 Bug 1175523 - Update most (but not all) tests to use elem.srcObject over .mozSrcObject. r=pehrsons
--HG--
extra : rebase_source : bac0027f4bf5d75b8730c44a10141c114002633b
2015-07-14 10:12:31 -04:00
Karl Tomlinson
66f210c5b0 bug 1188704 remove now unused PerformInverseFFT() variation r=rillian
--HG--
extra : rebase_source : 13b3cfce3054fce463d0e2407bd48e343952830e
2015-07-30 12:51:48 +12:00
Karl Tomlinson
a4757ceda3 bug 1188704 use existing FFTBlock arrays instead of allocating and copying and scaling r=rillian
It is now no longer necessary to clear zero bins because these are zeroed
in the FFTBlock constructor.

nsTArray bounds assertions now apply.

--HG--
extra : rebase_source : 18c07ecb51f9cb3c199536fe59110093db2295d4
2015-08-03 09:28:32 +12:00
Karl Tomlinson
e8e61ee28e bug 1188704 add accessor functions for setting frequency components for inverse FFT r=rillian
--HG--
extra : rebase_source : cfd4b300d5437793dc60f4e0630fa393cc234b9d
2015-07-30 12:33:04 +12:00
Karl Tomlinson
6ca6918802 bug 1188704 combine scaling with copying r=rillian
--HG--
extra : rebase_source : f30aed44b66cca842a752a207ab9536e3cb395b2
2015-07-28 15:58:06 +12:00
Karl Tomlinson
893dc9cca8 bug 1188704 simplify culling of partials r=rillian
avoiding copying and scaling components that will be zeroed.

--HG--
extra : rebase_source : a649e78254296945d89f5e03dc75e6af753e56b4
2015-07-28 08:37:21 +12:00
Karl Tomlinson
a4daa97373 bug 1188704 limit number of Fourier coefficients used to halfSize earlier r=rillian
realP[halfSize] was always set to zero because numberOfPartials < halfSize + 1
was always true.

--HG--
extra : rebase_source : 819b04a56032d810231a16fa0dd139cf82ef8ddf
2015-07-30 10:08:15 +12:00
Karl Tomlinson
0ffb72d8eb bug 1188704 trim unnecessary extra basic waveform coeffient r=rillian
The built-in waveforms are all odd and so realP[halfSize] was zero, and it
would have been ignored in createBandLimitedTables even if it was non-zero.
imagP[halfSize] was ignored as it was not involved in the inverse FFT.

This returns the code to that prior to
https://hg.mozilla.org/mozilla-central/diff/5377bce3b478/content/media/webaudio/blink/PeriodicWave.cpp#l1.276

--HG--
extra : rebase_source : 1bfa9eefc7dd269a64a98cdfdd4cbf76fa207dc4
2015-07-27 23:55:06 +12:00
Karl Tomlinson
0ebb28aa85 bug 1188704 redefine halfSize as fftSize / 2 r=rillian
There are no behavior changes here, just the change in meaning of the variable.

--HG--
extra : rebase_source : 9bae9f29a27430e9074dc0337773313140af9ba2
2015-07-27 22:41:31 +12:00
Nicholas Nethercote
87b80f8c66 Bug 1188745 - Rename nsTArray::SizeOfExcludingThis() as ShallowSizeOfExcludingThis(). r=froydnj.
This makes it clearer that, unlike how SizeOf*() functions usually work, this
doesn't measure any children hanging off the array.

And do likewise for nsTObserverArray.

--HG--
extra : rebase_source : 6a8c8d8ffb53ad51b5773afea77126cdd767f149
2015-07-28 23:24:24 -07:00
Karl Tomlinson
8b0dccbf5a bug 1188244 throw in SetCurve() on OOM r=padenot
--HG--
extra : rebase_source : 8b8709fb2bb1765eca65248437a9d58232c34fdb
2015-07-27 21:19:27 +12:00
Karl Tomlinson
a905a14a19 bug 1187785 reverse tableInterpolationFactor to make it consistent with documentation r=rillian
tableInterpolationFactor = 0 now means use lowerWaveData, which is
rangeIndex2.

--HG--
extra : rebase_source : a8e1b64c534cf2e9aea92dd8a06a4eeee8403d73
2015-07-27 16:59:17 +12:00
Karl Tomlinson
8fa05ce9cd bug 1187785 test periodic wave band limiting
--HG--
extra : rebase_source : 4124c181cbf5eb46e5c4067faf5298947ebcfb33
2015-07-29 11:57:56 +12:00
Drew Willcoxon
e004f2a723 Bug 1183044 - Properly mute AudioContext when there's an attempt to mute it before it has a destination. r=ehsan 2015-07-28 12:34:33 -07:00
Karl Tomlinson
a6cc0725e8 bug 1186781 skip reallocation when audio block is not shared r=padenot
--HG--
extra : rebase_source : d470e7d14716606bf97b06be05637441b4d2a9ef
2015-07-22 18:51:11 +12:00
Karl Tomlinson
639872f1ff bug 1186779 use ChannelFloatsForWrite() instead of const_cast r=padenot
--HG--
extra : rebase_source : 324b2fbf4addbac848b7a74b048d67ba7c461b0c
2015-07-22 17:59:21 +12:00
Karl Tomlinson
63508ac5a4 bug 1186779 add a method to cast AudioChunk data for writing when not shared r=padenot
--HG--
extra : rebase_source : 3c86cdf69877e4e13a2e7b3c208c2ccb3107390f
2015-07-22 18:43:30 +12:00
Karl Tomlinson
e33037127f bug 1184801 process AnalyserNode input only when required r=padenot
This moves the application of volume and averaging of channels to the main
thread, performed when required.  It avoids a potential allocation on the
graph thread.  If doing a full analysis for frequency data, the extra work on
the main thread should be negligible.  I assume that repeatedly fetching the
same time domain data with getFloatFrequencyData() is not something we need to
optimize for.  If, in rare circumstances, the extra main thread work turns out
to be significant, then the main thread work in getters is self-regulating,
but too much load on the graph thread leads to catastrophic failure in the
audio.

This also fixes some bugs:

Input and output streams for other consumers are not corrupted by in-place
scaling of data intended to be read-only.

When there are additional channels and fftSize < WEBAUDIO_BLOCK_SIZE, the
channels are not written past the current length of a buffer, so there is no
longer a dependency on nsTArray's behavior of never not reducing allocation
size on length changes.

The most recent fftSize samples are now used even when fftSize <
WEBAUDIO_BLOCK_SIZE, instead of the first fftSize samples in the most recent
block.

Enough time domain data is recorded so that getters will work immediately
following a change in fftSize.

--HG--
extra : rebase_source : bbd8a3e705d73781bb838a47261bf7d60cd1a9a7
2015-07-22 19:50:37 +12:00
Karl Tomlinson
15660ce0a3 bug 1184801 Test effect of AnalyserNode on GainNode output
--HG--
extra : rebase_source : 76315743a411d75937dfa85ecfaddce66864bd87
2015-07-17 13:24:54 +12:00
Paul Adenot
2ab300ac7b Bug 1156472 - Part 6 - Connect HTMLMediaElement and AudioContext to the capture stream when capturing is needed. r=roc 2015-07-24 14:28:17 +02:00
Paul Adenot
6187533e7d Bug 1156472 - Part 1 - Allow to capture all HTMLMediaElements and AudioContexts for a document. r=baku,padenot
This is built on top of the AudioChannel infrastructure. This patch does not
actually implement the capture, it just does the plumbing to be able to notify
all HTMLMediaElement/AudioContext for a document.
2015-07-09 16:40:08 +02:00
Wes Kocher
83b4188234 Backed out 14 changesets (bug 1156472) for test_getUserMedia_audioCapture.html failures on b2g emulator
Backed out changeset deec8eb18346 (bug 1156472)
Backed out changeset 0f5bec4c05ba (bug 1156472)
Backed out changeset 2dd83ac00bf9 (bug 1156472)
Backed out changeset abd4e47887f7 (bug 1156472)
Backed out changeset 4824d9874663 (bug 1156472)
Backed out changeset 12805598e6fa (bug 1156472)
Backed out changeset e2f0062a1f67 (bug 1156472)
Backed out changeset 99ef8e436a7f (bug 1156472)
Backed out changeset 65bbfc1546af (bug 1156472)
Backed out changeset 2ab4f16eaf0a (bug 1156472)
Backed out changeset 7f565685e20a (bug 1156472)
Backed out changeset 28c03c98cb2b (bug 1156472)
Backed out changeset d477cfba6e1d (bug 1156472)
Backed out changeset 9819fa56caa1 (bug 1156472)
2015-07-24 13:15:57 -07:00
Paul Adenot
b195db60a7 Bug 1156472 - Part 6 - Connect HTMLMediaElement and AudioContext to the capture stream when capturing is needed. r=roc 2015-07-24 14:28:17 +02:00
Paul Adenot
7c02310414 Bug 1156472 - Part 1 - Allow to capture all HTMLMediaElements and AudioContexts for a document. r=baku,padenot
This is built on top of the AudioChannel infrastructure. This patch does not
actually implement the capture, it just does the plumbing to be able to notify
all HTMLMediaElement/AudioContext for a document.
2015-07-09 16:40:08 +02:00
Carsten "Tomcat" Book
2b73aa4f63 Backed out 14 changesets (bug 1156472) for bustage on a CLOSED TREE
Backed out changeset 2ddbf85a42c0 (bug 1156472)
Backed out changeset 306d02e17081 (bug 1156472)
Backed out changeset 03598139f39a (bug 1156472)
Backed out changeset 4b1e6069b598 (bug 1156472)
Backed out changeset 6c588a5eaaec (bug 1156472)
Backed out changeset 8c98d7beaea7 (bug 1156472)
Backed out changeset fbf59fbb5875 (bug 1156472)
Backed out changeset 66479dd9eed9 (bug 1156472)
Backed out changeset c8502deeed33 (bug 1156472)
Backed out changeset 1a60ff1149a1 (bug 1156472)
Backed out changeset af1638279785 (bug 1156472)
Backed out changeset 8210276a98ca (bug 1156472)
Backed out changeset 13730e7c5997 (bug 1156472)
Backed out changeset 05acb71cf981 (bug 1156472)
2015-07-24 17:08:37 +02:00
Paul Adenot
c1a9ba0ab9 Bug 1156472 - Part 6 - Connect HTMLMediaElement and AudioContext to the capture stream when capturing is needed. r=roc 2015-07-24 14:28:17 +02:00
Paul Adenot
bae1e652bf Bug 1156472 - Part 1 - Allow to capture all HTMLMediaElements and AudioContexts for a document. r=baku,padenot
This is built on top of the AudioChannel infrastructure. This patch does not
actually implement the capture, it just does the plumbing to be able to notify
all HTMLMediaElement/AudioContext for a document.
2015-07-09 16:40:08 +02:00
Paul Adenot
6175cb8a69 Bug 1185176 - Account for the fact that it is possible for nodes to not have streams. r=karlt
We can now destroy a stream earlier than the node for performance reasons.
2015-07-24 15:09:19 +02:00
Benjamin Bouvier
676d79811c Bug 1186343: Throw an InvalidStateError when we set the curve attribute of a WaveShaperNode with a Float32Array of length less than 2; r=padenot,smaug
--HG--
rename : dom/media/webaudio/test/test_waveShaperZeroLengthCurve.html => dom/media/webaudio/test/test_waveShaperInvalidLengthCurve.html
extra : commitid : 6mncD6YlIar
extra : rebase_source : 2522698bcb1e1dcdb4047d8c5ab61f6caba8875e
extra : amend_source : 21cdb3f06b100a5b3a078dbc38ffeecedc675bae
2015-07-22 13:32:12 +02:00
Bobby Holley
04eaf4c167 Bug 1184634 - Move various includes into the mozilla namespace. r=gerald
I did my a quick best-effort pass to fix up the most egregious ordering
problems. I left some big pre-existing messes alone.
2015-07-16 22:23:18 -07:00
Bobby Holley
997543e6ba Bug 1184634 - Rename MediaTaskQueue to TaskQueue. r=gerald 2015-07-16 22:23:06 -07:00
Bobby Holley
78001ffc43 Bug 1184634 - Rename "TaskQueue()" accessor to "OwnerThread()". r=gerald
Otherwise this name will collide with the rename of MediaTaskQueue to TaskQueue.
It's also a better naming convention, because it generalizes to things that are
owned by an AbstractThread that is not a Task Queue.

We rename to Queue() in TestMozPromise, because that's more accurate.
2015-07-16 22:22:07 -07:00
Karl Tomlinson
7ca1ccc3cc bug 914392 don't check engine's Node existence in ProcessBlock r=padenot
If DestroyMediaStream() has cleared the node on the engine, then it will call
MediaStream::Destroy().  I doubt the additional code and cost of repeatedly
checking this is worth the savings in no-op events dispatched to main thread
between MediaStream::Destroy() on the main thread and destruction on the graph
thread.

Also ScriptProcessorNode should not be potentially ignoring its output buffer
immediately when the ScriptProcessor loses its last reference.  At least the
block currently being processed should output the output buffer.
(Deterministically playing the remainder of the output buffer would be best.)

--HG--
extra : rebase_source : 279f08808f4fbdbb41d67da0c3e495b65fdb24de
2015-07-14 23:11:59 +12:00
Karl Tomlinson
c9fab7e34e bug 914392 move mSharedBuffers ownership to engine r=padenot
so that it is always available.

--HG--
extra : rebase_source : b30ba835c2048a1316f436525fc98b695f7233bc
2015-07-14 22:51:44 +12:00
Karl Tomlinson
d907e81454 bug 914392 use NodeMainThread() to avoid NodeMutex() use on main thread r=padenot
--HG--
extra : rebase_source : 69ba42aeada680ff8d4c7bb3a78cb506551526bb
2015-07-14 21:57:01 +12:00
Ehsan Akhgari
89d446ad7d Bug 1184419 - Part 2: Get rid of HRTFDatabaseLoader::shutdownEnumFunc; r=padenot 2015-07-16 14:47:59 -04:00
Ehsan Akhgari
860198febf Bug 1184419 - Part 1: Get rid of FindConnectedSourcesOn; r=padenot 2015-07-16 14:47:58 -04:00
Birunthan Mohanathas
29477b15a9 Bug 1182808 - Part 3: Rename AlignedTArray_Impl to AlignedTArray and remove existing AlignedTArray. r=padenot 2015-07-15 12:58:22 -07:00
Birunthan Mohanathas
561b992900 Bug 1182808 - Part 2: Remove AlignedFallibleTArray. r=padenot 2015-07-15 12:58:18 -07:00
Birunthan Mohanathas
74431fc9ba Bug 1182808 - Part 1: Add and use fallible variant of AlignedTArray_Impl::SetLength. r=padenot 2015-07-15 12:58:15 -07:00
Paul Adenot
2a7cecac07 Bug 1179484 - Pass in the right graph when created the DOMMediaStream. r=roc 2015-07-02 09:30:58 +02:00
Birunthan Mohanathas
a8939590de Bug 1182996 - Fix and add missing namespace comments. rs=ehsan
The bulk of this commit was generated by running:

  run-clang-tidy.py \
    -checks='-*,llvm-namespace-comment' \
    -header-filter=^/.../mozilla-central/.* \
    -fix
2015-07-13 08:25:42 -07:00
Andrea Marchesini
24739b108d Bug 1177259 - Improve the names of the methods of nsIAudioChannelAgent, r=alwu 2015-07-11 08:24:26 +01:00
Andrea Marchesini
db14826639 Bug 1113086 - AudioChannel policy in Browser API - patch 1 - BrowserElementAudioChannel, r=ehsan
--HG--
rename : dom/audiochannel/AudioChannelAgent.h => dom/browser-element/BrowserElementAudioChannel.h
rename : dom/audiochannel/tests/file_telephonyPolicy.html => dom/browser-element/mochitest/test_browserElement_inproc_AudioChannel.html
rename : dom/audiochannel/tests/file_telephonyPolicy.html => dom/browser-element/mochitest/test_browserElement_oop_AudioChannel.html
rename : dom/audiochannel/AudioChannelCommon.h => dom/webidl/BrowserElementAudioChannel.webidl
2015-07-10 17:38:44 +01:00
Carsten "Tomcat" Book
c07e36b612 Backed out changeset bcfbdb934c37 (bug 1113086) for breaking cpp tests with timeouts in TestAudioChannelService.exe
--HG--
rename : dom/webidl/BrowserElementAudioChannel.webidl => dom/audiochannel/AudioChannelCommon.h
rename : dom/browser-element/mochitest/test_browserElement_oop_AudioChannel.html => dom/audiochannel/tests/file_telephonyPolicy.html
2015-07-11 14:14:58 +02:00
Carsten "Tomcat" Book
131967cfc8 Backed out changeset 41195fb9f293 (bug 1177259) 2015-07-11 14:13:27 +02:00
Andrea Marchesini
1ccca98929 Bug 1177259 - Improve the names of the methods of nsIAudioChannelAgent, r=alwu 2015-07-11 08:24:26 +01:00
Andrea Marchesini
3050bc370c Bug 1113086 - AudioChannel policy in Browser API - patch 1 - BrowserElementAudioChannel, r=ehsan
--HG--
rename : dom/audiochannel/AudioChannelAgent.h => dom/browser-element/BrowserElementAudioChannel.h
rename : dom/audiochannel/tests/file_telephonyPolicy.html => dom/browser-element/mochitest/test_browserElement_inproc_AudioChannel.html
rename : dom/audiochannel/tests/file_telephonyPolicy.html => dom/browser-element/mochitest/test_browserElement_oop_AudioChannel.html
rename : dom/audiochannel/AudioChannelCommon.h => dom/webidl/BrowserElementAudioChannel.webidl
2015-07-10 21:08:43 -04:00
Xidorn Quan
f23d866f51 Backed out 8 changesets (bug 1113086) for build bustage
Backed out changeset a20839dfd439 (bug 1113086)
Backed out changeset 675ea719b91c (bug 1113086)
Backed out changeset cfb34138bb9f (bug 1113086)
Backed out changeset b9525c60a737 (bug 1113086)
Backed out changeset 380859ae955b (bug 1113086)
Backed out changeset 5ec088f0892f (bug 1113086)
Backed out changeset caf57ae8cbce (bug 1113086)
Backed out changeset 0fc4dec6cd81 (bug 1113086)

--HG--
extra : histedit_source : d8dfd75d9dae36b7309ce78e3b4488faf57003da%2C48081711b7067191d8e4749fd3b572db59bc03f9
2015-07-11 10:55:59 +10:00
Andrea Marchesini
bbb0a11f31 Bug 1113086 - AudioChannel policy in Browser API - patch 1 - BrowserElementAudioChannel, r=ehsan
--HG--
rename : dom/browser-element/mochitest/test_browserElement_inproc_GetContentDimensions.html => dom/browser-element/mochitest/test_browserElement_inproc_AudioChannel.html
rename : dom/browser-element/mochitest/test_browserElement_oop_GetContentDimensions.html => dom/browser-element/mochitest/test_browserElement_oop_AudioChannel.html
2015-07-10 17:38:44 +01:00
Kyle Machulis
695f51d864 Bug 1157768 - FFTBlock Changes for using libav fft; r=padenot 2015-07-10 14:34:07 -07:00
Wes Kocher
b561edb7f4 Backed out 3 changesets (bug 1157768) for win64 pgo build bustage CLOSED TREE
Backed out changeset 24ced1b9f9dd (bug 1157768)
Backed out changeset 55efd92ce59d (bug 1157768)
Backed out changeset 812f311c4ee4 (bug 1157768)
2015-07-09 14:40:20 -07:00
Kyle Machulis
fa47643a2a Bug 1157768 - FFTBlock Changes for using libav fft; r=padenot 2015-07-09 09:07:53 -07:00
Emanuel Hoogeveen
7d1e52f2ff Bug 905127 - Part 1 - Make some functions from nsNetUtil not inline. r=jduell 2015-07-07 04:17:00 +02:00
Ehsan Akhgari
2c2295d295 Bug 1180539 - Correctly dispatch media-playback notifications when an AudioContext is closed/suspended/resumed; r=baku
Since navigating away from a page with an active AudioContext will close
it internally, this patch fixes a similar issue to bug 1180535 for Web
Audio too.
2015-07-06 21:21:19 -04:00
Ehsan Akhgari
9371189fe4 Backout bug 1180539 for test failures 2015-07-06 10:50:35 -04:00
Ehsan Akhgari
c0e3046caf Bug 1180539 follow-up: Add a null check in AudioContext::Close to fix the ccrash in Web Audio Editor tests 2015-07-06 10:35:16 -04:00
Ehsan Akhgari
e279cd48ad Bug 1180539 - Correctly dispatch media-playback notifications when an AudioContext is closed/suspended/resumed; r=baku
Since navigating away from a page with an active AudioContext will close
it internally, this patch fixes a similar issue to bug 1180535 for Web
Audio too.
2015-07-06 09:10:06 -04:00
Ehsan Akhgari
c6f415d397 Bug 1180347 - Split media.useAudioChannelService to support turning the service on without turning the Firefox OS specific APIs on; r=baku
This is going to be needed for us to be able to turn the AudioChannelService
on for desktop without exposing the Firefox OS specific APIs.
2015-07-06 09:05:00 -04:00
Paul Adenot
84707f0892 Bug 1173016 - Bustage fix: mark BasicWaveformCache's ctor as explicit, on a CLOSED TREE. 2015-07-06 14:27:18 +02:00
Paul Adenot
b1cd8acc4d Bug 1173016 - Properly refcount the inner PeriodicWave object. r=karlt 2015-07-06 13:58:33 +02:00
Paul Adenot
5484d0c363 Bug 1173016 - Cache the basic waveform PeriodicWaves. r=karlt 2015-06-15 18:16:16 +02:00
Ehsan Akhgari
67cd5d7755 Bug 1180350 - Use UseAudioChannelService more; r=baku 2015-07-05 11:02:33 -04:00
Ehsan Akhgari
70caaac6af Bug 1180355 - Initialize the AudioChannelAgent after AudioContext has gained a stable refcount; r=baku 2015-07-04 11:17:51 -04:00
Karl Tomlinson
32603f9d43 bug 1179662 call DisconnectFromGraph once only during unlink r=padenot
--HG--
extra : rebase_source : 4e8fd171367f46cfc3e5e64f4d7e08ceff2e84d3
2015-07-02 18:11:31 +12:00
Karl Tomlinson
ee5781b91a bug 1179662 call UnregisterAudioBufferSourceNode only once r=padenot
Because these nodes are only registered on PannerNodes if they have a
stream, they need only be unregistered once after the stream is destroyed.

Previously unregistration happened on finish, unlink, and destructor.

--HG--
extra : rebase_source : 7dab08fe4b5648e2a04495d6f570727684247f51
2015-07-02 18:14:54 +12:00
Karl Tomlinson
a0a5e2b547 bug 1179662 handle null AudioNodeStream stream r=padenot
--HG--
extra : rebase_source : 0f0bb303aae42240638513e6d2b8f8c61cb6c1f5
2015-07-02 17:45:11 +12:00
Karl Tomlinson
ed5b0e90c4 bug 1179662 rename AudioNode::Stream() to GetStream() as it may return null r=padenot
--HG--
extra : rebase_source : 0279287801ec91efd16fa14135812307926b3c68
2015-07-02 17:30:36 +12:00
Karl Tomlinson
7f8f4121f7 bug 1179662 specify AudioNode::mStream as AudioNodeStream r=padenot
--HG--
extra : rebase_source : 30cbe8f0b513063acf0e1c62078474f8f147a0ae
2015-07-02 17:36:07 +12:00
Karl Tomlinson
2c46294a5d bug 1179662 uninline DestroyMediaStream overrides so that mStream type need not be complete r=padenot
--HG--
extra : rebase_source : 2f9676a2e1c4ce13adfdf109e7e8c9827fb26502
2015-07-02 16:44:31 +12:00
Paul Adenot
724c74bc92 Bug 1175510 - Update the AudioBufferSourceNode <=> PannerNode mapping when destroying AudioNodeStream. r=karlt
--HG--
extra : rebase_source : d02b6c241ca5371b8c53bfea54bf80954ab1725c
2015-07-02 05:43:52 +02:00
Nathan Froyd
974d8120f2 Bug 1161627 - part 2 - machine-convert TemporaryRef<T> to already_AddRefed<T>; r=ehsan
This conversion was done with the script:

  find . -name '*.cpp' -o -name '*.h' -o -name '*.mm' -o -name '*.idl' | \
    egrep -v 'cairo-win32-refptr.h|RefPtr.h|TestRefPtr.cpp' | \
    xargs sed -i -e 's/mozilla::TemporaryRef</already_AddRefed</g' \
                 -e 's/TemporaryRef</already_AddRefed</g'

Manual fixups were performed in the following instances:

- We handled mfbt/RefPtr.h manually so as to not convert TemporaryRef itself
  into already_AddRefed.

- The following files had explicit Move() calls added to make up for the lack
  of a copy constructor on already_AddRefed:

  dom/base/ImageEncoder.cpp
  dom/media/MediaTaskQueue.{h,cpp}
  dom/media/webaudio/PannerNode.cpp

- A redundant overload for MediaTaskQueue::Dispatch was deleted.

- A few manual fixups were required in mfbt/tests/TestRefPtr.cpp.

- Comments, using declarations, and forward declarations relating to
  TemporaryRef in dom/canvas/ and gfx/layers/ were changed to refer to
  already_AddRefed.
2015-06-17 10:00:52 -04:00
Bobby Holley
3985c88eb7 Bug 1175768 - Throttle NotifyDataArrived. r=jya 2015-06-27 01:19:14 -07:00
Bobby Holley
f25ea07acc Bug 1175768 - Dispatch NotifyDataArrived and remove the aBuffer argument. r=jya
It would be nice to remove the argument in a separate patch, but we can't
perform MediaResource reads on the main thread, so the SilentReadAt stuff
needs to happen at the same time as the off-main-thread stuff.
2015-06-27 01:19:10 -07:00
Bobby Holley
a269ea96b4 Bug 1175768 - Dispatch UpdateEstimatedMediaDuration. r=jya
NotifyDataArrived will soon run off-main-thread, so the assumptions here won't hold.
2015-06-27 01:19:07 -07:00
JW Wang
13addbc548 Bug 1175786 - Rewrite test_mediaElementAudioSourceNodeCrossOrigin.html. r=padenot
--HG--
extra : rebase_source : 1d754c33cfbc706914ef7f92b80ac7c3250f3423
2015-06-17 19:45:00 +02:00
Matthew Gregan
ac2b9444ba Bug 1103824 - Back out changeset for causing regression reported in bug 1176499. 2015-06-23 17:02:51 -07:00
Ryan VanderMeulen
d9ca5de3ed Backed out 8 changesets (bug 1175768) for frequent media test failures.
Backed out changeset a369cfb95b59 (bug 1175768)
Backed out changeset e02dd312d622 (bug 1175768)
Backed out changeset 6776ce74b9e5 (bug 1175768)
Backed out changeset 6aa5fa1d318e (bug 1175768)
Backed out changeset a8bd7a0d2aea (bug 1175768)
Backed out changeset 41ffc9a9ac48 (bug 1175768)
Backed out changeset 2d2cefa397dc (bug 1175768)
Backed out changeset 4e06368496d2 (bug 1175768)

CLOSED TREE
2015-06-23 16:20:15 -04:00
Bobby Holley
6925b1f100 Bug 1175768 - Throttle NotifyDataArrived. r=jya 2015-06-22 22:53:09 -07:00
Bobby Holley
23c16e6894 Bug 1175768 - Dispatch NotifyDataArrived and remove the aBuffer argument. r=jya
It would be nice to remove the argument in a separate patch, but we can't
perform MediaResource reads on the main thread, so the SilentReadAt stuff
needs to happen at the same time as the off-main-thread stuff.
2015-06-22 22:53:07 -07:00
Bobby Holley
56422fb439 Bug 1175768 - Dispatch UpdateEstimatedMediaDuration. r=jya
NotifyDataArrived will soon run off-main-thread, so the assumptions here won't hold.
2015-06-22 22:53:06 -07:00
Bobby Holley
56a6ea9edb Bug 1172264 - Mirror duration from the MDSM to the MediaDecoderReader and remove MDSM::GetDuration. r=jww 2015-06-17 09:49:10 -07:00
Matthew Gregan
bf4e15de86 Bug 1103824 - Ensure first initialization of IAudioClient happens on STA thread. r=padenot
--HG--
extra : rebase_source : 344380ef08d44983c745bea5cee792140ca7ca66
2015-05-14 18:33:23 +12:00
Karl Tomlinson
70a1be5d33 Bug 974089 - Destroy WebAudio MediaStream when a source finishes. r=padenot
--HG--
extra : rebase_source : 1a6c80ebaf11cf52194774088399040fea4605cd
2015-06-10 13:31:29 +02:00