Commit Graph

2144 Commits

Author SHA1 Message Date
Bobby Holley
189c63f10e Bug 1135170 - Remove now-unused state machine scheduler freezing/thawing. r=mattwoodrow 2015-03-06 19:17:09 -08:00
Bobby Holley
be7c55afa1 Bug 1135170 - Rewrite the MediaDecoder-to-MediaDecoderStateMachine interface to be Promise-based. r=mattwoodrow 2015-03-06 19:17:07 -08:00
Bobby Holley
eaa91621e5 Bug 1135170 - Move the RenderVideoFrame call to the end of SeekCompleted. r=mattwoodrow
This means that we can get rid of the code to recheck state after dropping the
monitor. We'll remove the other monitor drop from this method in a subsequent
patch.
2015-03-06 19:17:06 -08:00
Bobby Holley
05dfa7b904 Bug 1135170 - Move some work from MDSM::Seek to MDSM::InitiateSeek. r=mattwoodrow
This has two implications:
* We no longer need to pipe mQueuedSeekTarget through MDSM::Seek to get the
  appropriate clamping.
* MDSM::Seek doesn't _need_ to be called on the main thread anymore.
2015-03-06 19:17:04 -08:00
Bobby Holley
c204094b18 Bug 1135170 - Reap some cleanup and assertions that were waiting on this bug. r=mattwoodrow 2015-03-06 19:17:01 -08:00
Bobby Holley
46d76b41ab Bug 1135170 - Stop updating playback position from Ogg seek and remove MediaDecoder::UpdatePlaybackPosition. r=mattwoodrow
The ogg reader makes two adjustments to the seek time - the first is to clamp it
between start and end time, which MDSM already does. The second is to subtract
SEEK_OPUS_PREROLL from the target. If we wanted to, we could return this as the
resolve value in the seek promise and handle the update in the MDSM. But I think
DropVideoUpToSeekTarget should actually handle this just fine.
2015-03-06 19:17:00 -08:00
Bobby Holley
bed5cb2127 Bug 1135170 - Streamline seek initiation logic and abolish manual seek cancels and retries. r=mattwoodrow
The model we're moving towards is one where the MDSM can just disconnect all of
its promises, send a ResetDecode down the pipe, and start doing something
unrelated.
2015-03-06 19:16:59 -08:00
Bobby Holley
2521a08947 Bug 1135170 - Stop doing sync dispatch for SeekingStarted. r=mattwoodrow
I can't see any reason why this should be necessary, and cursory archaeology
suggests that this too is a hand-me-down from previous threading models.
2015-03-06 19:16:57 -08:00
Bobby Holley
6404230f68 Bug 1135170 - Remove silly special case for seeking to exactly the current time. r=mattwoodrow
I traced this back to something 2011 or earlier and then gave up. Given that we're
doing an exact microsecond comparison here this is almost certainly dead code in
every case except for the one where the media is paused and JS does
|el.currentTime = el.currentTime|. And in that case, I think running through the
regular seek machinery is probably fine.
2015-03-06 19:16:56 -08:00
Bobby Holley
8517fe196d Bug 1135170 - Route queued seeks back through MDSM::Seek and eliminate MDSM::StartSeek. r=mattwoodrow 2015-03-06 19:16:54 -08:00
Bobby Holley
edce4188ef Bug 1135170 - Pin MediaResource in OggReader::GetSeekRanges. r=mattwoodrow
All consumers of MediaCacheStream::GetCachedRanges do this except this one.
2015-03-06 19:16:53 -08:00
Bobby Holley
8e66b38e57 Bug 1140675 - Disable failing tests on windows opt. r=me 2015-03-06 19:11:51 -08:00
Jan-Ivar Bruaroey
eabcb6cc42 Bug 1140363 - fire recording-window-ended on gUM failures, like we do on deny r=jesup 2015-03-06 13:23:33 -05:00
Paul Adenot
a043318e07 Bug 1130077 - Bump the number of iterations to prevent failures on slow machines. r=ehsan 2015-03-05 13:30:12 +01:00
Karl Tomlinson
14d009b649 bug 1138229 GetOutputStreamInfo() after each SetOutputType() r=cpearce 2015-02-26 17:59:37 +13:00
Karl Tomlinson
10d481fc98 bug 1138238 reset video frame geometry on each init r=cpearce 2015-02-26 15:25:55 +13:00
Karl Tomlinson
3c911ae09d bug 1138238 ensure mUseHwAccel is set appropriately when WMFVideoMFTManager::Init() is called after Shutdown() r=cpearce 2015-02-26 14:24:33 +13:00
Karl Tomlinson
2d82a73b83 bug 1138238 remove unused member variables from WMFVideoMFTManager r=cpearce 2015-02-26 14:40:47 +13:00
Geoff Brown
3709a0373e Bug 1138468 - Disable test_audioBufferSourceNodeNeutered.html on android debug; r=trivial 2015-03-05 10:47:41 -07:00
Ryan VanderMeulen
7fe8f52110 Bug 752796 - Skip test_streams_element_capture.html on B2G Desktop. 2015-03-05 09:30:37 -05:00
Ryan VanderMeulen
bc461e5e9f Backed out changeset 816591da074c (bug 752796) for disabling the wrong test. 2015-03-05 09:34:32 -05:00
Ryan VanderMeulen
f6bc49c327 Bug 752796 - Skip test_streams_element_capture.html on B2G Desktop. 2015-03-05 09:30:37 -05:00
Ryan VanderMeulen
a83ec50948 Bug 1096270 - Skip test_streams_gc.html on B2G Desktop. 2015-03-05 09:29:19 -05:00
JW Wang
e3c78339dd Bug 1113596 - add logs to track media element events. r=edwin 2015-03-04 18:43:00 +01:00
Carsten "Tomcat" Book
656a026986 Backed out changeset 72a843ecfb92 (bug 1128380) for m3 test failures on a CLOSED TREE 2015-03-05 08:40:45 +01:00
Carsten "Tomcat" Book
d33d75ba98 Backed out changeset 5d97bad42411 (bug 1128380) 2015-03-05 08:38:47 +01:00
Jean-Yves Avenard
bd7cb8851d Bug 1128380: Make AmpleVideoFrames calculation dynamic. r=cpearce 2015-03-05 16:53:47 +11:00
Jean-Yves Avenard
d77c2f7f49 Bug 1128380: Add IsHardwareAccelerated implementation for AVCC and mac decoder. r=cpearce 2015-03-05 16:53:44 +11:00
Anthony Jones
f5ae0bc523 Bug 1135544 - Create an abstract base class for a track demuxer; r=kinetik 2015-03-05 17:30:44 +13:00
Sotaro Ikeda
bf0c769d58 Bug 1128357 patch 4: Asynchronize SetDormant() r=cpearce,bobbyholley 2015-03-04 17:34:46 -08:00
Sotaro Ikeda
a037f548cf Bug 1128357 patch 3: test for video playback with dormant r=cpearce 2015-03-04 17:34:17 -08:00
Sotaro Ikeda
796ca98bba Bug 1128357 Patch 2: Don't dispatch seeking/seeked events when coming out of dormant mode r=cpearce 2015-03-04 17:33:40 -08:00
Sotaro Ikeda
dad8dee2fb Bug 1128357 Patch 1 - Add extra dormant logging r=bobbyholley 2015-03-04 17:32:54 -08:00
Bobby Holley
cb0426552d Bug 1136399 - Add test_WaitingOnMissingData_mp4.html and disable the webm version for now. r=jya 2015-03-04 16:22:34 -08:00
Ryan VanderMeulen
ccc4d17f94 Backed out 4 changesets (bug 1128357) for causing intermittent B2G mochitest asserts.
Backed out changeset da4499b52105 (bug 1128357)
Backed out changeset fa440c623c4d (bug 1128357)
Backed out changeset 36b8feee431e (bug 1128357)
Backed out changeset aaa85558f413 (bug 1128357)

