Commit Graph

2346 Commits

Author SHA1 Message Date
Byron Campen [:bwc]
c72b942b7e Bug 1148649: Reenable video multistream mochitests on debug e10s. r=drno
--HG--
extra : rebase_source : 5e29d37c289cb67148bafe7947191bb6de1338a6
extra : amend_source : b89129bcedf027ffc5c19cc17d5faeba6eb545b6
2015-03-26 13:03:29 -07:00
Ryan VanderMeulen
ab26b260cd Merge m-c to inbound. a=merge
CLOSED TREE
2015-03-31 15:01:26 -04:00
Ryan VanderMeulen
bf52a3a76f Merge inbound to m-c. a=merge 2015-03-31 14:08:52 -04:00
Ryan VanderMeulen
608e0e0c96 Backed out changeset 95866bc69415 (bug 1144409) for bustage. 2015-03-31 11:16:29 -04:00
Ryan VanderMeulen
5afca0859f Backed out changeset 13c7176938cd (bug 1144409) 2015-03-31 11:16:21 -04:00
Alastor Wu
5f4ff6530f Bug 1107534 - Using audio channels type to capture different stream. r=roc 2015-03-31 10:14:00 +08:00
Gerald Squelart
b27ea35c32 Bug 1144409 - Test that encrypted events are fired for each initData. r=edwin 2015-03-26 18:58:00 -04:00
Gerald Squelart
1d7764854a Bug 1144409 - Encrypted event should be fired once per initData. r=cpearce 2015-03-26 18:57:00 -04:00
Sotaro Ikeda
1255918bb8 Bug 1139206 - Update AudioOffloadPlayer seek r=bholley,bwu 2015-03-31 10:02:22 -07:00
Mike Hommey
c39e359c7d Bug 1138293 - Use malloc/free/realloc/calloc instead of moz_malloc/moz_free/moz_realloc/moz_calloc. r=njn
The distinction between moz_malloc/moz_free and malloc/free is not
interesting. We are inconsistent in our use of one or the other, and
I wouldn't be surprised if we are mixing them anyways.
2015-03-31 12:32:49 +09:00
Jed Davis
08d1c1ef36 Bug 1149312 - Obtain test coverage for the file-backed case of MediaRecorder. r=roc
--HG--
extra : rebase_source : a32154a1d15308c204848e8b2fb7f0070cc4490f
2015-03-30 17:13:00 +02:00
Blake Wu
2030c9f064 Bug 1147258 - Check with assertion if there is any queued sample when EOS. r=ajones
--HG--
extra : rebase_source : 4047c157bbbc196b04879b476e6e7e5d096c8fef
2015-03-27 15:56:07 +08:00
Jean-Yves Avenard
a288b721e4 Bug 1133633: Part2. Enable async decoding on mac. r=mattmoodrow 2015-03-31 20:36:32 +11:00
Jean-Yves Avenard
624eb59f55 Bug 1062098: Do not attempt to display dropped frames. r=mattwoodrow 2015-03-31 20:36:29 +11:00
Chris Pearce
5d922e0e8e Bug 1146201 - Delay navigator.requestMediaKeySystemAccess if CDM not downloaded yet or needs update. r=jwwang,ehsan 2015-03-31 20:50:01 +13:00
Bobby Holley
e42f8208f6 Bug 1147555 - Implement logging for MediaTimer. r=mattwoodrow 2015-03-30 20:06:38 -07:00
Bobby Holley
9f31ecca48 Bug 1147555 - Invert the ordering of our priority queue. r=mattwoodrow 2015-03-30 20:06:38 -07:00
Carsten "Tomcat" Book
60382cb6ba Backed out changeset bf22c9e5c5a3 (bug 1094764) for crashtest failures on a CLOSED TREE 2015-03-30 15:14:09 +02:00
Paul Adenot
6ee36e38f6 Bug 1094764 - Implement AudioContext.suspend and friends. r=roc,ehsan
- Relevant spec text:
    - http://webaudio.github.io/web-audio-api/#widl-AudioContext-suspend-Promise
    - http://webaudio.github.io/web-audio-api/#widl-AudioContext-resume-Promise
    - http://webaudio.github.io/web-audio-api/#widl-AudioContext-close-Promise
    - http://webaudio.github.io/web-audio-api/#widl-AudioContext-state
    - http://webaudio.github.io/web-audio-api/#widl-AudioContext-onstatechange

- In a couple words, the behavior we want:
    - Closed context cannot have new nodes created, but can do decodeAudioData,
    and create buffers, and such.
    - OfflineAudioContexts don't support those methods, transitions happen at
    startRendering and at the end of processing. onstatechange is used to make
    this observable.
    - (regular) AudioContexts support those methods. The promises and
    onstatechange should be resolved/called when the operation has actually
    completed on the rendering thread.  Once a context has been closed, it
    cannot transition back to "running". An AudioContext switches to "running"
    when the audio callback start running, this allow authors to know how long
    the audio stack takes to start running.
    - MediaStreams that feed in/go out of a suspended graph should respectively
    not buffer at the graph input, and output silence
    - suspended context should not be doing much on the CPU, and we should try
    to pause audio streams if we can (this behaviour is the main reason we need
    this in the first place, for saving battery on mobile, and CPU on all
    platforms)

