Commit Graph

109 Commits

Author SHA1 Message Date
Chris Pearce
aa8aee7920 Bug 968016 - Use a SharedThreadPool of size 1 for the Media State Machine thread. r=kinetik
This makes it easy to share the state machine thread, and for it to shut down
automatically when the last reference is dropped to it.
2014-02-18 11:53:53 +13:00
Paul Adenot
77fe8ccc32 Bug 960057 - When an HTMLMediaElement outputs to a MediaStream, make sure to install the refill callback in any case. r=roc DONTBUILD 2014-02-14 10:38:58 -08:00
Paul Adenot
8185373937 Backed out changeset 4d0197840932 (bug 960057) for invalid bug number in the commit message. 2014-02-17 13:54:17 +01:00
Paul Adenot
34a3734b1a Bug 960059 - When an HTMLMediaElement outputs to a MediaStream, make sure to install the refill callback in any case. r=roc
--HG--
extra : rebase_source : a690159d6395ed7bab2a053bbb1cc65e11bb8be6
2014-02-14 10:38:58 -08:00
Robert O'Callahan
09bac2f130 Bug 943461. Part 13: Keep producing silence in AudioNodeStreams' mLastChunks even after they've finished r=padenot
Without this the last before-finished audio block gets picked up by downstream
ObtainInputBlock calls.

--HG--
extra : rebase_source : d7f804cea59454bdb0aa5931d19bcc123e0d16cb
2013-12-10 13:49:03 +13:00
Robert O'Callahan
27ac5e476a Bug 943461. Part 11: Don't tear down an OfflineAudioContext until its current time has actually reached its end, to ensure that all relevant stream state changes have been forwarded to the main thread. r=padenot
--HG--
extra : rebase_source : 32b9a4cf4c39edfabf5be17cec50a676f1ad4641
2013-12-09 18:08:02 +13:00
Robert O'Callahan
0e1cc53aae Bug 943461. Part 5: Don't allow a stream to finish before it has produced output up to mStateComputedTime. r=padenot
--HG--
extra : rebase_source : 9bf003c246b63b1dd64665024533fda74a8e1fa4
2013-12-06 09:23:57 +13:00
Paul Adenot
371ad746eb Bug 916384 - Stop calling onaudioprocess on the ScriptProcessorNode it has no inputs or outputs. r=roc
Quoting the spec: "audioprocess events are only dispatched if the
ScriptProcessorNode has at least one input or one output connected".

--HG--
extra : rebase_source : bbf52a183a55b75d394a885624a4080a9467fac4
2013-12-12 15:31:51 +01:00
Paul Adenot
45ee5216e9 Bug 916384 and 944707 - Backed out fa872452b89d and 012b1baf2b19 for crashes on a CLOSED TREE. 2013-12-11 16:31:35 +01:00
Paul Adenot
b7e2b9858e Bug 916384 - Stop calling onaudioprocess on the ScriptProcessorNode if it has no inputs and outputs. r=roc
Quoting the spec: "audioprocess events are only dispatched if the
ScriptProcessorNode has at least one input or one output connected".

--HG--
extra : rebase_source : 93881fb4395744dc0adbb6df7ee146ef70ce42d2
2013-12-10 14:41:41 +01:00
Robert O'Callahan
d51f35eb1a Bug 938022. Part 5: Add aCurrentTime parameter to MediaStreamListener::NotifyOutput and fire notifications when the MediaStreamGraph is in a good state. r=padenot
--HG--
extra : rebase_source : 79edce8650fdb7af315df5006ec3b91dc9fd869f
2013-11-26 00:59:49 +13:00
Chris Double
9e246ccf6b Bug 939716 - Destructor for MediaStreamGraph should be virtual - r=roc
The destructor for MediaStreamGraph is non-virtual but it has a
derived class, MediaStreamGraphImpl, that overrides the destructor.
This destructor won't be called if an instance is deleted using a
pointer type of MediaStreamGraph.

It's unclear whether this actually happens but MediaStreamGraph.cpp
has code that creates a MediaStreamGraphImpl and returns it as a
MediaStreamGraph.

--HG--
extra : rebase_source : 9d006e5bf9bb056b5a54fc7aec159c26376c1459
2013-11-19 02:09:47 +13:00
Karl Tomlinson
7d5f234734 b=923301 use MediaStreamGraph to dispatch PlayingRefChangeHandlers r=roc
This reduces the number of events dispatched to the main thread
and ensures these run in order with other pending updates.