CLOSED TREE
2015-03-04 12:53:06 -05:00
Paul Adenot
42ad5285ab Backed out 2 changesets (bug 1081819) for crashtest failures, on a CLOSED TREE.
Backed out changeset 6f6d897fc65c (bug 1081819)
Backed out changeset 796e84a25f16 (bug 1081819)
2015-03-04 17:31:36 +01:00
Andreas Pehrson
9a07bdde1f Bug 1081819 - Add mochitest for piping WebAudio in and out of PeerConnection. r=jesup,padenot 2015-03-02 18:07:20 +08:00
Andreas Pehrson
162fe2027d Bug 1081819 - Let the output stream itself process input data from MediaStreamAudioDestinationNode::mStream. r=roc,padenot 2015-03-02 17:08:40 +08:00
Sotaro Ikeda
62b4565102 Bug 1128357 patch 4: Asynchronize SetDormant() r=bobbyholley,cpearce 2015-03-04 06:37:49 -08:00
Sotaro Ikeda
a6c40218f5 Bug 1128357 patch 3: test for video playback with dormant r=cpearce 2015-03-04 06:37:31 -08:00
Sotaro Ikeda
9b61959b7a Bug 1128357 Patch 2: Don't dispatch seeking/seeked events when coming out of dormant mode r=cpearce 2015-03-04 06:37:04 -08:00
Sotaro Ikeda
a5cc6827d0 Bug 1128357 Patch 1: Add extra dormant logging r=cpearce 2015-03-04 06:36:46 -08:00
Benjamin Chen
50bbcfe822 Bug 1129376 - Fix crash by moving ConfigureMediaCodec from binder thread to out own thread. r=sotaro 2015-03-02 03:57:46 +08:00
Chris Pearce
1602a44e7d Bug 1138771 - Ensure we don't deref a null pointer in assertion in GMPVideoDecoderParent::Shutdown(). r=edwin 2015-03-04 23:20:45 +13:00
JW Wang
171cf0ee9d Bug 1139270 - mark kGMPOutputDownscaled keys able to decrypt. r=cpearce 2015-03-04 22:26:23 +13:00
Jean-Yves Avenard
e46da36310 Bug 1138922: Fix build bustage. r=mattwoodrow 2015-03-04 18:53:15 +11:00
JW Wang
7d79d20307 Bug 1131908 - no IPC calls after GMPDecryptorChild::RecvDecryptingComplete(). r=edwin. 2015-03-04 10:04:33 +08:00
Anish
b9d3be97ea Bug 958147 - Choose one of run-if or skip-if and get rid of the other.r=jmaher, mwargers 2015-03-03 08:46:37 -05:00
JW Wang
dcde4e29c1 Bug 901102 - wait until ended events are received on all media elements before comparing end time. r=roc. 2015-03-03 11:09:42 +08:00
JW Wang
ff97a317c8 Bug 1128417 - handle playback ended in a consistent way for both file and stream case. r=roc. 2015-03-03 11:08:50 +08:00
JW Wang
3bf536b866 Bug 1127235 - refactor stream clock calculation in MediaDecoderStateMachine. r=roc. 2015-03-03 10:43:38 +08:00
Andreas Pehrson
d7ef0ecef9 Bug 1129263 - Part 6. Remove DOMMediaStream::TrackTypeHints. r=roc,jesup 2015-02-09 15:23:34 +08:00
Andreas Pehrson
f5630e5649 Bug 1129263 - Part 4. Use MediaInfo instead of mHasAudio/Video in media element. r=roc 2015-02-09 14:51:17 +08:00
Andreas Pehrson
7c048a5765 Bug 1129263 - Part 3. Add tracks atomically when capturing from decoder. r=roc,jesup 2015-02-24 13:11:32 +08:00
Andreas Pehrson
d61e1fd8f3 Bug 1129263 - Part 2. Put hardcoded numeric TrackIDs in MediaInfo instead of DOMMediaStream. r=roc,jesup 2015-02-24 13:06:54 +08:00
Andreas Pehrson
883166e5ba Bug 1129263 - Part 1. Add an event to MediaStreamListener for handling atomically added tracks. r=roc,jesup 2015-02-06 17:38:11 +08:00
Matt Woodrow
2af8d4bf77 Bug 1131638 - Followup to fix bustage. CLOSED TREE 2015-03-03 18:31:20 +13:00
Jean-Yves Avenard
1109a9b646 Bug 1137100: Don't skip audio samples with a negative presentation time. r=cpearce
This allows for having the same decoding behavior across all platforms.
2015-03-03 16:29:28 +11:00
Anthony Jones
fa86250384 Bug 1138253 - Count dropped frames directly; r=cpearce 2015-03-03 17:46:48 +13:00
Anthony Jones
355e1787db Bug 1138253 - Clean up AutoNotifyDecoded; r=cpearce 2015-03-03 17:46:46 +13:00
Matt Woodrow
3d7cc5b1c1 Bug 1138260 - Add typed Microseconds class and use it for the range removal algorithm. r=jya,kinetik 2015-03-03 17:38:45 +13:00
Anthony Jones
cb8ffc5ee9 Bug 1131638 - Discard DXVA frames that don't complete YUV->RGB conversion. r=cpearce 2015-02-20 16:27:42 +13:00
Edwin Flores
a76a4d52fd Bug 1131392 - Remove unused test code after disabling non-MSE EME - r=cpearce 2015-03-03 11:02:36 +13:00
Edwin Flores
cdb7718806 Bug 1131392 - Fix EME tests after disable non-MSE EME - r=cpearce 2015-03-03 11:02:36 +13:00
Karl Tomlinson
cf7b4f65c5 bug 1123492 remove ResetDecode() call from MediaSourceReader::AttemptSeek() r=mattwoodrow
and this was already called before Seek().
2015-02-17 14:35:47 +13:00
Karl Tomlinson
ccdb088d7b bug 1123492 ResetDecode() on subreaders before Seek() r=mattwoodrow 2015-02-28 19:46:22 +13:00
Karl Tomlinson
e2c5c103e6 bug 1123492 update comment to describe the thread that runs AttemptSeek() r=mattwoodrow 2015-02-17 13:58:55 +13:00
Karl Tomlinson
ac6c6affb1 bug 1137076 mark some methods as private r=edwin 2015-02-28 14:44:07 +13:00
Karl Tomlinson
2590a61d75 bug 1137076 handle null mDecoder during Reader shutdown r=edwin 2015-02-28 14:32:19 +13:00
Karl Tomlinson
2928656386 bug 1137076 remove declaration of undefined OmxDecoder::ProcessCachedData() r=edwin 2015-02-28 10:32:27 +13:00
Jean-Yves Avenard
aa07e76223 Bug 1131433: Fix build on a CLOSED TREE r=me 2015-03-03 11:30:06 +11:00
Wes Kocher
739de2c043 Bug 1131433 - Further fixes to SourceBufferDecoder.cpp. DONTBUILD CLOSED TREE 2015-02-27 15:35:23 -08:00
Nigel Babu
fb1b5043d5 Backed out changeset a622dbe33efb (bug 1135544) for ASAN mochitest-3 bustage on CLOSED TREE 2015-03-02 18:13:39 +05:30
Anthony Jones
7dea01a959 Bug 1135544 - Create an abstract base class for a track demuxer; r=kinetik 2015-03-02 16:34:44 +13:00
Bobby Holley
aa3b26a74c Bug 1135785 - Hoist some work onto the state machine thread and tighten down our assertions. r=cpearce 2015-03-01 19:33:53 -08:00
Bobby Holley
4bd9040eca Bug 1135785 - Stop manually resetting mCurrentSeekTarget in MDSM::SeekCompleted and rely on the AutoSetOnScopeExit instead. r=cpearce
For some reason the current code is resetting it twice - once explicitly and
once with the AutoSetOnScopeExit. To make matters worse, we have a monitor drop
between the two. So when DecodeSeek runs on the decode task queue but SeekCompleted
runs on the state machine thread, we can start another DecodeSeek during the monitor
drop, and then clobber it with the AutoSeetOnScopeExit, causing us to hang.