- Now, the implementation:
    - AudioNodeStreams are now tagged with a context id, to be able to operate
    on all the streams of a given AudioContext on the Graph thread without
    having to go and lock everytime to touch the AudioContext. This happens in
    the AudioNodeStream ctor. IDs are of course constant for the lifetime of the
    node.
    - When an AudioContext goes into suspended mode, streams for this
    AudioContext are moved out of the mStreams array to a second array,
    mSuspendedStreams. Streams in mSuspendedStream are not ordered, and are not
    processed.
    - The MSG will automatically switch to a SystemClockDriver when it finds
    that there are no more AudioNodeStream/Stream with an audio track. This is
    how pausing the audio subsystem and saving battery works. Subsequently, when
    the MSG finds that there are only streams in mSuspendedStreams, it will go
    to sleep (block on a monitor), so we save CPU, but it does not shut itself
    down. This is mostly not a new behaviour (this is what the MSG does since
    the refactoring), but is important to note.
    - Promises are gripped (addref-ed) on the main thread, and then shepherd
    down other threads and to the GraphDriver, if needed (sometimes we can
    resolve them right away). They move between threads as void* to prevent
    calling methods on them, as they are not thread safe. Then, the driver
    executes the operation, and when it's done (initializing and closing audio
    streams can take some time), we send the promise back to the main thread,
    and resolve it, casting back to Promise* after asserting we're back on the
    main thread. This way, we can send them back on the main thread once an
    operation has complete (suspending an audio stream, starting it again on
    resume(), etc.), without having to do bookkeeping between suspend calls and
    their result. Promises are not thread safe, so we can't move them around
    AddRef-ed.
    - The stream destruction logic now takes into account that a stream can be
    destroyed while not being in mStreams.
    - A graph can now switch GraphDriver twice or more per iteration, for
    example if an author goes suspend()/resume()/suspend() in the same script.
    - Some operation have to be done on suspended stream, so we now use double
    for-loop around mSuspendedStreams and mStreams in some places in
    MediaStreamGraph.cpp.
    - A tricky part was making sure everything worked at AudioContext
    boundaries.  TrackUnionStream that have one of their input stream suspended
    append null ticks instead.
    - The graph ordering algorithm had to be altered to not include suspended
    streams.
    - There are some edge cases (adding a stream on a suspended graph, calling
    suspend/resume when a graph has just been close()d).
2015-02-27 18:22:05 +01:00
Edwin Flores
157fb06549 Bug 1142835 - Null check mPlugin on GMPAudioDecoderParent shutdown - r=cpearce 2015-03-30 14:58:19 +13:00
Jan-Ivar Bruaroey
924f8ae71f Bug 1046245 - IO on STS thread + cleanup BackgroundChild on shutdown. r=jesup 2015-03-29 13:43:43 -04:00
Jan-Ivar Bruaroey
c6676519f2 Bug 1046245 - enumerateDevices w/non-blocking e10s, nsICryptoHMAC, clear cookies, lambdas. r=keeler, florian, billm, jesup 2015-03-03 09:51:05 -05:00
Jan-Ivar Bruaroey
95f7adab84 Bug 1046245 - enumerateDevices origin-unique ids persisted to disk. r=jesup 2015-03-03 09:51:05 -05:00
Jan-Ivar Bruaroey
8af3083f44 Bug 1046245 - enumerateDevices session-persisted hmac id. r=jesup 2015-02-23 11:50:48 -05:00
Jan-Ivar Bruaroey
7538e95524 Bug 1046245 - enumerateDevices returns label for pages w/active gUM or persistent permissions. r=jesup 2015-03-03 09:51:05 -05:00
Jan-Ivar Bruaroey
b711b1abcf Bug 1046245 - enumerateDevices (harmless interface version) r=smaug, r=jesup 2015-03-03 09:51:05 -05:00
Nicolas Silva
52be9f47b5 Bug 1132854 - Remove useless ThebesIntSize conversion helper. r=Bas 2015-03-29 16:59:15 +02:00
Nicolas Silva
e3eaf89e3f Bug 1132854 - Make nsIntSize a typedef of gfx::IntSize. r=Bas, roc 2015-03-29 16:59:08 +02:00
Andrew McCreight
46dfeaba0b Bug 1148070 - Change nsIClassInfo::getHelperForLanguage() to getScriptableHelper(). r=bholley 2015-03-29 07:52:54 -07:00
Randell Jesup
2b3486247c Backed out 6 changesets (bug 1046245) on a CLOSED TREE 2015-03-29 01:42:32 -04:00
Jan-Ivar Bruaroey
6379bfb0be Bug 1046245 - IO on STS thread + cleanup BackgroundChild on shutdown. r=jesup 2015-03-28 19:02:46 -04:00
Jan-Ivar Bruaroey
cdd0b089a5 Bug 1046245 - enumerateDevices w/non-blocking e10s, nsICryptoHMAC, clear cookies, lambdas. r=keeler, r=florian, r=billm, r=jesup 2015-03-03 09:51:05 -05:00
Jan-Ivar Bruaroey
c4161900da Bug 1046245 - enumerateDevices origin-unique ids persisted to disk. r=jesup 2015-03-03 09:51:05 -05:00
Jan-Ivar Bruaroey
34c27979df Bug 1046245 - enumerateDevices session-persisted hmac id. r=jesup 2015-02-23 11:50:48 -05:00
Jan-Ivar Bruaroey
2c6d1d99bc Bug 1046245 - enumerateDevices returns label for pages w/active gUM or persistent permissions. r=jesup 2015-03-03 09:51:05 -05:00
Jan-Ivar Bruaroey
a0143ecf52 Bug 1046245 - enumerateDevices (harmless interface version). r=smaug, r=jesup 2015-03-03 09:51:05 -05:00
Phil Ringnalda
24b4f38005 Back out 6 changesets (bug 1046245) for thinking that MSVC would have anything to do with a __PRETTY_FUNCTION__
CLOSED TREE

