Commit Graph

3780 Commits

Author SHA1 Message Date
Wes Kocher
b42cc30cf7 Merge b2g-inbound to m-c 2014-04-02 19:06:17 -07:00
Ed Morley
1d70b8c714 Merge mozilla-central and b2g-inbound 2014-04-02 18:56:09 +01:00
JW Wang
0ec83ca01e Bug 990356 - Part 3: Remove nsRunnable base class from MediaDecoderStateMachine. r=cpearce 2014-04-02 08:51:47 -04:00
JW Wang
7cb5d740ea Bug 990356 - Part 2: Only one way to dispatch state machine (using a timer) tasks and remove unused variables. r=cpearce 2014-04-02 08:51:47 -04:00
JW Wang
9fefdce048 Bug 990356 - Part 1: Remove lazy init of |mTimer| since we need one for most of the case. r=cpearce 2014-04-02 08:51:46 -04:00
Ryan VanderMeulen
0d5b7940ce Merge inbound to m-c. 2014-04-01 16:45:00 -04:00
Randy Lin
1e2b703371 Bug 988884 - Properly shutdown mediaencoder threads. r=roc 2014-04-01 07:33:48 +08:00
JW Wang
95bd4f71d1 Bug 980868 - Don't skip video frame when |clock time| is less than |mVideoFrameEndTime| for we are still in the safe range without underruning video frames. r=cpearce 2014-04-01 08:58:55 -04:00
Randell Jesup
45c4d25757 Bug 985714: Monitor AEC echo levels (ERLE/etc) in gUM r=jib 2014-04-02 13:58:20 -04:00
Randell Jesup
c944f7f471 Bug 694814: Patch 5 - Move AEC from PeerConnection to getUserMedia rs=padenot 2014-04-02 13:58:19 -04:00
Randell Jesup
f541101e08 Bug 694814: Patch 4 - Add audio playout delay config var r=padenot 2014-04-02 13:58:19 -04:00
Randell Jesup
7e518ccc70 Bug 694814: Patch 3 - Add far-end mixer observer and insert far-end audio for AEC r=padenot 2014-04-02 13:58:19 -04:00
Matthew Gregan
20482e64a3 Bug 981276 - Initialize mAudioCodec in WebMReader. r=rillian
--HG--
extra : rebase_source : 905ae6dcd3dd0b1ac423187515fe63bb9bc21f59
2014-04-02 14:08:59 +13:00
Chris Pearce
417ed90a50 Bug 987127 - Destroy and re-create IMFSourceReader without using DXVA when DXVA init fails to fix failure on AMD Radeon 3000 chipsets. r=padenot 2014-04-02 14:07:41 +13:00
Sotaro Ikeda
3c541b7114 Bug 985772 - Remove SurfaceDescriptor around GonkNativeWindow r=nical,pchang,schiu,mikeh,gal 2014-03-31 08:24:28 -07:00
Benjamin Chen
7b006532c6 Bug 984816: RTSP play/pause deadlock issue. 1. Release the monitor when access mReader. 2. Reverse the order in RtspOmxReader::SetIdle(). r=cpearce 2014-03-31 10:18:01 +08:00
Paul Adenot
a996edae64 Bug 982490 - Ensure for MSG cycle that each MediaStream write the same number of frames to their AudioStream. r=jesup,roc 2014-03-24 11:06:06 +01:00
Paul Adenot
d3b8229033 Bug 818822 - Resample all inputs of the MediaStreamGraph to the ideal audio rate. r=roc 2014-03-24 11:06:05 +01:00
Daniel Holbert
0a7b04c924 Bug 984786 part 5: Give NS_INLINE_DECL_*REFCOUNTING classes private/protected destructor & MOZ_FINAL annotation where appropriate, in /content/media. r=kinetik 2014-04-02 09:21:11 -07:00
Randy Lin
3a40673d1b Bug 912627 - Remove spurious assertion. r=cpearce 2014-04-02 09:59:31 +08:00
Mike Hommey
084f4bf6b5 Backout changesets ca413634eba3 and a92851ff7444 (bug 988168) for likely windows PGO perf regression 2014-03-29 16:49:19 +09:00
Mike Hommey
0e1dd1fe7c Bug 988168 - Better integrate gtest libxul in the build system. r=mshal
--HG--
rename : toolkit/library/Makefile.in => toolkit/library/libxul.mk
rename : toolkit/library/moz.build => toolkit/library/libxul.mozbuild
2014-03-29 07:50:08 +09:00
Rick Eyre
9aac79542d Bug 882677 - Part 5: Add track element tests. r=cpearce 2014-03-17 15:11:41 -04:00
Rick Eyre
380383be80 Bug 882677 - Part 4: TextTrack::ReadyState should be set to 'error' if loading the stream fails. r=cpearce 2014-03-17 17:49:52 -04:00
Rick Eyre
0837ecc090 Bug 882677 - Part 3: Set Track::ReadyState after flushing the parser. r=cpearce
The parser might report errors during the flush call so we can't check and set the ReadyState of the track yet.
2014-03-17 16:52:11 -04:00
Rick Eyre
b1d42e4cd4 Bug 882677 - Part 2: Handle ParsingErrors from vtt.js correctly. r=cpearce
* Update vtt.js to the newest version which has the capability
of reporting back ParserErrors.
* Update the update-vtt.js script a bit as well since
the symbols that it exports have changed a bit since the last import.
Some of the general information it outputs has since changed as well
like where the repo exists.
* Update WebVTTListener to set the track readiness state
to 'failed to load' if the WebVTT file is not loaded correctly.
2014-03-17 15:11:41 -04:00
Rick Eyre
245d1a6e17 Bug 882677 - Part 1: Dispatch loaded and error events to the HTMLTrackElement. r=cpearce 2014-03-14 12:13:41 -04:00
Rick Eyre
f25cdf1a62 Bug 903030 - Add tests for TextTrackCue validation code. r=cpearce 2014-03-31 12:48:00 +02:00
Masayuki Nakano
930436ef24 Bug 984269 Rename nsDOMEventTargetHelper to mozilla::DOMEventTargetHelper r=smaug
--HG--
rename : dom/events/nsDOMEventTargetHelper.cpp => dom/events/DOMEventTargetHelper.cpp
rename : dom/events/nsDOMEventTargetHelper.h => dom/events/DOMEventTargetHelper.h
2014-04-01 15:13:50 +09:00
Chris Peterson
b39edb5872 Bug 984071 - Part 2: Only create WebRTC LoadManager on Android and Linux. r=jesup 2014-03-28 22:19:33 -04:00
Mike Hommey
490ed7cdd4 Bug 988168 - Better integrate gtest libxul in the build system. r=mshal. DONTBUILD
--HG--
rename : toolkit/library/Makefile.in => toolkit/library/libxul.mk
rename : toolkit/library/moz.build => toolkit/library/libxul.mozbuild
2014-03-31 13:21:38 +02:00
Mike Hommey
421099347a Backed out changeset 561b9329d832 (bug 988168) for wrong attribution. 2014-04-01 13:17:50 +09:00
Jacek Caban
46abe3117f Bug 988168 - Better integrate gtest libxul in the build system. r=mshal
--HG--
rename : toolkit/library/Makefile.in => toolkit/library/libxul.mk
rename : toolkit/library/moz.build => toolkit/library/libxul.mozbuild
2014-03-31 13:21:38 +02:00
Chris Pearce
fd48fdb8b5 Bug 631058 - Don't preroll as many media samples when loading preload="metadata" media. r=cajbir 2014-04-01 16:43:57 +13:00
Chris Pearce
b12df215bb Bug 778077 - Implement HTMLMediaElement.fastSeek(time). r=cajbir
Implement HTMLMediaElement.fastSeek(), basically by changing all the
MediaDecoderReader::Seek() overrides to not call
MediaDecoderReader::DecodeToTarget(), and have MediaDecoderReader::DecodeSeek()
call DecodeToTarget() if we're doing an accurate (non-fast) seek.