--HG--
extra : transplant_source : %5E%235%DEz%EB%7D%C6%C7%F8%AF%A3%84%1F%F9%5B%87D%B3%13
2013-10-25 12:12:33 +13:00
Karl Tomlinson
5e0ead518c b=923301 remove now-unused GetCurrentGraphUpdateIndex() and rename mGraphUpdatesSent to mNextGraphUpdateIndex r=roc
--HG--
extra : transplant_source : %B6%E8%FF%F8%CA%CCWo%D0%82s%FC%92C%F5L%D9%3D%81%88
2013-10-25 12:12:00 +13:00
Karl Tomlinson
d0796ca005 b=923301 add MediaStreamGraph::RunAfterPendingUpdates() r=roc
--HG--
extra : transplant_source : %89%21%AE%87%C7%9C%07%28%3D%60T%83%16n%DC%C9O%87iy
2013-10-25 12:07:29 +13:00
Paul Adenot
00111b2b51 Bug 918861 - Allow the MSG to choose a better samplerate than 48000Hz. r=roc
--HG--
extra : rebase_source : 2181ccbbdca370031d1d3ae5b44ef4e37a3e948c
2013-10-17 15:44:52 +02:00
Benoit Jacob
229d2760cd Bug 913847 - Include MainThreadUtils.h instead of nsThreadUtils.h - r=ehsan 2013-09-19 09:54:42 -04:00
Paul Adenot
a37178b018 Bug 881959 - Clamp the DelayNode.delayTime to 128/AudioContext.sampleRate when in a cycle. r=ehsan
--HG--
extra : rebase_source : 7cf8945371bb6ff169ad61a8ccdda0ece36b5e83
2013-09-02 15:15:24 +02:00
Ehsan Akhgari
7763e90cd9 Bug 881959 - Tell the MediaStreamGraph when changes to the graph occur. r=roc
--HG--
extra : rebase_source : f5c0021e35fa0b66cc45434b5d23742ff3cc3019
2013-09-13 18:12:07 +02:00
Wes Kocher
0b90687d1e Backed out changeset 040522aacba4 (bug 913847) 2013-09-18 17:18:56 -07:00
Benoit Jacob
5526ea7b69 Bug 913847 - Include MainThreadUtils.h instead of nsThreadUtils.h - r=ehsan 2013-09-18 18:50:32 -04:00
Ed Morley
63e17f1c16 Backed out changeset fe576415129e (bug 881959) 2013-09-17 17:14:52 +01:00
Ed Morley
72dc9a81ef Backed out changeset 2aa38a1a2b06 (bug 881959) 2013-09-17 17:14:42 +01:00
Paul Adenot
202c19d92d Bug 881959 - Clamp the DelayNode.delayTime to 128/AudioContext.sampleRate when in a cycle. r=ehsan
--HG--
extra : rebase_source : 5282e468fbe411a455f65bc0d22b16163db4bd7a
2013-09-02 15:15:24 +02:00
Ehsan Akhgari
9e6a6f212f Bug 881959 - Tell the MediaStreamGraph when changes to the graph occur. r=roc
--HG--
extra : rebase_source : b71feb43da4f1f86e251dce73f87864af24b61c0
2013-09-13 18:12:07 +02:00
Karl Tomlinson
dc411d889b b=914030 shut down an AudioDestinationNode's graph on destruction, if not already r=ehsan
This means that the graph will be shutdown properly, even if the
AudioDestinationNode is unlinked before AudioContext::Shutdown() is called.

Making MediaStreamGraph::DestroyNonRealtimeInstance() idempotent also makes
AudioContext::Shutdown() idempotent.

