Matthew Gregan
358b7e64f0
Bug 942657 - Devirtualize AudioStream. r=doublec,gps
2013-11-28 18:09:08 +13:00
Benjamin Peterson
168ae22e9f
backout dc9ebdf27e98 (bug 942657) for bustage
2013-11-28 20:50:16 -06:00
Matthew Gregan
647694fec9
Bug 942657 - Devirtualize AudioStream. r=doublec,gps
2013-11-28 18:09:08 +13:00
Ehsan Akhgari
2f9d8a7309
Bug 939582 - Part 1: Rework the NSPR logging in content/media to use different macro names for different logs; r=doublec
2013-11-20 22:02:42 -05:00
Ehsan Akhgari
e7936b0d93
Backed out 2 changesets (bug 939582) because of build bustage
...
Backed out changeset 2079c828645a (bug 939582)
Backed out changeset af472e590088 (bug 939582)
2013-11-20 21:41:40 -05:00
Ehsan Akhgari
3c5450530e
Bug 939582 - Part 1: Rework the NSPR logging in content/media to use different macro names for different logs; r=doublec
2013-11-20 21:11:54 -05:00
Chris Double
cf4ed28111
Bug 939655 - Remove LOG macro definition from MediaStreamGraphImpl.h - r=roc
...
Removing this reduces opportunity for macro name clashes and using
the wrong log object if this header file is included out of order
in a .cpp file.
--HG--
rename : browser/themes/linux/Toolbar-inverted.png => browser/themes/windows/Toolbar-inverted.png
extra : rebase_source : 053384512e0f3a70d07ebe9ca0a07dc0f39d9b5b
2013-11-19 00:48:04 +13:00
Randell Jesup
ee8e35ca44
Bug 920325: Add WebRTC latency logging from capture to RTP and from RTP to speakers r=padenot
2013-10-25 18:13:42 -04:00
Randell Jesup
345ac3892d
backout 5f38b1bd3358 for bustage CLOSED TREE
2013-10-25 19:25:54 -04:00
Randell Jesup
2e3491f74c
Bug 920325: Add WebRTC latency logging from capture to RTP and from RTP to speakers r=padenot
2013-10-25 18:13:42 -04:00
Karl Tomlinson
5ffa06990a
b=926619 check for non-AudioNodeStreams in MediaStream cycles r=padenot
...
--HG--
extra : transplant_source : %2B%F4%EEG%BD%17%2A/%B7%80%F6%22%04%9F%F4E%1FD%F0%A5
2013-10-25 14:05:41 +13:00
Karl Tomlinson
68a062c577
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
a6013a6638
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
Karl Tomlinson
ddaab5d1c5
b=914016 always dispatch main thread updates after non-realtime graph finishes r=padenot
...
--HG--
extra : transplant_source : %0B%0C%93%05k%3F%3A%AEfT9%C9u%8D%C5pa%9F%11%0D
2013-10-24 07:21:33 +13:00
Paul Adenot
2ecd0a5c7e
Bug 907817 - Allow AudioStream users to pass-in latency requirements. r=kinetik
...
--HG--
extra : rebase_source : 3cf1971913b3cfd8000c58614b0d0be8b7805af0
2013-10-17 15:44:52 +02:00
Robert O'Callahan
e2de87eee6
Bug 922601. Use StreamTimeToGraphTime to get the correct conversion to graph time. r=padenot
...
--HG--
extra : rebase_source : 148da9b3fdc1cd6fb12489ad20d724218fcd75d1
2013-10-01 22:28:49 -04:00
Nicolas Silva
8605f47406
Bug 922202 - Make PlanarYCbCrImage::Data forward-declarable and remove some header includes. r=bjacob
2013-10-01 17:57:50 -07:00
Randell Jesup
f6a1a85cec
Bug 917491: Guarantee cleanup of AsyncLatencyLogger on xpcom-shutdown r=bsmedberg
2013-09-24 22:10:24 -04:00
Paul Adenot
b4ee1e68de
Bug 881959 - Handle self-connection. r=ehsan
...
--HG--
extra : rebase_source : f2d4a0a28cb85668f80c58d1a56926f65ea40e72
2013-09-16 17:37:27 +02:00
Ehsan Akhgari
fae6b888e6
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
Paul Adenot
7c95321d67
Bug 881959 - Mute WebAudio nodes that are part of a cycle that contains no DelayNode, and make cycles work. r=ehsan
...
--HG--
extra : rebase_source : d4bc378128cf15f8d8395b45b4443ca6b06c5bd2
2013-08-26 19:19:36 +02:00
Ed Morley
6a8bde5bc5
Backed out changeset fb89f2090779 (bug 881959)
2013-09-17 17:14:55 +01:00
Ed Morley
f2619af990
Backed out changeset fe576415129e (bug 881959)
2013-09-17 17:14:52 +01:00
Ed Morley
845ddef04c
Backed out changeset 5e5d5e42f6c2 (bug 881959)
2013-09-17 17:14:49 +01:00
Ed Morley
b566ba4f8e
Backed out changeset ade49a801461 (bug 881959)
2013-09-17 17:14:36 +01:00
Ed Morley
8ff05e11a4
Backed out changeset 924b0619e616 (bug 881959)
2013-09-17 17:14:29 +01:00
Paul Adenot
136940c8bc
Bug 881959 - Fix inbound bustage on XP.
2013-09-17 16:25:13 +02:00
Paul Adenot
d4d8b9bcb9
Bug 881959 - Handle self-connection. r=ehsan
...
--HG--
extra : rebase_source : 02ef02b921df39dcb647096a10a1fa4e85161c70
2013-09-16 17:37:27 +02:00
Paul Adenot
d6d78f2064
Bug 881959 - Warn the author when a cycle in a WebAudio graph does not contain a DelayNode. r=ehsan
...
--HG--
extra : rebase_source : 9383abcce03d0f70208983c22eef051b84560f08
2013-09-13 18:13:37 +02:00
Ehsan Akhgari
e5c162769f
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
Paul Adenot
f4a229fbf9
Bug 881959 - Mute WebAudio nodes that are part of a cycle that contains no DelayNode, and make cycles work. r=ehsan
...
--HG--
extra : rebase_source : a92e90a2fb08f784d3a1b7d0701a5dd20595c4ef
2013-08-26 19:19:36 +02:00
Paul Adenot
7a97c91578
Bug 904617: Part 3 - Log latency, and adds a python script to understand the log r=padenot,jesup,ehugg
2013-01-28 19:22:37 +01:00
Ed Morley
504f2b3fae
Backed out changeset 81cee5ae7973 (bug 904617)
2013-09-16 08:43:47 +01:00
Paul Adenot
ea33beeb7a
Bug 904617: Part 3 - Log latency, and adds a python script to understand the log r=padenot,jesup
2013-01-28 19:22:37 +01:00
Karl Tomlinson
7a48a1f657
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
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
Randell Jesup
31b3d54567
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
be6c9d6c51
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
c0dd7b1862
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
58feac255e
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
1d408c2924
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
0d79f2baf9
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
Robert O'Callahan
3f1bcdc18d
Bug 856361. Part 6: Make MediaStreamAudioSourceNode keep its DOMMediaStream alive, and make the DOMMediaStream keep the MediaStreamAudioSourceNode alive. r=ehsan
...
--HG--
extra : rebase_source : 0e3b5108d8ced8b1f1f427c9fd4f87e97c46921d
2013-07-25 14:07:34 +12:00
secretrobotron
4535b91abc
Bug 856361. Part 5: Implement MediaStreamAudioSourceNode. r=ehsan
...
--HG--
extra : rebase_source : 265f31edda31a2f749eacc568919304622446748
2013-07-24 23:29:39 +12:00
Robert O'Callahan
107806bd3b
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
4108f3f1ec
Bug 878015. Make RoundUpToAudioBlock always advance to the next audio block. r=padenot
...
--HG--
extra : rebase_source : d931a0f144579bd7f7f57bd9e2c7d4ecc1700b27
2013-08-02 21:27:58 +12:00
Paul Adenot
c1209fd32c
Bug 882543 - Use a linked list for ordering stream instead of an array. r=ehsan
2013-07-19 16:40:58 +02:00
Paul Adenot
8978ed9178
Bug 882543 - Register the MSG thread for in the profiler. r=benwa
2013-07-19 16:40:57 +02:00
Paul Adenot
3f5580c2da
Bug 882543 - Don't spam the main thread when rendering an offline graph. r=ehsan,roc
2013-07-19 16:40:57 +02:00
Paul Adenot
3a1bbd5d18
Bug 882543 - Actually run offline MSG offline. r=roc
2013-07-19 16:40:57 +02:00
Paul Adenot
77d11314c9
Bug 882543 - Retain storage for media streams accross iterations instead of reallocating. r=jlebar,roc
2013-07-19 16:40:56 +02:00
Robert O'Callahan
56ffa35ac0
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
Justin Lebar
6c46d0633d
Bug 820686 - Remove code after MOZ_CRASH or MOZ_ASSUME_NOT_REACHED. r=(see below)
...
r=tbsaunde for accessible
r=jmuizelaar for gfx
r=waldo for js
r=roc for layout
r=glandium for mozglue
r=jduell for netwerk
r=khuey for everything else
2013-06-28 18:38:32 -07:00
Justin Lebar
75c400493b
Bug 802686 - s/MOZ_NOT_REACHED/MOZ_CRASH/ in Gecko. r=(see below)
...
r=tbsaunde for accessible
r=jmuizelaar for gfx
r=roc for layout
r=glandium for mozglue
r=jduell for netwerk
r=khuey for everything else
This is a mechanical change made with sed. Later patches in this queue
clean up the whitespace errors and so on.
2013-06-28 18:38:30 -07:00
Paul Adenot
6ee09460b3
Bug 884459 - Do not check mCurrentTaskMessageQueue's emptiness needlessly; r=ehsan
2013-06-21 22:07:39 +02:00
Ehsan Akhgari
59b2836b47
Bug 883011 - Optimize PrepareUpdatesToMainThread to avoid re-allocating memory as much as possible; r=roc
2013-06-18 23:10:04 -04: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
Ehsan Akhgari
2597f4b33d
Backed out changeset 07708c9fc5ef (bug 883010) because of test failures
...
Landed on a CLOSED TREE
2013-06-17 13:13:08 -04:00
Ehsan Akhgari
80d5ef963a
Bug 883010 - Part 1: Optimize MediaStreamGraphImpl::UpdateStreamOrder in order to optimize away how much time we spend on it in every iteration of the MSG; r=roc
...
--HG--
extra : rebase_source : 4af5f42054407ad42ebe1752e01178d454c865ed
2013-06-17 11:29:47 -04:00
Ehsan Akhgari
6b0129c018
Bug 883010 - Part 2: Don't bombard the main thread with MSG update messages which are not going to result in any actual work; r=roc
2013-06-17 09:06:34 -04:00
Josh Matthews
9ea183ce8d
Bug 865257 - Implement MediaStreamAudioDestinationNode. r=ehsan,roc
2013-05-21 15:17:47 -04:00
Mike Habicher
a4ff9b75f8
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
Ehsan Akhgari
6f0d7033ca
Bug 876273 - Only attempt to delete the media graph when the last stream goes away if we're waiting for all streams to be destroyed; r=roc
2013-05-30 20:53:51 -04:00
Robert O'Callahan
cc51ef48ef
Bug 868405. Support 'enabled' attribute on MediaStreamTrack. r=jesup
...
--HG--
extra : rebase_source : ec29ae2e45979baaf1b6a085549755ba86cadd40
2013-05-30 16:44:43 +12:00
Ehsan Akhgari
de94a9e96b
Bug 875221 - Make sure to balance the creation and destruction of streams for media graphs; r=roc
2013-05-29 11:38:39 -04:00
Ehsan Akhgari
ac9c045ad1
Bug 875402 - Delete MediaInputPort objects using normal refcounting semantics; r=roc
2013-05-25 10:01:08 -04:00
Ehsan Akhgari
3f01774938
Bug 875911 - Clean up OfflineAudioContexts which have never been rendered; r=roc
2013-05-25 09:59:59 -04:00
Ehsan Akhgari
d418ca71a3
Backed out changeset dc96b4762676 (bug 875402) because of crashtest leaks
2013-05-24 15:28:28 -04:00
Ehsan Akhgari
22b9d20d59
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
b70a070b62
Bug 875402 - Do the work for initializing a MediaInputPort even if the message is handled during graph shutdown; r=roc
2013-05-24 12:53:41 -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
Ehsan Akhgari
a8cb458faf
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
Randell Jesup
cd37853e8c
Bug 870002: move data-processing debugs in MSG to level 5 to allow granular logging r=roc
2013-05-09 02:05:03 -04:00
Ehsan Akhgari
9cb96b3472
Bug 836599 - Part 7: Implement a non-realtime API in MediaStreamGraph; r=roc
2013-05-08 07:44:07 -04:00
Robert O'Callahan
ae6ba16f63
Bug 868406. Shut down MediaStreamGraph's thread. r=jesup
...
--HG--
extra : rebase_source : 0d5801b271d1658dba172cb5b156186052651990
2013-05-07 22:16:35 -07:00
Robert O'Callahan
9faaae5b1a
Bug 866514. Part 1: Add DOMMediaStream::OnTracksAvailableCallback. r=jesup
...
--HG--
extra : rebase_source : 8d8da0bc2a55fa14f837cb85f35236ca33d2437d
2013-05-03 17:02:55 +12:00
Ehsan Akhgari
14aa167f4e
Bug 865247 - Part 1: Give MediaInputPort the notion of an input and output port number; r=roc
2013-05-05 11:47:36 -04:00
Ms2ger
c74b574718
Backout changesets f309dacf4010:be3cef4b69e3 for thread safety assertions on Windows and test failures on OSX.
2013-05-05 11:51:47 +02:00
Robert O'Callahan
354566db70
Bug 868406. Shut down MediaStreamGraph's thread. r=jesup
2013-05-05 18:20:11 +12:00
Robert O'Callahan
9fcec03506
Bug 866514. Part 1: Add DOMMediaStream::OnTracksAvailableCallback. r=jesup
2013-05-03 17:02:55 +12:00
Ehsan Akhgari
1cff2c39cc
Bug 866434 - Part 2: Give each AudioParam that is connected to an AudioNode an AudioNodeStream; r=roc
...
These MediaStreams are used as a way to down-mix the input AudioChunks, and
also as a way to get proper stream processing ordering. The MediaStream for
the source AudioNode is an input to these streams, and these streams in turn
are inputs to the MediaStream that the AudioNode that owns the AudioParam owns.
This way, the Media Streams Graph processing code will order the streams so
that by the time that the MediaStream for a given node is processed, all of the
MediaStreams belonging to the AudioNode(s) feeding into the AudioParam have
been processed.
This has a tricky side-effect that those streams also being considered when
determining the input block for the AudioNodeStream belonging to the
AudioParam's owner AudioNode. In order to fix that, we simply special case
those streams and make AudioNodeStream::ObtainInputBlock ignore them.
2013-05-01 21:02:31 -04:00
Ehsan Akhgari
6b4953320e
Bug 865234 - Part 2: Send the channel mixing information to the AudioNodeStream; r=roc
2013-04-27 19:25:23 -04:00
Ehsan Akhgari
412d5ef7d7
Bug 864709 - Part 1: Hold a strong reference to the AudioNodeStream before calling ProduceOutput on it; r=padenot
2013-04-24 11:52:16 -04:00
Ehsan Akhgari
e6ef206ecb
Bug 834513 - Part 3: Implement ScriptProcessorNode; r=roc
2013-04-13 21:37:04 -04:00
Randell Jesup
a15d1c6211
Bug 845741: Set mUpdateFinished under lock r=roc
2013-04-08 08:03:33 -04:00
Robert O'Callahan
2d9ba0737e
Bug 850587. Part 2: Make NotifyHasCurrentData fire when a stream would be able to produce data if it was not blocked. r=jesup
...
Also removes NotifyHasCurrentData's boolean parameter; we just fire this
once and treat a stream that has once had current data as always
having current data (since we block a stream that would advance
beyond its available data).
2013-03-21 00:19:39 +13:00
Ehsan Akhgari
c704fae974
Bug 851966 - Only store the produced AudioChunks for AudioNodeStreams that will result in playback; r=roc
2013-03-17 20:37:47 -04:00
Randell Jesup
8161849c3d
Bug 839650: Add debugs to MediaStreamGraph to ease investigation of issues in the future r=roc
2013-03-07 03:53:45 -05:00
Ed Morley
b360848aef
Backed out changeset be1ee54becf4 (bug 839650) for build failures
2013-03-07 09:10:47 +00:00
Randell Jesup
07aff4ee8e
Bug 839650: Add debugs to MediaStreamGraph to ease investigation of issues in the future r=roc
2013-03-07 03:53:45 -05:00
Randell Jesup
748cbd01e5
Bug 846103: Make MediaStream::RemoveListener() callable on Destroy()ed streams r=roc
2013-02-28 14:53:38 -05:00
Robert O'Callahan
d96eb1e910
Bug 843214. Make SourceMediaStream::AddTrack/AppendToTrack/HaveEnoughBuffered/DispatchWhenNotEnoughBuffered/EndTrack smoothly handle cases where track does not exist. r=jesup
2013-02-25 22:25:07 +13:00
Ed Morley
94361edb30
Backed out changeset dba7a059ed22 (bug 843214)
2013-02-27 12:49:26 +00:00
Robert O'Callahan
4dd110ae0a
Bug 843214. Make SourceMediaStream::AddTrack/AppendToTrack/HaveEnoughBuffered/DispatchWhenNotEnoughBuffered/EndTrack smoothly handle cases where track does not exist. r=jesup
...
--HG--
extra : rebase_source : adcfa0e92b5e498c597e16e013fdcba2dae4b8e5
2013-02-25 22:25:07 +13:00
Robert O'Callahan
ca6fcfb8f3
Bug 837034. Part 1: Rename nsDOM(Local)MediaStream to DOM(Local)MediaStream and put them in the mozilla namespace. r=jesup
...
--HG--
rename : content/media/nsDOMMediaStream.cpp => content/media/DOMMediaStream.cpp
rename : content/media/nsDOMMediaStream.h => content/media/DOMMediaStream.h
extra : rebase_source : 6fd3f71779b4ecb9d3b053b6cd844c2ff0c25f80
2013-02-15 21:01:58 +13:00
Ehsan Akhgari
b5d92eaf5e
Bug 836599 - Part 6: Make MediaStreamGraphImpl::AppendMessage not assume that it's the only graph; r=roc
2013-02-04 12:29:14 -05:00
Ehsan Akhgari
661babfc7c
Bug 836599 - Part 5: Make MediaStreamGraphImpl::RunInStableState not assume that it's the only graph; r=roc
2013-02-04 12:27:54 -05:00
Ehsan Akhgari
11dc6d17d3
Bug 836599 - Part 4: Make MediaStreamGraphStableStateRunnable know about its owner graph; r=roc
2013-02-01 15:20:32 -05:00
Ehsan Akhgari
9de9f6ffbe
Bug 836599 - Part 3: Make MediaStreamGraphThreadRunnable know about its owner graph; r=roc
2013-02-01 15:13:32 -05:00
Ehsan Akhgari
2d219bdba7
Bug 836599 - Part 2: Make MediaInputPort aware of its owner graph; r=roc
...
We need to make sure that MediaStream doesn't assume that it belongs
to the global graph so that we can have multiple graphs coexisting.
2013-02-01 14:49:58 -05:00
Ehsan Akhgari
8a790ac960
Bug 836599 - Part 1: Make MediaStream aware of its owner graph; r=roc
...
We need to make sure that MediaStream doesn't assume that it belongs
to the global graph so that we can have multiple graphs coexisting.
2013-02-01 14:43:36 -05:00
Robert O'Callahan
f76919f8a0
Bug 804387. Part 8: Create AudioNodeEngine and AudioNodeStream. r=jesup
...
Modifies MediaStreamGraph to always advance its time by a multiple of
WEBAUDIO_BLOCK_SIZE.
--HG--
extra : rebase_source : 99524b09edd4ac0e1bc6607f2ba14925bc2f11c2
2013-01-14 11:46:57 +13:00
Robert O'Callahan
edc4fc64a2
Bug 804387. Part 7: Use a static_cast instead of dynamic check when processing ProcessedMediaStream message. r=jesup
...
--HG--
extra : rebase_source : 3eb9264b706e19ac19ebf2377a33871be4cbe981
2013-02-04 23:04:26 +13:00
Robert O'Callahan
32ddb352da
Bug 804387. Part 5: Add MediaStream::GraphTimeToStreamTimeOptimistic and MediaStream::StreamTimeToGraphTime. r=jesup
...
--HG--
rename : content/media/MediaStreamGraph.cpp => content/media/MediaStreamGraphImpl.h
extra : rebase_source : 0e08f9bb0c544b44ab4953a0f00cae233cd488c7
2013-02-04 23:04:26 +13:00
Robert O'Callahan
a83ff07d2b
Bug 804387. Part 4: Move MediaStreamGraphImpl to its own header file. r=jesup
...
--HG--
rename : content/media/MediaStreamGraph.cpp => content/media/MediaStreamGraphImpl.h
extra : rebase_source : 3413667aa3a11c634f703db4031e3c2b0b1e018e
2013-02-04 23:04:25 +13:00
Robert O'Callahan
2785a28dd0
Bug 804387. Part 3: When a global underrun happens, don't insert blocked time, just cut that time out of the entire MediaStreamGraph timeline instead. r=jesup
...
--HG--
extra : rebase_source : 94f166e66f5401130b27867dd2b5ca039c704f14
2013-02-04 23:04:25 +13:00
Robert O'Callahan
96c21b198b
Bug 804387. Part 1: Make AllocateInputPort addref the returned port. r=jesup
...
--HG--
extra : rebase_source : a0e4d7889598577a540f132f4190225ecf12fdfb
2012-11-23 11:25:05 +13:00
Ehsan Akhgari
631b308649
Backed out 14 changesets (bug 804387) because of Android M2 crashes
...
Backed out changeset 80e8530f06ea (bug 804387)
Backed out changeset 3de2271ad47f (bug 804387)
Backed out changeset 00f86870931c (bug 804837)
Backed out changeset 0e3f20927c50 (bug 804387)
Backed out changeset e6ef90038007 (bug 804387)
Backed out changeset 0ad6f67a95f9 (bug 804387)
Backed out changeset d0772aba503c (bug 804387)
Backed out changeset 5477b87ff03e (bug 804387)
Backed out changeset 1d7ec5adc49f (bug 804387)
Backed out changeset 11f4d740cd6c (bug 804387)
Backed out changeset e6254d8997ab (bug 804387)
Backed out changeset 372322f3264d (bug 804387)
Backed out changeset 53d5ed687612 (bug 804387)
Backed out changeset 000b88ac40a7 (bug 804387)
2013-02-05 01:29:28 -05:00
Robert O'Callahan
f4306b8a20
Bug 804387. Part 8: Create AudioNodeEngine and AudioNodeStream. r=jesup
...
Modifies MediaStreamGraph to always advance its time by a multiple of
WEBAUDIO_BLOCK_SIZE.
2013-01-14 11:46:57 +13:00
Robert O'Callahan
6a9acef289
Bug 804387. Part 7: Use a static_cast instead of dynamic check when processing ProcessedMediaStream message. r=jesup
2013-02-04 23:04:26 +13:00
Robert O'Callahan
05be93cc6b
Bug 804387. Part 5: Add MediaStream::GraphTimeToStreamTimeOptimistic and MediaStream::StreamTimeToGraphTime. r=jesup
2013-02-04 23:04:26 +13:00
Robert O'Callahan
be9e936592
Bug 804387. Part 4: Move MediaStreamGraphImpl to its own header file. r=jesup
...
--HG--
rename : content/media/MediaStreamGraph.cpp => content/media/MediaStreamGraphImpl.h
2013-02-04 23:04:25 +13:00
Robert O'Callahan
5350b6e757
Bug 804387. Part 3: When a global underrun happens, don't insert blocked time, just cut that time out of the entire MediaStreamGraph timeline instead. r=jesup
2013-02-04 23:04:25 +13:00
Robert O'Callahan
11a2cb4a33
Bug 804387. Part 1: Make AllocateInputPort addref the returned port. r=jesup
2012-11-23 11:25:05 +13:00
Robert O'Callahan
0cc85c72c1
Bug 830707. Part 3: Don't constrain AudioSegment to a fixed number of channels. r=jesup
...
--HG--
extra : rebase_source : feacede00821b6673ce04c886a9c3727a4989404
2013-01-21 09:44:44 +13:00
Mats Palmgren
6c53161814
Bug 786533 - Replace NS_MIN/NS_MAX with std::min/std::max and #include <algorithm> where needed. r=ehsan
2013-01-15 13:22:03 +01:00
Randell Jesup
307173aba3
Bug 827007: Implement Stop for UserMediaStreams; add NotifyRemoved for MediaStream listeners r=roc
2013-01-06 21:31:30 -05:00
Robert O'Callahan
6cd2aebe3a
Bug 814718. Explicitly store the blocking state that we last delivered to MediaStreamListeners. r=jesup
2013-01-02 14:49:18 +01:00
Ms2ger
020367e2ed
Backout bug 814718, bug 717178 for exceptions in test_text.html on Windows.
2013-01-01 13:34:34 +01:00
Robert O'Callahan
a4f7d11c72
Bug 814718. Explicitly store the blocking state that we last delivered to MediaStreamListeners. r=jesup
2013-01-01 16:45:43 +13:00
Robert O'Callahan
6b30f6daf1
Bug 816664. Don't call NotifyPull if we already have all the data buffered in the stream that we need. r=jesup
2012-12-08 00:06:55 +13:00
Mike Habicher
75b988e04a
Bug 813190 - Stop media streams from hanging onto the last played media frame indefinitely. r=roc
2012-11-20 20:32:06 -05:00
Marco Chen
88788c1c05
Bug 795237 - Web API for setting audio stream type. Part 2. r=kinetik, a=blocking-basecamp
...
Implementation on path of audio and video element
2012-11-16 11:25:26 +08:00
Chris Pearce
9abb830db0
Bug 811381 - Remove ns prefix from media code. r=roc
...
--HG--
rename : content/media/nsAudioAvailableEventManager.cpp => content/media/AudioAvailableEventManager.cpp
rename : content/media/nsAudioAvailableEventManager.h => content/media/AudioAvailableEventManager.h
rename : content/media/nsAudioStream.cpp => content/media/AudioStream.cpp
rename : content/media/nsAudioStream.h => content/media/AudioStream.h
rename : content/media/nsMediaCache.cpp => content/media/MediaCache.cpp
rename : content/media/nsMediaCache.h => content/media/MediaCache.h
rename : content/media/nsBuiltinDecoder.cpp => content/media/MediaDecoder.cpp
rename : content/media/nsBuiltinDecoder.h => content/media/MediaDecoder.h
rename : content/media/nsBuiltinDecoderReader.cpp => content/media/MediaDecoderReader.cpp
rename : content/media/nsBuiltinDecoderReader.h => content/media/MediaDecoderReader.h
rename : content/media/nsBuiltinDecoderStateMachine.cpp => content/media/MediaDecoderStateMachine.cpp
rename : content/media/nsBuiltinDecoderStateMachine.h => content/media/MediaDecoderStateMachine.h
rename : content/media/dash/nsDASHDecoder.cpp => content/media/dash/DASHDecoder.cpp
rename : content/media/dash/nsDASHDecoder.h => content/media/dash/DASHDecoder.h
rename : content/media/dash/nsDASHReader.cpp => content/media/dash/DASHReader.cpp
rename : content/media/dash/nsDASHReader.h => content/media/dash/DASHReader.h
rename : content/media/dash/nsDASHRepDecoder.cpp => content/media/dash/DASHRepDecoder.cpp
rename : content/media/dash/nsDASHRepDecoder.h => content/media/dash/DASHRepDecoder.h
rename : content/media/gstreamer/nsGStreamerDecoder.cpp => content/media/gstreamer/GStreamerDecoder.cpp
rename : content/media/gstreamer/nsGStreamerDecoder.h => content/media/gstreamer/GStreamerDecoder.h
rename : content/media/gstreamer/nsGStreamerReader.cpp => content/media/gstreamer/GStreamerReader.cpp
rename : content/media/gstreamer/nsGStreamerReader.h => content/media/gstreamer/GStreamerReader.h
rename : content/media/ogg/nsOggCodecState.cpp => content/media/ogg/OggCodecState.cpp
rename : content/media/ogg/nsOggCodecState.h => content/media/ogg/OggCodecState.h
rename : content/media/ogg/nsOggDecoder.cpp => content/media/ogg/OggDecoder.cpp
rename : content/media/ogg/nsOggDecoder.h => content/media/ogg/OggDecoder.h
rename : content/media/ogg/nsOggReader.cpp => content/media/ogg/OggReader.cpp
rename : content/media/ogg/nsOggReader.h => content/media/ogg/OggReader.h
rename : content/media/omx/nsMediaOmxDecoder.cpp => content/media/omx/MediaOmxDecoder.cpp
rename : content/media/omx/nsMediaOmxDecoder.h => content/media/omx/MediaOmxDecoder.h
rename : content/media/omx/nsMediaOmxReader.cpp => content/media/omx/MediaOmxReader.cpp
rename : content/media/omx/nsMediaOmxReader.h => content/media/omx/MediaOmxReader.h
rename : content/media/plugins/nsMediaPluginDecoder.cpp => content/media/plugins/MediaPluginDecoder.cpp
rename : content/media/plugins/nsMediaPluginDecoder.h => content/media/plugins/MediaPluginDecoder.h
rename : content/media/plugins/nsMediaPluginHost.cpp => content/media/plugins/MediaPluginHost.cpp
rename : content/media/plugins/nsMediaPluginHost.h => content/media/plugins/MediaPluginHost.h
rename : content/media/plugins/nsMediaPluginReader.cpp => content/media/plugins/MediaPluginReader.cpp
rename : content/media/plugins/nsMediaPluginReader.h => content/media/plugins/MediaPluginReader.h
rename : content/media/raw/nsRawDecoder.cpp => content/media/raw/RawDecoder.cpp
rename : content/media/raw/nsRawDecoder.h => content/media/raw/RawDecoder.h
rename : content/media/raw/nsRawReader.cpp => content/media/raw/RawReader.cpp
rename : content/media/raw/nsRawReader.h => content/media/raw/RawReader.h
rename : content/media/raw/nsRawStructs.h => content/media/raw/RawStructs.h
rename : content/media/wave/nsWaveDecoder.cpp => content/media/wave/WaveDecoder.cpp
rename : content/media/wave/nsWaveDecoder.h => content/media/wave/WaveDecoder.h
rename : content/media/wave/nsWaveReader.cpp => content/media/wave/WaveReader.cpp
rename : content/media/wave/nsWaveReader.h => content/media/wave/WaveReader.h
rename : content/media/webm/nsWebMBufferedParser.cpp => content/media/webm/WebMBufferedParser.cpp
rename : content/media/webm/nsWebMBufferedParser.h => content/media/webm/WebMBufferedParser.h
rename : content/media/webm/nsWebMDecoder.cpp => content/media/webm/WebMDecoder.cpp
rename : content/media/webm/nsWebMDecoder.h => content/media/webm/WebMDecoder.h
rename : content/media/webm/nsWebMReader.cpp => content/media/webm/WebMReader.cpp
rename : content/media/webm/nsWebMReader.h => content/media/webm/WebMReader.h
2012-11-14 11:46:40 -08:00
Robert O'Callahan
8fe699d05c
Bug 805703. Part 1: MediaStreamGraph::CreateInputStream -> CreateSourceStream. r=jesup
...
--HG--
extra : rebase_source : 3c327e9ead92508f12df4b95f2fd24fa2ba97ab5
2012-10-29 17:36:31 +13:00
Robert O'Callahan
91a7abe566
Bug 805721. Recursively mark streams as consumed starting at the consumption point and working backwards through the graph. r=jesup
...
--HG--
extra : rebase_source : ba2f2fd4755336bc429ba85cd7296c31fef8aabf
2012-10-29 17:34:17 +13:00
Robert O'Callahan
c14b6532cb
Bug 805771. Don't call NotifyPull after a stream has finished. r=jesup
2012-10-26 13:11:50 -04:00
Robert O'Callahan
77fe33f9cb
Bug 790854. Keep MediaStream alive until MediaStream::Destroy ends. r=jesup
2012-10-26 14:39:05 +13:00
Robert O'Callahan
a01b0389bf
Backout 15c4d6334107 (bug 790854) for test failures
2012-10-26 12:08:38 +13:00
Robert O'Callahan
553c22e6e6
Bug 790854. Set mMainThreadDestroyed before the stream is destroyed. r=jesup
...
--HG--
extra : rebase_source : 6b1d2a64b9af082b02a207759f051cb6d7975e35
2012-10-26 11:07:59 +13:00
Randell Jesup
b7a4ba499c
Bug 803976: Implementation of LocalMediaStreams for .stop() r=roc,anant
2012-10-24 19:21:32 -04:00
Ehsan Akhgari
cab6e9af53
Backed out changeset 165208ecd591 (bug 803976)
2012-10-24 20:29:32 -04:00
Randell Jesup
8865bcac96
Bug 803976: Implementation of LocalMediaStreams for .stop() r=roc,anant
2012-10-24 19:21:32 -04:00
Randell Jesup
7da277fcff
Bug 801293 - Remove printf() from MediaStreamGraphImpl. r=roc
2012-10-13 10:46:18 -04:00
Robert O'Callahan
402b08d6f4
Bug 778682. Part 1: Add NotifyHasCurrentData callback on StreamListener. r=jesup
...
--HG--
extra : rebase_source : a56fe8ba36639da7638eb590bd9a7a7e65efae95
2012-09-20 12:47:51 +12:00
Robert O'Callahan
75521936c0
Bug 784829. Initialize mIsConsumed at the start of every pass to determine what's consumed. r=jesup
...
Also, might as well set mIsConsumed on every stream.
2012-08-29 23:20:45 +12:00
Robert O'Callahan
e70e7093ce
Bug 779715. Part 8: Make it safe to call MediaInputPort::Destroy after streams at both ends of the port have been destroyed. r=jesup
...
We had problems because we'd call Destroy on a port after calling Destroy on
its streams. This patch makes the port's Destroy ControlMessage not use a stream,
instead we get the stream from the port directly. It also makes us update the
graph's mPortCount only when the port is finally destroyed; this fixes a potential
bug where the current graph could shut down when all streams are removed, before
all ports have been completely destroyed.
--HG--
extra : rebase_source : 3245fa64b79fb8a75c17190f1a4a2af6d42a5012
2012-08-24 00:46:20 +12:00
Ehsan Akhgari
0fd9123eac
Bug 579517 - Part 1: Automated conversion of NSPR numeric types to stdint types in Gecko; r=bsmedberg
...
This patch was generated by a script. Here's the source of the script for
future reference:
function convert() {
echo "Converting $1 to $2..."
find . ! -wholename "*nsprpub*" \
! -wholename "*security/nss*" \
! -wholename "*/.hg*" \
! -wholename "obj-ff-dbg*" \
! -name nsXPCOMCID.h \
! -name prtypes.h \
-type f \
\( -iname "*.cpp" \
-o -iname "*.h" \
-o -iname "*.c" \
-o -iname "*.cc" \
-o -iname "*.idl" \
-o -iname "*.ipdl" \
-o -iname "*.ipdlh" \
-o -iname "*.mm" \) | \
xargs -n 1 sed -i -e "s/\b$1\b/$2/g"
}
convert PRInt8 int8_t
convert PRUint8 uint8_t
convert PRInt16 int16_t
convert PRUint16 uint16_t
convert PRInt32 int32_t
convert PRUint32 uint32_t
convert PRInt64 int64_t
convert PRUint64 uint64_t
convert PRIntn int
convert PRUintn unsigned
convert PRSize size_t
convert PROffset32 int32_t
convert PROffset64 int64_t
convert PRPtrdiff ptrdiff_t
convert PRFloat64 double
2012-08-22 11:56:38 -04:00
Paul Adenot
9670c86dc2
Bug 775319 - Determine the sample format at compile time for all media code. r=kinetik
2012-08-16 18:10:36 -07:00
David Zbarsky
fbb04700b6
Bug 784004 - Don't include Layers.h everywhere Part 3 r=nical
2012-08-21 00:06:46 -04:00
Robert O'Callahan
93e5998248
Bug 779715. Part 4: Play all tracks of a media stream with multiple tracks. r=jesup
...
Until now we've identified the "first active track" of a stream and played only that. Instead,
it makes more sense to play all the tracks.
For video, we pick the last track that has a video frame for the current time, and display that.
--HG--
extra : rebase_source : 00ce3eb363df06c292232aa507e861639d10cff2
2012-08-01 00:17:22 +12:00
Robert O'Callahan
93fd59abf0
Bug 779715. Part 3: Add an API to get notifications of changes to the main-thread-visible state of a MediaStream. r=jesup
...
--HG--
extra : rebase_source : 24b7204d219612760b9d159fff5219c1960df51a
2012-08-20 16:20:44 +12:00
Robert O'Callahan
1bb17fbf04
Bug 779715. Part 2: Create TrackUnionStream. r=jesup
...
--HG--
extra : rebase_source : 29038fa1b93dcade3d762537bf510dc0901a9738
2012-08-01 00:17:21 +12:00
Robert O'Callahan
925835b996
Bug 779715. Part 1: Add basic support for ProcessedMediaStreams. r=jesup
...
The main thing this patch does is to add ProcessedMediaStream objects and
MediaInputPorts connecting streams. ProcessedMediaStreams are an abstract
class that doesn't constrain what processing is actually performed, except
that for now we assume a stream's processing depends only on its inputs
window of data between mCurrentTime and mStateComputedTime.
This patch reorganizes the way the blocking status of each stream is computed.
The streams are partitioned into groups so that every stream which can affect
the blocking status of another stream is in the same group as that other stream.
We also add a pass to order the streams by dependency so we can process the streams
in order of dependency; this pass also identifies the streams that form part of a
cycle.
--HG--
extra : rebase_source : c45c931a264e73f295642a934500bbeaa6448774
2012-08-01 00:17:21 +12:00
Chris Double
2e4abce09a
Backed out changeset dcb9299974a0 due to audio issues on android and b2g
...
--HG--
extra : rebase_source : 7e2b937487c3df9a40406eadf250e6596b89664f
2012-08-10 17:30:01 +12:00
Robert O'Callahan
c686385674
Bug 779721. Part 6: Add a flag to track whether the main thread has called Destroy on a stream, and check that flag when sending a message to it. r=jesup
2012-08-09 23:30:09 +12:00
Robert O'Callahan
e768bf4202
Bug 779721. Part 4: Fix lock ordering inversion when running control messages during a forced shutdown. r=jesup
2012-08-01 00:17:22 +12:00
Robert O'Callahan
59bc291b5c
Bug 779721. Part 3: Don't clean up streams on the MediaGraph thread during a forced shutdown. r=jesup
...
This is actually a better fix for bug 774597. We can rely on main thread code to call
Destroy on all the MediaStreams normally. These Destroy calls can be handled even when the
MediaGraph thread has been shut down, since MediaStreamGraphImpl::AppendMessage will
call RunDuringShutdown on the Destroy messages.
2012-08-09 23:29:47 +12:00
Robert O'Callahan
8b8f22d97d
Bug 779721. Part 2: Don't block a stream just because it has no consumers. r=jesup
...
There is actually no reason to do this.
2012-08-01 00:17:21 +12:00
Robert O'Callahan
dbd1d7313b
Bug 779721. Part 1: Simplify MediaStreamGraph's invariants around when messages are processed. r=jesup
...
Rename mBlockingDecisionsMadeUntilTime to mStateComputedTime. The invariant is that
all graph state is known up to mStateComputedTime but not beyond it (except for some
stream contents that may be buffered beyond it).
Get rid of mMessageAffectedTime and all the code around computing "affected times" and "action times".
Instead, all messages take effect at mStateComputedTime.
Get rid of the two-phase execution of messages. Everything can just happen in a single Run() method.
2012-08-01 00:17:21 +12:00
Paul Adenot
0f3392ee19
Bug 775319 - Determine the sample format at compile time for all media code. r=kinetik
...
--HG--
extra : rebase_source : 4e8a2a4544895c9234ccd3992e1cafe82b8cf365
2012-08-07 16:01:02 -07:00
Aryeh Gregor
e806eeab4f
Bug 777292 part 2 - Change all nsnull to nullptr
2012-07-30 17:20:58 +03:00
Robert O'Callahan
c4ac2b7c5f
Bug 771135. Add MediaStreamListener::NotifyPull to give SourceMediaStream generators an easy way to implement pulling data from some source. r=jesup
2012-07-20 12:36:03 -07:00
Robert O'Callahan
0be0d048a2
Bug 774597. Avoid accessing MediaStreamGraphImpl members after the graph object may have been cleaned up by the main thread. r=jesup
...
--HG--
extra : rebase_source : 5f6c34855ad5df629c25d4b11f008b03cf2266ae
2012-07-18 01:02:06 -04:00
Robert O'Callahan
3af104f72b
Bug 752796. More logging. r=jesup
2012-06-22 22:51:04 +12:00
Mounir Lamouri
744531ad99
Back out bug 766007, bug 703241 and bug 752796 due to perma-orange (419f0d1b848b to 8661c74deeb5).
2012-06-22 11:13:32 +02:00
Robert O'Callahan
c23627b32f
Bug 752796. Add a bit more logging. r=jesup
2012-06-22 17:07:41 +12:00
Ehsan Akhgari
7a041e9a4b
Bug 758992 - Make the classes which use the XPCOM nsISupports implementation macros final, to avoid the warning about deleting using a pointer to a base class with virtual functions and no virtual dtor (content parts); r=bzbarsky
...
--HG--
extra : rebase_source : e25a064995914ca4f7b1db16b5725eb440d3e531
2012-06-18 22:30:09 -04:00
Robert O'Callahan
c2b6383f48
Bug 759908. Create MediaStreamListener::NotifyConsumptionChanged. r=jesup
...
--HG--
extra : rebase_source : f9479b836ec92170782eb01ea8b97004b057ceb7
2012-06-01 18:26:17 +12:00
Robert O'Callahan
d57bfcf475
Bug 758583. Must acquire SourceMediaStream lock before MediaStreamGraph lock. r=jesup
2012-05-29 21:10:45 +12:00
Robert O'Callahan
04aca0d190
Bug 752796. Ensure that stream-finished notifications aren't accidentally dropped. r=jesup
2012-05-28 23:58:34 +12:00
Robert O'Callahan
a0ecbc68c1
Bug 750258. Ensure that MediaStreamListener::NotifyBlockingChanged is always called for a new listener, and similar for NotifyFinished called on an already-finished stream. Rely on this to set readyState correctly for media elements consuming a stream. r=jesup,cpearce
2012-05-24 22:37:14 +12:00
Robert O'Callahan
40634d31a8
Bug 753852. Don't try to notify the graph to perform its next iteration if this stream has been removed from the graph. r=jesup
2012-05-23 18:01:15 +12:00
Daniel Holbert
10d3de74a3
Bug 664918 followup: Add missing */ terminator on emacs modeline in header comment for new files nsDOMMediaStream.cpp and MediaStreamGraph.cpp. (no review, comment-only) DONTBUILD
2012-05-11 10:35:36 -07:00
Robert O'Callahan
070d0a8c52
Bug 750258. Small cleanup to make it more obvious why mCurrentTime is initialized to 1. r=jesup
2012-05-10 15:30:34 +12:00
Randell Jesup
c601502ac4
Bug 752784: protect against media not having a track of the required type r=roc
2012-05-09 01:53:49 -04:00
Robert O'Callahan
137a9cf106
Bug 750258. Fix bustage.
2012-05-07 15:57:52 +12:00
Robert O'Callahan
b1c494a351
Bug 750258. Advance mBlockingDecisionsMadeUntilTime to include time lost when the media graph control thread was stopped and all streams had underruns. r=jesup
...
The first part just handles the case where nsAudioStream failed to allocate a stream. It won't be playing
anything, so instead of trying to get the audio position, just fall back to the media graph current time.
Otherwise GetPositionInFrames returns -1 and things go badly from there.
The second part simplifies the calculation of the next mCurrentTime to just make it based on real time.
We had some code to not let it advance past the end of a stream's buffer, but the next part will make that
unnecessary.
The third part is the real fix. When the new current time has advanced past mBlockingDecisionsMadeUntilTime,
that means the control loop didn't run in time to replenish the audio output buffers and keep up with its
other duties. Effectively all streams have been blocked between mBlockingDecisionsMadeUntilTime and
the new current time. Account for that by adding the difference as extra blocked time for every stream.
We only need to ensure that the stream is marked blocked from mBlockingDecisionsMadeUntilTime indefinitely
far into the future, and then update mBlockingDecisionsMadeUntilTime to the new current time, because the
code takes into account that only blocking decisions up to mBlockingDecisionsMadeUntilTime are valid.
2012-05-07 15:44:41 +12:00
Robert O'Callahan
811676c320
Bug 750163. MediaStreamGraphImpl::UpdateBufferSufficiencyState should skip tracks whose creation is pending --- there is no Track object for them yet. r=jesup
2012-04-30 17:23:00 +12:00
Robert O'Callahan
233d852e79
Bug 664918. Part 12: Finish SourceMediaStreams when the media decoder is destroyed, to avoid late low-audio/low-video notifications and issues when multiple decoders write to the same stream. r=cpearce,rjesup
2012-04-30 15:13:42 +12:00
Robert O'Callahan
8470d77f34
Bug 664918. Part 9: Tentative support for MediaStreamListener::NotifyQueuedTrackChanges. r=jesup
2012-04-30 15:12:50 +12:00
Robert O'Callahan
b10f6b9538
Bug 664918. Part 5: Create SourceMediaStream, a MediaStream with an API allowing data to be injected into it by some source. r=jesup
2012-04-30 15:11:40 +12:00
Robert O'Callahan
35ac9fec09
Bug 664918. Part 3: Create MediaStream and MediaGraphManager for internal management of real-time media processing. r=jesup
2012-04-30 15:11:26 +12:00