Update gizmo.mp4 to have a keyframe every second, instead of only 1 keyframe at
the start of stream. This makes the unit test I added more useful for mp4...

I pushed most of the seek target clamping logic in MediaDecoder up into
HTMLMediaElement, so that we're clamping in fewer places. Note
MediaDecoderStateMachine::Seek() still sanity checks the seek target.

We have to update the currentTime/MediaDecoder playback position after a seek
completes now, rather than assuming the seek always got it exactly right.

Removed those pesky assertions about seek target lying in the first frame after
seek, since actually sometimes the media doesn't have samples for all streams
after a seek (either due to the media being encoded like that, or because of a
bug in the platform's decoder, not entirely sure).

Green: https://tbpl.mozilla.org/?tree=Try&rev=b028258565e2
* * *
Bug 778077 - Fix up MediaOMXReader fastseek to ensure audio stream stays in sync with video stream. r=cajbir
2014-04-01 16:39:04 +13:00
Karl Tomlinson
69d7128f4d b=989907 initialize AudioNodeExternalInputStream output chunk even when first track has null output r=roc
--HG--
extra : transplant_source : %96%C3%A3%DCs%D3%CCY6.%CC%07%22%02%EDy%A5%94U%DD
2014-04-01 13:49:20 +13:00
Karl Tomlinson
33827b3f7c b=987976 rename ComputeFinalOuputChannelCount ComputedNumberOfChannels to match spec r=padenot
to remove any implication that the function might be for calculating
the number of output channels for an AudioNode.

--HG--
extra : transplant_source : %D9%12%BB%23n%92%EB%F7%1Df%11%3F%04%B4z%606%ADT%3A
2014-04-01 10:26:02 +13:00
Karl Tomlinson
cc7f43c817 b=987976 make AudioNodeExternalInputStream output channel count match stream, unless > MaxChannelCount r=padenot
The difference from Blink here is that Blink plays silence for if element
channel counts are > 32, but here more channels are down-mixed.  Media stream
channel counts are also fixed to 2 in Blink, but that restriction is not
applied here.

Leaving the "inline" const static/class member initialization of
MaxChannelCount left missing symbols with gcc 4.7.3.

--HG--
extra : transplant_source : %C9%BA%84%0F%E8%89%E2%85p%B8%28%EF%E9M%CC%81%B9ob/
2014-04-01 10:25:45 +13:00
Karl Tomlinson
d74753f274 b=986901 don't assume that DelayNode maxDelayTime is greater than 1 block r=padenot
Also apply DelayNode maxDelayTime before rounding to ticks.

--HG--
extra : transplant_source : %F1i%02%2A%ED%98%95%C9u%60%0B%1A%81A%C2%8E%FB%F3%FA%D5
2014-03-31 18:32:34 +13:00
Karl Tomlinson
22b3aa9cc0 crashtest for bug 986901
Derived from testcase by Jesse Ruderman <jruderman@gmail.com>

--HG--
extra : transplant_source : %AE%CEf%29%F9%C4%25%82%B5%17%24%3C%0ErA%90.%7C%09%0C
2014-03-31 18:32:33 +13:00
Karl Tomlinson
d729f892b6 b=983066 pad out resampler input past track end only to the end of the block r=padenot
The extra null samples were mostly harmless, and may have even helped avoid
bug 983062 sometimes, but caused the "Samples missing" assertion to fail.

--HG--
extra : transplant_source : M%D6%B4ra2%AE%DA%EC%82%E1%D8_%83%9F%FBw%F2%ECh
2014-03-31 18:32:32 +13:00
Fredrik Lanker
45e7b43682 Bug 989284 - Change the infinite flag when duration is updated. r=roc 2014-03-28 11:41:59 -04:00
Jan Beich
7b04ea5fdd Bug 989112 - Lazily reference to gst_event_type_get_name() to unbreak --enable-debug. r=alessandro.d 2014-03-28 10:36:48 -04:00
Ed Morley
7a428f481b Backed out changeset 00fa39c23b44 (bug 778077) for reftest failures 2014-03-28 12:31:29 +00:00
Chris Pearce
eefc2c2db6 Bug 778077 - Implement HTMLMediaElement.fastSeek(time). r=cajbir
Implement HTMLMediaElement.fastSeek(), basically by changing all the
MediaDecoderReader::Seek() overrides to not call
MediaDecoderReader::DecodeToTarget(), and have MediaDecoderReader::DecodeSeek()
call DecodeToTarget() if we're doing an accurate (non-fast) seek.

Update gizmo.mp4 to have a keyframe every second, instead of only 1 keyframe at
the start of stream. This makes the unit test I added more useful for mp4...

I pushed most of the seek target clamping logic in MediaDecoder up into
HTMLMediaElement, so that we're clamping in fewer places. Note
MediaDecoderStateMachine::Seek() still sanity checks the seek target.

We have to update the currentTime/MediaDecoder playback position after a seek
completes now, rather than assuming the seek always got it exactly right.

Removed those pesky assertions about seek target lying in the first frame after
seek, since actually sometimes the media doesn't have samples for all streams
after a seek (either due to the media being encoded like that, or because of a
bug in the platform's decoder, not entirely sure).

Green: https://tbpl.mozilla.org/?tree=Try&rev=b028258565e2
2014-03-28 22:36:10 +13:00
Neil Rashbrook
757dacf9be Bug 514280 Remove concrete classes from interface maps r=bsmedberg 2014-03-28 08:40:13 +00:00
Phil Ringnalda
7fb1a235f6 Backed out 2 changesets (bug 778077, bug 631058)
CLOSED TREE

Backed out changeset dda301682977 (bug 631058)
Backed out changeset 25b633e7dcd5 (bug 778077)
2014-03-27 21:50:02 -07:00
Chris Peterson
ced241328f Bug 986787 - Fix -Wreorder warning and other cleanups in MediaEngineTabeVideoSource.cpp. r=rjesup 2014-03-26 00:59:01 -04:00
Chris Pearce
bfe8e04d6a Bug 631058 - Don't preroll extra media samples when we're not playing. r=cajbir 2014-03-28 15:50:35 +13:00
Chris Pearce
7bc425d1e8 Bug 778077 - Implement HTMLMediaElement.fastSeek(time). r=cajbir
Implement HTMLMediaElement.fastSeek(), basically by changing all the
MediaDecoderReader::Seek() overrides to not call
MediaDecoderReader::DecodeToTarget(), and have MediaDecoderReader::DecodeSeek()
call DecodeToTarget() if we're doing an accurate (non-fast) seek.

Update gizmo.mp4 to have a keyframe every second, instead of only 1 keyframe at
the start of stream. This makes the unit test I added more useful for mp4...

I pushed most of the seek target clamping logic in MediaDecoder up into
HTMLMediaElement, so that we're clamping in fewer places. Note
MediaDecoderStateMachine::Seek() still sanity checks the seek target.

We have to update the currentTime/MediaDecoder playback position after a seek
completes now, rather than assuming the seek always got it exactly right.

Removed those pesky assertions about seek target lying in the first frame after
seek, since actually sometimes the media doesn't have samples for all streams
after a seek (either due to the media being encoded like that, or because of a
bug in the platform's decoder, not entirely sure).

Green: https://tbpl.mozilla.org/?tree=Try&rev=b028258565e2
2014-03-28 15:50:28 +13:00