Commit Graph

2223 Commits

Author SHA1 Message Date
Ehsan Akhgari
88f5678f8a 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
aa26098054 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
e9baa064b2 Bug 865257 - Implement MediaStreamAudioDestinationNode. r=ehsan,roc 2013-05-21 15:17:47 -04:00
Robert O'Callahan
7f0e8faa0b Backing out bug 882027 2013-06-16 01:28:34 +12:00
Robert O'Callahan
4ec5ce6398 Bug 880601. Emulate a form of keyframe skipping by allowing MediaOmxReader::DecodeVideoFrame to decode more than one video frame if video decoding is falling behind. r=cpearce
If we don't support this in any way, then we get into trouble when there is
plenty of compressed data buffered but for some reason video decoding falls
behind (maybe there was a short period where the video data wasn't available).
Audio playback continues normally, but MediaOmxReader keeps making one call
to ReadAudio and one to ReadVideo, and if each call to ReadAudio decodes at
least as much as the calls to ReadVideo, video decoding can never catch up
to the current audio playback position. So video never plays. And when the
video decoding point gets far enough away from the audio decoding point,
horrible things start to happen, such as video and audio reading completely
different parts of the media cache and interfering with the caching mechanism
(which assumes audio and video reads are close together).

This patch approximates keyframe skipping, and is basically just a way for
MediaOmxReader::DecodeVideoFrame to decode more than one frame at a time
if we need video decoding to catch up.

To prevent pathological situations, we cap both the maximum number of frames
decoded per DecodeVideoFrame and the amount of time we spend in the method
(excluding the time for the last frame).

--HG--
extra : rebase_source : cba95c537fe97df5b696581be8233b6e9cffb70b
2013-06-15 23:51:56 +12:00
Robert O'Callahan
dbd1bda3cd Bug 882027. Route all calls to GetNextFrameStatus for determining the readyState through MediaDecoder::UpdateReadyStateForData on the main thread. r=cpearce
--HG--
extra : rebase_source : 9ea3260f294c633c24e15690fa4bb067af378088
2013-06-15 23:50:44 +12:00
Martijn Wargers
e3e6352d56 Bug 883094 - Fix some test files that don't unset their prefs correctly. r=jgriffin 2013-06-15 00:33:47 +02:00
Martijn Wargers
e36a806dd2 Bug 868439 - Convert some uses of nsIPrefBranch to SpecialPowers. r=jmaher 2013-06-15 00:13:44 +02:00
Caitlin Potter
91c08eabb1 Bug 882535 - Set HTMLTrackElement Readiness State during WebVTT Parsing. r=rillian
This patch enables "LOADING", "LOADED" and "ERROR" readiness states to be
applied to the Parent HTMLTrackElement, in order to avoid test flakiness,
and to comply with the HTML5 draft
http://www.w3.org/html/wg/drafts/html/master/embedded-content-0.html#text-track-readiness-state.
2013-06-12 22:26:14 -04:00
Shelly Lin
f3b88db9f4 Bug 882956 - Fix WebAudio stack-buffer-overflow crash. r=ehsan. 2013-06-14 15:16:41 +08:00
Chris Pearce
c7e314fca4 Bug 881954 - Set the thread limit to the idle limit for WMFByteStream's thread pool. This stops the pool from constantly creating and destroying threads when under load, freeing up virtual address space and reducing our thread count. r=padenot 2013-06-14 09:07:59 +12:00
Chris Pearce
83ae9a38b2 Bug 881954 - Only initialize DXVA when we're decoding video. r=padenot 2013-06-14 09:07:28 +12:00
Chris Pearce
89276c11b2 Bug 881954 - Generalize test_too_many_elements to run on more than just Ogg audio. r=padenot 2013-06-14 09:07:07 +12:00
Ehsan Akhgari
d6628d6d1a Bug 579517 follow-up: Remove NSPR types that crept in 2013-06-12 21:26:59 -04:00
Ehsan Akhgari
96ea05fa5f Bug 881558 - Re-introduce try-locking in the reverb implementation; r=roc 2013-06-12 20:57:17 -04:00
Chris Pearce
66d1fa1f4a Bug 880062 - Make WMF video backend call MediaDecoder::SetMediaSeekable(false) when it can't seek like it's supposed to. r=padenot 2013-06-13 10:15:23 +12:00
Caitlin Potter
eeb2928e9b Bug 881978 - Make WebVTTLoadListener callbacks private. r=rillian
WebVTTLoadListener::OnParsedCue() and WebVTTLoadListener::OnReportError() are
for private use and should not be exposed publicly.
2013-06-11 21:12:39 -04:00
Ehsan Akhgari
4e4cb968f6 Bug 881775 - Set the correct channel count in DownmixAndInterleave, and avoid unnecessary downmixing; r=roc 2013-06-11 17:50:21 -04:00
Caitlin Potter
f5b7023a3b Bug 881475 - Drop cues with malformed timestamps. r=rillian
The parsing specification requires the UA to drop
cues containing malformed cue-times.
(http://dev.w3.org/html5/webvtt/#dfn-collect-a-webvtt-timestamp)

The OnReportError callback has been modified to notify the parser
that we need need to drop such cues which are deemed 'malformed'
according to the timestamp parsing rules.
2013-06-10 21:10:30 -04:00
Ryan VanderMeulen
774115510a Merge m-c to inbound. 2013-06-11 21:03:14 -04:00
Ralph Giles
e55831544d Bug 879924 - Don't shorten zero-length strings. r=derf
We were trying to strip the optional null terminator
even when we knew there wasn't one there.
2013-06-10 17:10:09 -07:00
Shelly Lin
2eeb681648 Bug 842243 - Part 5: Add MediaEncoder.h/.cpp; The main part of this media encoding framework. r=roc 2013-06-05 14:29:12 +08:00
Shelly Lin
b0ad578f08 Bug 842243 - Part 4: Add OpusEncoder.h/.cpp; Implementation of Opus encoder. r=roc, r=tterribe 2013-05-17 19:18:08 +08:00
Shelly Lin
05dcf724ca Bug 842243 - Part 3: Add TrackEncoder.h/.cpp; Base class for audio/video track encoder. r=roc 2013-05-17 19:16:36 +08:00
Shelly Lin
370c645a9f Bug 842243 - Part 2: Add OggWriter.h/.cpp; Implementation of Ogg container. r=roc, r=tterribe 2013-05-17 19:13:01 +08:00
Shelly Lin
4d942eeee0 Bug 842243 - Part 1: Add ContainerWriter.h; Base class of media container writer. r=roc 2013-05-17 18:50:58 +08:00
Shelly Lin
effe13c520 Bug 842243 - Part 0: Modify MediaSegment and AudioSegment for use by MediaEncoder. r=roc 2013-06-03 17:59:50 +08:00
Edwin Flores
faab496014 Bug 876305 - Pass the media mimetype on to the gstreamer backend r=alessandro.d 2013-06-11 14:13:10 +12:00
Edwin Flores
d80f358b17 Bug 876305 - Cap the max number of audio buffers gstreamer can use r=alessandro.d 2013-06-11 14:13:10 +12:00
Edwin Flores
d5dcc82182 Bug 874305 - Support older versions of gstreamer r=alessandro.d 2013-06-11 14:13:09 +12:00
Edwin Flores
f0c607f18b Bug 879995 - Fix assertion failure in gstreamer backend with fragmented mp4 videos r=alessandro.d 2013-06-11 14:13:09 +12:00
Edwin Flores
f0948b7184 Bug 859199 - Load GStreamer libraries at runtime r=doublec 2013-06-11 14:13:09 +12:00
Edwin Flores
56de35440d Bug 878363 - Silence pragma warnings from gstreamer libraries r=ted 2013-06-11 14:13:09 +12:00
Chris Pearce
b1ded03eee Bug 880006 - Make WMF video backend call MediaDecoder::NotifyBytesConsumed() like it's supposed to. r=padenot 2013-06-11 12:53:26 +12:00
Ehsan Akhgari
579a771ace Bug 815643 - Part 9: Port Blink's LayoutTest for ConvolverNode to mochitest-plain; r=roc
--HG--
extra : rebase_source : b829991957f0349a6c2541fcc99d4214e701a2ae
2013-06-10 16:10:07 -04:00
Ehsan Akhgari
e2c81dbce5 Bug 815643 - Part 8: Import convolution tests from Blink; r=roc
Imported from Blink SVN revision 150518

--HG--
extra : rebase_source : c50aeed5d0fceaa9112cd9e791ec7acd9904fd84
2013-06-10 16:09:53 -04:00
Ehsan Akhgari
8a97dc2304 Bug 815643 - Part 7: Add a basic API test for ConvolverNode; r=roc
--HG--
extra : rebase_source : be90de45e240fec45875a65235104d2d92716a14
2013-06-10 16:09:38 -04:00
Ehsan Akhgari
2e533bea4f Bug 815643 - Part 6: Optimize FFTBlock to avoid recreating kiss_fftr_cfg objects all the time; r=roc
Setting up the FFT tables turns out to be quite expensive because of the
large number of calls to sin() and cos().

In the future we may want to look into having a global cache of FFT
tables per size, in order to pay the cost of setting each one of them up
only once.

--HG--
extra : rebase_source : 871d11e7f74db9e3e6c704da9518d40cba3deb8a
2013-06-10 16:09:25 -04:00
Ehsan Akhgari
3af23c62eb Bug 815643 - Part 5: Implement ConvolverNode's processing based on the Blink implementation; r=roc
--HG--
extra : rebase_source : 4c1a8dbaa4ab2d4fcc67c0a5226a6937e0656404
2013-06-10 16:09:12 -04:00
Ehsan Akhgari
2ef673d28b Bug 815643 - Part 4: Add the Convolution processing implementation to the build system; r=roc
--HG--
extra : rebase_source : 2a5aa609334c67bb9b09090d9f681c5c3a940c5c
2013-06-10 16:09:01 -04:00
Ehsan Akhgari
0bdb88b1cd Bug 815643 - Part 3: Import the Convolution processing implementation from Blink; r=roc
The original code was copied from Blink SVN revision 150518.

--HG--
extra : rebase_source : 1fbc3cc7f7325bdd8806d7ef30a5c882b505debf
2013-06-10 16:08:38 -04:00
Ehsan Akhgari
82519eedaf Bug 815643 - Part 2: Refactor our Web Audio FFT code into the FFTBlock class; r=roc
This is useful in order for us to be able to borrow code from Blink with
fewer changes, and also to explore faster platform dependent FFT
implementations in the future if needed.

--HG--
extra : rebase_source : 34bbded736e1b385754756513c59ee27ce7552a5
2013-06-10 16:08:21 -04:00
Ehsan Akhgari
bcac308338 Bug 815643 - Part 1: Implement the DOM bindings for ConvolverNode; r=roc
--HG--
extra : rebase_source : 9f6853dcaeeac1f36aa8c2ee90991a7f0ea0b145
2013-06-10 16:07:55 -04:00
Rick Eyre
3800bbb044 Bug 833382 - Implement WebVTTLoadListener r=cpearce,bz
- Implemented WebVTTLoadListener to manage the webvtt parser.
- TextTrackCue now handles the conversion of webvtt nodes to
  anonymous content which will be displayed on the video div
  overlay.
- HTMLTrackElement manages the lifetime of the WebVTTLoadListener.
2013-06-10 08:30:00 -07:00
Paul Adenot
2083c10f3c Bug 865244 - Test for AudioContext.destination.maxChannelCount. r=ehsan 2013-06-10 19:32:28 +02:00
Paul Adenot
3aa35d131a Bug 865244 - Implement AudioContext.destination.maxChannelCount. r=ehsan 2013-06-10 19:32:28 +02:00
Paul Adenot
9a67a917d3 Bug 865244 - Expose the maximum channel count in the AudioStream. r=kinetik 2013-06-10 19:32:28 +02:00
Mike Habicher
076c424da2 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
Sotaro Ikeda
2d8e4dae08 Bug 871485 - Share hw codec between applications/tasks. r=mwu, r=doublec, r=roc 2013-06-10 08:22:05 -04:00
Ivaylo Dimitrov
b0a54a77e9 Bug 880029 - gstreamer - high CPU usage after patch for Bug 856562 landed. r=alessandro.d 2013-06-08 20:53:10 +01:00