Commit Graph

4022 Commits

Author SHA1 Message Date
Karl Tomlinson
eef432eb65 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.
2015-08-13 16:13:34 +12:00
Karl Tomlinson
e1a0259288 bug 1197043 move AudioNodeStream creation to stream class r=padenot 2015-08-12 11:26:24 +12:00
Karl Tomlinson
929cc89e5c bug 1197043 introduce MediaStreamGraph::AddStream() r=padenot 2015-08-12 11:46:56 +12:00
Karl Tomlinson
6cd5ece601 bug 1197043 rename Add/RemoveStream to Add/RemoveStreamGraphThread r=padenot 2015-08-12 11:29:35 +12:00
Karl Tomlinson
e4c3b24c5c bug 1197043 remove unnecessary aSampleRate parameter for AudioNodeStream creation r=padenot 2015-08-12 11:04:13 +12:00
Karl Tomlinson
90e01e321b bug 1198100 remove mNotificationMainThreadRunnable r=baku
If AddMainThreadListener() were called multiple times after
mFinishedNotificationSent is set then we'd get some extra NotifyRunnables but
NotifyMainThreadListeners() clears mMainThreadListeners anyway so we still get
only one notification per listener.

mNotificationMainThreadRunnable is an unnecessary optimization, so better not
to add storage to every MediaStream.
2015-08-24 11:54:24 +12:00
Benjamin Chen
ef567f9a1f Bug 762774 - Increase the timeout and reduce the testcase loop times. r=jwwang 2015-08-20 18:05:28 +08:00
JW Wang
f47a4c441b Bug 1196112 - Part 2: Remove DecodedStream::mMonitor. r=roc 2015-08-24 21:05:32 +08:00
JW Wang
1c35dd00db Bug 1196112 - Part 1: Ensure all members except |mShuttingDown| and |mOutputStreamManager| are accessed on the worker thread only. r=roc 2015-08-24 21:05:22 +08:00
Ryan VanderMeulen
5fab0a5ef7 Backed out changesets b2eb913e58c9 and c678e1317fa0 (bug 1196112) for suspicion of causing bug 1197977. 2015-08-24 16:44:14 -04:00
Jean-Yves Avenard
8c3fa84bb5 Bug 1197664: Report the total number of decoded frames. CLOSED TREE r=kentuckyfriedtakahe 2015-08-24 23:46:35 +10:00
Jean-Yves Avenard
ad331ffb64 Bug 1195073: [MSE] P7. Determine a WebM Media Segment end as early as available information permits. r=kinetik
Most cluster contains information about their size. When known, we don't need to wait until the next media segment is received to determine its size.
2015-08-24 23:13:50 +10:00
Jean-Yves Avenard
efa9eb4a99 Bug 1195073: [webm] P6. Calculate cluster's end offset if its size is known in advance. r=kinetik.
This allows to detect the end of a webm media segment without having to wait for the start of a new one.
Also record where an init segment (EBML) starts as this will be required by the WebM ContainerParser.
2015-08-24 23:13:49 +10:00
Jean-Yves Avenard
948ffb0e02 Bug 1195073: [MSE] P5. Detect out of order appends and recreate demuxer. r=gerald
The webm demuxer will only handle data where frames's a monotonically increasing.
2015-08-24 23:13:49 +10:00
Jean-Yves Avenard
aabee8c31a Bug 1195073: [MSE/webm] P4. Limit nestegg reads to the last block's boundaries. r=kinetik
This prevent entering into an unrecoverable error state when parsing incomplete data as often seen with MSE.
2015-08-24 23:13:48 +10:00
Jean-Yves Avenard
f5a3b94e33 Bug 1195073: [webm] P3. Initialize members. r=kinetik 2015-08-24 23:13:48 +10:00
Jean-Yves Avenard
7414edb779 Bug 1195073: [webm] P2. Add WebMBufferedState::GetLastBlockOffset method. r=kinetik
MSE may input partial media segment, which could cause the WebMDemuxer and libnestegg to error upon encountering an incomplete block which can't be recovered from.
this will allow to limit read to known complete blocks.
2015-08-24 23:13:47 +10:00
Jean-Yves Avenard
c225b5af8d Bug 1195073: [MSE/webm] P1. Detect individual webm clusters. r=kinetik
WebMContainerParser was incorrectly reporting webm blocks rather than clusters, causing the webm demuxer to later fail to parse the remaining data.
2015-08-24 23:13:47 +10:00
JW Wang
e9b8009bb0 Bug 1196112. Part 2 - Remove DecodedStream::mMonitor. r=roc. 2015-08-24 21:05:32 +08:00
JW Wang
b97c645e7d Bug 1196112. Part 1 - ensure all members except |mShuttingDown| and |mOutputStreamManager| are accessed on the worker thread only. r=roc. 2015-08-24 21:05:22 +08:00
JW Wang
c3779d12d4 Bug 1194112. Part 6 - add a test case to test the exclusive mode. r=kinetik. 2015-08-24 10:38:42 +08:00
JW Wang
d1c97f787d Bug 1194112. Part 5 - remove dead code. r=kinetik. 2015-08-24 10:38:37 +08:00
JW Wang
060b233cbe Bug 1194112. Part 4 - reimplement Listener/ListenerImpl to support Move. r=kinetik. 2015-08-24 10:38:33 +08:00
JW Wang
08411d1da9 Bug 1194112. Part 3 - use perfect forwarding in MediaEventProducer::Notify() so MediaEventSource can decide whether to copy or move according to its ListenerMode. r=kinetik. 2015-08-24 10:38:28 +08:00
JW Wang
9b91ec3bcf Bug 1194112. Part 2 - small code refactoring to reduce typing. r=kinetik. 2015-08-24 10:38:24 +08:00
JW Wang
74abae5d0a Bug 1194112. Part 1 - extract event dispatch code from ListenerImpl to its own class. r=kinetik. 2015-08-24 10:38:16 +08:00
JW Wang
8c50add939 Bug 1195632. Part 2 - Have DecodedStream listen to push events of the media queues and call SendData() on its own without the help of MDSM. r=roc. 2015-08-24 10:04:21 +08:00
JW Wang
b42dce46e8 Bug 1195632. Part 1 - Let DecodedStream have a worker thread and asset some funtions on the worker thread. r=roc. 2015-08-24 09:55:30 +08:00
Alfredo Yang
aa1341c858 Bug 1197151 - Correct TaskQueue asertion. r=jya 2015-08-23 19:36:00 -04:00
Kelly Davis
273696f653 Bug 1197455 - Call ps_set_search() only after successful grammar compilation. r=anatal 2015-08-22 10:08:00 -04:00
Timothy B. Terriberry
a80d736abe Bug 1196353 - Use standard Xiph extradata format to pass headers from demuxers to decoders. r=jya 2015-08-21 10:17:00 -04:00
Kelly Davis
78f72e4b3f Bug 1193183 - Correctly implement SpeechRecognitionAlternative::confidence using ps_get_prob(). r=anatal 2015-08-11 07:03:00 -04:00
Ehsan Akhgari
f05685cb25 Bug 1197185 - Give NonE10s a virtual destructor; r=jesup
The Parent template class inherits from both NonE10s and PMediaParent,
and the latter has a virtual destructor.  This confuses clang-tidy when
it wants to rewrite ~Parent() which is currently marked as virtual, and
it makes ~Parent() override which breaks the build since ~NonE10s() is
not virtual.  The easiest way to work around this seems to be making
~NonE10s() virtual.  See the discussion in
https://llvm.org/bugs/show_bug.cgi?id=24496 as well.
2015-08-21 17:53:35 -04:00
Alastor Wu
c2936c3691 Bug 1187092 - Refactor the suspend process. r=jwwang 2015-08-19 12:43:25 +08:00
Ryan VanderMeulen
f31d1cba33 Bug 1187903 - Skip various failure-prone EME tests on Windows debug. 2015-08-21 09:41:52 -04:00
Andrea Marchesini
259a723567 Bug 1191814 - WebSpeech synthesis API and AudioChannelService, r=eeejay 2015-08-21 11:58:06 +01:00
Sebastian Hengst
79abdcd746 Backed out changeset 6beb23f39237 (bug 1195073) because other parts of the bug have been backed out. r=backout 2015-08-21 11:31:59 +02:00
Sebastian Hengst
db07879887 Backed out 5 changesets 507a508aea7, 16669eed518d, 6f6fc1a91d07, 1e983ccb61cc, c5afa29ea85a (bug 1195073) for M2 and W5 on OSX and Linux and R(R2, Ru2) bustage on Linux. r=backout
Backed out changeset 507a508aea70 (bug 1195073)
Backed out changeset 16669eed518d (bug 1195073)
Backed out changeset 6f6fc1a91d07 (bug 1195073)
Backed out changeset 1e983ccb61cc (bug 1195073)
Backed out changeset c5afa29ea85a (bug 1195073)
2015-08-21 10:46:05 +02:00
Edwin Flores
e54922879c Bug 1197051 - Don't try to decode ahead while seeking - r=jya 2015-08-21 17:25:46 +10:00
Jean-Yves Avenard
36e9ca19a9 Bug 1195073: [MSE] P6. Fix B2G build. a=bustage 2015-08-21 16:40:18 +10:00
Jean-Yves Avenard
bae9f15f36 Bug 1195073: [MSE] P5. Detect out of order appends and recreate demuxer. r=gerald
The webm demuxer will only handle data where frames's a monotonically increasing.
2015-08-21 16:15:36 +10:00
Jean-Yves Avenard
c3fd52b54a Bug 1195073: [MSE/webm] P4. Limit nestegg reads to the last block's boundaries. r=kinetik
This prevent entering into an unrecoverable error state when parsing incomplete data as often seen with MSE.
2015-08-21 16:15:35 +10:00
Jean-Yves Avenard
34da482ec2 Bug 1195073: [webm] P3. Initialize members. r=kinetik 2015-08-21 16:15:35 +10:00
Jean-Yves Avenard
bc02eee4d2 Bug 1195073: [webm] P2. Add WebMBufferedState::GetLastBlockOffset method. r=kinetik
MSE may input partial media segment, which could cause the WebMDemuxer and libnestegg to error upon encountering an incomplete block which can't be recovered from.
this will allow to limit read to known complete blocks.
2015-08-21 16:15:34 +10:00
Jean-Yves Avenard
b430a15240 Bug 1195073: [MSE/webm] P1. Detect individual webm clusters. r=kinetik
WebMContainerParser was incorrectly reporting webm blocks rather than clusters, causing the webm demuxer to later fail to parse the remaining data.
2015-08-21 16:15:34 +10:00
Jean-Yves Avenard
cdfe186b45 Bug 1196398: [mp4] Do not allocate memory spanning across ftyp and moov atom. r=kentuckyfriedtakahe
A typical non-fragmented mp4 would have the ftyp atom located at the beginning of the mp4 and the moov at the end. We would to calculate the location of the metadata by spanning the byte range of the two atoms.
As such, we would typically allocate an amount of memory equivalent to the size of the mp4.