Backed out changeset 9e3ecca831d8 (bug 1046245)
Backed out changeset 87dc145f4da8 (bug 1046245)
Backed out changeset 01606cf19a77 (bug 1046245)
Backed out changeset 2ed2b15fe940 (bug 1046245)
Backed out changeset 2b99b193828a (bug 1046245)
Backed out changeset d1ac67faccbb (bug 1046245)
2015-03-28 19:57:17 -07:00
Jan-Ivar Bruaroey
f3376e46f8 Bug 1046245 - IO on STS thread + cleanup BackgroundChild on shutdown. r=jesup 2015-03-28 19:02:46 -04:00
Jan-Ivar Bruaroey
222e93c87c Bug 1046245 - enumerateDevices w/non-blocking e10s, nsICryptoHMAC, clear cookies, lambdas. r=keeler, r=florian, r=billm, r=jesup 2015-03-03 09:51:05 -05:00
Jan-Ivar Bruaroey
1668e7a628 Bug 1046245 - enumerateDevices origin-unique ids persisted to disk. r=jesup 2015-03-03 09:51:05 -05:00
Jan-Ivar Bruaroey
7d79ddc696 Bug 1046245 - enumerateDevices session-persisted hmac id. r=jesup 2015-02-23 11:50:48 -05:00
Jan-Ivar Bruaroey
6bea0d068b Bug 1046245 - enumerateDevices returns label for pages w/active gUM or persistent permissions. r=jesup 2015-03-03 09:51:05 -05:00
Jan-Ivar Bruaroey
08e703b65e Bug 1046245 - enumerateDevices (harmless interface version). r=smaug, r=jesup 2015-03-03 09:51:05 -05:00
Ryan VanderMeulen
003e8f5278 Backed out 6 changesets (bug 1046245) for bustage on a CLOSED TREE.
Backed out changeset 222c2f9e3bc9 (bug 1046245)
Backed out changeset 4251eef464a2 (bug 1046245)
Backed out changeset 592f4cc23197 (bug 1046245)
Backed out changeset 5bfb9a1c0550 (bug 1046245)
Backed out changeset e966a5df87b6 (bug 1046245)
Backed out changeset 609f3ca64004 (bug 1046245)
2015-03-28 16:24:25 -04:00
Jan-Ivar Bruaroey
f350dbadee Bug 1046245 - IO on STS thread + cleanup BackgroundChild on shutdown. r=jesup 2015-03-28 11:45:42 -04:00
Jan-Ivar Bruaroey
59e13faed0 Bug 1046245 - enumerateDevices w/non-blocking e10s, nsICryptoHMAC, clear cookies, lambdas. r=keeler, r=florian, r=billm, r=jesup 2015-03-03 09:51:05 -05:00
Jan-Ivar Bruaroey
6a70b84a54 Bug 1046245 - enumerateDevices origin-unique ids persisted to disk. r=jesup 2015-03-03 09:51:05 -05:00
Jan-Ivar Bruaroey
600361d553 Bug 1046245 - enumerateDevices session-persisted hmac id. r=jesup 2015-02-23 11:50:48 -05:00
Jan-Ivar Bruaroey
4a058ae74a Bug 1046245 - enumerateDevices returns label for pages w/active gUM or persistent permissions. r=jesup 2015-03-03 09:51:05 -05:00
Jan-Ivar Bruaroey
f33f50277c Bug 1046245 - enumerateDevices (harmless interface version). r=smaug, r=jesup 2015-03-03 09:51:05 -05:00