--HG--
extra : transplant_source : jZ%86%C5%C2n%17%EF%C2%C0y%ED%14%0E%17_dt%0C%07
2013-09-10 17:05:22 +12:00
Ehsan Akhgari
210ba12d7c Bug 912702 - Minimize the #includes in content/media; r=roc 2013-09-05 16:25:17 -04:00
Ehsan Akhgari
45746b149c 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
66abd6bfb5 Bug 912702 - Minimize the #includes in content/media; r=roc 2013-09-04 17:58:14 -04:00
Randell Jesup
d093043b4d Bug 909187: Part 2 - Allow DOM MediaStreams to intercept SetTrackEnabled calls r=roc (reland) 2013-08-26 02:07:19 -04:00
Randell Jesup
ed90712171 Bug 909187: Part 1-Refactor MediaStreamTrack disabling so we can call it directly and access from other threads r=roc (reland) 2013-08-26 02:07:17 -04:00
Wes Kocher
30bb9083ce Backed out 2 changesets (bug 909187)
Backed out changeset 79b1a4a62635 (bug 909187)
Backed out changeset 0601038e2a31 (bug 909187)
2013-08-26 02:29:55 -07:00
Randell Jesup
7b81d69b21 Bug 909187: Part 2 - Allow DOM MediaStreams to intercept SetTrackEnabled calls r=roc 2013-08-26 02:07:19 -04:00
Randell Jesup
bcd3b7a8e1 Bug 909187: Part 1-Refactor MediaStreamTrack disabling so we can call it directly and access from other threads r=roc 2013-08-26 02:07:17 -04:00
Randell Jesup
d4630d0cb2 Bug 884365: Deliver gUM data directly to PeerConnection to avoid delay buildup and resampling r=roc 2013-08-24 09:53:11 -04:00
Randell Jesup
492922de40 Bug 884365: Add method to return the amount of buffered data on a SourceMediaStream r=roc 2013-08-24 09:53:01 -04:00
Robert O'Callahan
27f0fafdba Bug 902197. Don't allow multiple MediaStreams to share the same DOMMediaStream wrapper. r=ehsan
--HG--
extra : rebase_source : 60de0aaff391bcabae6c281036e4ab82589e2707
2013-08-07 10:14:35 +12:00
secretrobotron
84e2becf3b Bug 856361. Part 5: Implement MediaStreamAudioSourceNode. r=ehsan
--HG--
extra : rebase_source : 265f31edda31a2f749eacc568919304622446748
2013-07-24 23:29:39 +12:00
Robert O'Callahan
f96ab4782f Bug 856361. Part 3: Refactor AudioNodeStream to create ComputeFinalOuputChannelCount, AccumulateInputChunk and AdvanceOutputSegment, and make AudioNodeStreams be treated as always consumed by the MediaStreamGraph. r=ehsan
--HG--
extra : rebase_source : ef176c629f16a00042d2a281bfffbe75c31d6002
2013-07-24 22:11:35 +12:00
Robert O'Callahan
a9fa877334 Bug 856361. Part 1: Fix comments for MediaInputPort flags to reflect reality. r=jesup
--HG--
extra : rebase_source : 8828d63f75b41500f9c7af5a4d6cf97740fe7215
2013-07-17 15:16:09 +12:00
Paul Adenot
c4b7a6598a Bug 882543 - Use a linked list for ordering stream instead of an array. r=ehsan 2013-07-19 16:40:58 +02:00
Robert O'Callahan
97ebf79d0c Bug 890248. Avoid situations where adding a new input to an AudioNode can race with a message telling the AudioNode to release its mPlayingRef. r=ehsan
--HG--
extra : rebase_source : 913683cc16a717bf73f9976292af965aba6b7758
2013-07-05 13:49:53 +12:00
Ehsan Akhgari
fe67aae17b 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
Josh Matthews
5cb0162f45 Bug 865257 - Implement MediaStreamAudioDestinationNode. r=ehsan,roc 2013-05-21 15:17:47 -04:00
Mike Habicher
572d8a584b Bug 879478 - fix regressions when starting camera (crash and de-virtualized functions -- see also bug 880780), r=roc 2013-06-10 15:01:19 -04:00
Robert O'Callahan
6569fc1a08 Bug 868405. Support 'enabled' attribute on MediaStreamTrack. r=jesup
--HG--
extra : rebase_source : ec29ae2e45979baaf1b6a085549755ba86cadd40
2013-05-30 16:44:43 +12:00
Ehsan Akhgari
4d8cc1f041 Bug 873553 - Part 2: Teach each AudioNodeStream about its sampling rate, and store the value inside AudioContext; r=roc
--HG--
extra : rebase_source : beed6a6f965acdff307b7d4861d5f336c224d498
2013-05-24 13:09:29 -04:00
Ehsan Akhgari
8d5f66955c Bug 836599 - Part 8: Add a non-realtime media graph API to produce a given number of ticks; r=roc 2013-05-16 19:30:41 -04:00
Ehsan Akhgari
9d8f56046a Bug 836599 - Part 7: Implement a non-realtime API in MediaStreamGraph; r=roc 2013-05-08 07:44:07 -04:00
Robert O'Callahan
829a481dde Bug 866514. Part 1: Add DOMMediaStream::OnTracksAvailableCallback. r=jesup
--HG--
extra : rebase_source : 8d8da0bc2a55fa14f837cb85f35236ca33d2437d
2013-05-03 17:02:55 +12:00