Instead we now reconstruct the metadata to only have the ftyp and moov atoms contiguously.
2015-08-21 15:35:31 +10:00
Jean-Yves Avenard
c9a46a7f39 Revert "Bug 1196398: [mp4] Do not allocate memory spanning across ftyp and moov atom. r=kentuckyfriedtakahe"
This reverts commit 73156610be5f
2015-08-21 14:48:23 +10:00
Jean-Yves Avenard
e1fba5fbd6 Bug 1196398: [mp4] Do not allocate memory spanning across ftyp and moov atom. r=kentuckyfriedtakahe
A typical non-fragmented mp4 would have the ftyp atom located at the beginning of the mp4 and the moov at the end. We would to calculate the location of the metadata by spanning the byte range of the two atoms.
As such, we would typically allocate an amount of memory equivalent to the size of the mp4.

Instead we now reconstruct the metadata to only have the ftyp and moov atoms contiguously.
2015-08-21 13:10:34 +10:00
Chris Pearce
df49e88fd2 Bug 1197022 - [EME] Disable dormant mode for EME videos on all channels. r=kentuckyfriedtakahe 2015-08-21 13:34:21 +12:00
Karl Tomlinson
4c9ecfb041 bug 1196632 pass ownership of runnables to NS_DispatchToMainThread r=jesup
The already_AddRefed<nsIRunnable>&& overload saves some ref-counting and
provides an assertion if called too late in shutdown.
2015-08-20 09:52:56 +12:00