This is a non-issue with the patches in bug 1135170, but necessary to make the
patches in this bug independently green.
2015-03-01 19:33:52 -08:00
Bobby Holley
68ac0259e2 Bug 1135785 - Stop invoking StopPlayback in SetDormant. r=cpearce
This already gets incoded in the DECODER_STATE_DORMANT case of RunStateMachine,
which will run momentarily on the state machine thread. Doing this allows us to
avoid calling StopPlayback on the main thread.
2015-03-01 19:33:50 -08:00
Bobby Holley
4ffe849a5a Bug 1135785 - Return samples on state machine thread. r=cpearce
This is necessary because we're going to want to start disconnecting sample
and seek requests directly from the state machine thread, and the machinery
asserts that disconnection happens on the same thread as resolution.

More generally, this is the right thing to do architecturally, and will help
wean us off the monitor.
2015-03-01 19:33:49 -08:00
Bobby Holley
887b211fd3 Bug 1135785 - Make DecodeError safe to run on any thread. r=cpearce
This is necessary so that we can make On{Audio,Video}{,Not}Decoded run on the
state machine thread in the next patch.
2015-03-01 19:33:48 -08:00
Bobby Holley
0e2adf3284 Bug 1135785 - Make MediaTaskQueue::IsCurrentThreadIn actually do the right thing on release builds. r=cpearce
The current situation is really dangerous because it compiles on release builds,
but just lies. This bit me when I tried to use it for non-assertion purposes.

My reading of the reasoning for the current setup in bug 968016 is that we didn't
trust nsIEventTarget::IsCurrentThreadOn or thought it might be slow. But the
implementation of MediaTaskQueue::IsCurrentThreadIn doesn't actually use that, and
indeed currently does all of the work for this feature in release builds anyway.
2015-03-01 19:33:46 -08:00
Bobby Holley
2c6b1b64e3 Bug 1135785 - Introduce a 1-argument overload of ProxyMediaCall. r=cpearce 2015-03-01 19:33:45 -08:00
Bobby Holley
40c1074481 Bug 1138072 - Don't defer reading to a closed stream. r=roc
Other streams in the list bail out of the servicing loop if they're closed, so
we can wait indefinitely.
2015-03-01 19:33:44 -08:00
Chris Pearce
4d3879ec6c Bug 1138240 - Fail faster if a CDM tries to resolve a resolved promise. r=edwin 2015-03-02 14:13:47 +13:00
Jean-Yves Avenard
43eec98395 Bug 1137529: Prefer Apple's VDA hardware acceleration for Hi-Def videos. r=rillian
With some GPUs (such as Intel HD-x000), Apple VideoTool box provides poor
decoding speed, causing us to drop frames for most HD videos.
VDA is around 50 times faster on those machines (31ms average to decode a 4K
frame with VT, while 0.6ms average with VDA)
2015-03-02 10:48:28 +11:00
Jean-Yves Avenard
091f2ff1f0 Bug 1128397: Work around EOS detection in MSE. r=mattwoodrow
This attempts to handle video and audio sourcebuffer not having exactly the
same duration, so the ended event is properly fired.
2015-03-02 10:47:54 +11:00
Jean-Yves Avenard
89b13c783a Bug 1134387: Prevent crash when decoder couldn't be created. r=edwin 2015-02-27 11:31:46 +11:00
Chris Pearce
7c56165d01 Bug 1137957 - Fix non-unified build failure in GMPVideoDecoder. r=kinetik 2015-02-28 16:15:29 +13:00
Bobby Holley
ce02722142 Bug 1137511 - Account for audio frames already pushed to audio hardware but not yet played when computing OutOfDecodedAudio. r=kinetik 2015-02-27 16:07:44 -08:00
Ryan VanderMeulen
0c89924c1b Bug 1131433 - Re-add accidentally-removed GetMediaSourceLog() declarations.
CLOSED TREE
2015-02-27 17:37:52 -05:00
Chris Pearce
5a274caae7 Bug 1136986 - Fix unthreadsafe uses of GMPVideoHost in gmp-clearkey. r=edwin 2015-02-28 10:23:33 +13:00
Chris Pearce
a0fed72e46 Bug 1136986 - Disable SharedDecoderManager for EME video. r=kentuckyfriedtakahe 2015-02-28 10:23:29 +13:00
Matt Woodrow
302e802646 Bug 1136984 - Followup to fix build. 2015-02-27 12:07:05 +13:00
Matt Woodrow
d854c9ca30 Bug 1136984 - Use correct units for comparing timestamps in TrackBuffer::RangeRemoval. r=jya 2015-02-27 11:47:46 +13:00
Matt Woodrow
f36fb93e54 Bug 1136984 - Always call DrainComplete in response to Drain, even if it wasn't called on the active decoder. r=cpearce 2015-02-27 11:47:12 +13:00
Matt Woodrow
f70602a599 Bug 1132757 - Don't crash if we call WMFVideoMFTManager after we've initiated shutdown. r=cpearce 2015-02-27 11:46:10 +13:00
Blake Wu
9b544b72de Bug 1133955 - Record the last seek time to decide the direction to seek. r=sotaro 2015-02-24 11:19:54 +08:00
Jan-Ivar Bruaroey
a25f0412b2 Bug 1136871 - PeerConnection typo in replaceTrackFailure. r=docfaraday 2015-02-25 19:11:15 -05:00
Karl Tomlinson
36c07b2385 back out 6fc9b30bbdd9..232b818847e7 from bug 1123492 for crashes in DoVideoSeek() 2015-02-26 19:37:48 +13:00
Karl Tomlinson
6ea96662a5 bug 1123492 remove ResetDecode() call from MediaSourceReader::AttemptSeek() r=mattwoodrow
and this was already called before Seek().
2015-02-17 14:35:47 +13:00
Karl Tomlinson
16ad66eef2 bug 1123492 ResetDecode() on subreaders when switching to current or seeking r=mattwoodrow 2015-02-18 19:23:31 +13:00