Граф коммитов

346 Коммитов

Автор SHA1 Сообщение Дата
Eric Rahm a9afd68cef Bug 1165515 - Part 13-2: Replace usage of PRLogModuleLevel and PR_LOG_*. rs=froydnj
This is straightforward mapping of PR_LOG levels to their LogLevel
counterparts:
  PR_LOG_ERROR   -> LogLevel::Error
  PR_LOG_WARNING -> LogLevel::Warning
  PR_LOG_WARN    -> LogLevel::Warning
  PR_LOG_INFO    -> LogLevel::Info
  PR_LOG_DEBUG   -> LogLevel::Debug
  PR_LOG_NOTICE  -> LogLevel::Debug
  PR_LOG_VERBOSE -> LogLevel::Verbose

Instances of PRLogModuleLevel were mapped to a fully qualified
mozilla::LogLevel, instances of PR_LOG levels in #defines were mapped to a
fully qualified mozilla::LogLevel::* level, and all other instances were
mapped to us a shorter format of LogLevel::*.

Bustage for usage of the non-fully qualified LogLevel were fixed by adding
|using mozilla::LogLevel;| where appropriate.
2015-06-01 22:17:33 -07:00
Eric Rahm 7ac2b84d0c Bug 1165515 - Part 7: Convert PR_LOG_DEBUG + 1 to PR_LOG_VERBOSE. rs=froydnj
Used the command: |sed -E -i -e 's/PR_LOG_DEBUG\s*\+\s*1/PR_LOG_VERBOSE/g'|
2015-06-01 22:17:24 -07:00
Wes Kocher 4e9f80ed2e Backed out 14 changesets (bug 1165515) for b2g mochitest-6 permafail CLOSED TREE
Backed out changeset 9b97e2aa2ed9 (bug 1165515)
Backed out changeset 150606c022a2 (bug 1165515)
Backed out changeset 4e875a488349 (bug 1165515)
Backed out changeset 467e7feeb546 (bug 1165515)
Backed out changeset d6b6cc373197 (bug 1165515)
Backed out changeset 0615265b593c (bug 1165515)
Backed out changeset fafd1dce9f08 (bug 1165515)
Backed out changeset d1df869245f9 (bug 1165515)
Backed out changeset 6876a7c63611 (bug 1165515)
Backed out changeset b7841c94a9a3 (bug 1165515)
Backed out changeset e5e3617f7c73 (bug 1165515)
Backed out changeset 39be3db95978 (bug 1165515)
Backed out changeset 0ec74176f8de (bug 1165515)
Backed out changeset 5b928dd10d71 (bug 1165515)
2015-06-01 17:57:58 -07:00
Eric Rahm f82c0e7caf Bug 1165515 - Part 13-2: Replace usage of PRLogModuleLevel and PR_LOG_*. rs=froydnj
This is straightforward mapping of PR_LOG levels to their LogLevel
counterparts:
  PR_LOG_ERROR   -> LogLevel::Error
  PR_LOG_WARNING -> LogLevel::Warning
  PR_LOG_WARN    -> LogLevel::Warning
  PR_LOG_INFO    -> LogLevel::Info
  PR_LOG_DEBUG   -> LogLevel::Debug
  PR_LOG_NOTICE  -> LogLevel::Debug
  PR_LOG_VERBOSE -> LogLevel::Verbose

Instances of PRLogModuleLevel were mapped to a fully qualified
mozilla::LogLevel, instances of PR_LOG levels in #defines were mapped to a
fully qualified mozilla::LogLevel::* level, and all other instances were
mapped to us a shorter format of LogLevel::*.

Bustage for usage of the non-fully qualified LogLevel were fixed by adding
|using mozilla::LogLevel;| where appropriate.
2015-06-01 14:31:01 -07:00
Eric Rahm 82553a3fab Bug 1165515 - Part 7: Convert PR_LOG_DEBUG + 1 to PR_LOG_VERBOSE. rs=froydnj
Used the command: |sed -E -i -e 's/PR_LOG_DEBUG\s*\+\s*1/PR_LOG_VERBOSE/g'|
2015-06-01 14:31:00 -07:00
Bobby Holley 15e573e813 Bug 1168008 - Get rid of RefableThen and make Then return an nsRefPtr<Consumer>. r=jww
This incurs an extra addref here and there, but I think it makes the API simpler
to use and understand.
2015-05-28 16:03:06 -07:00
JW Wang 341b29f73c Bug 1163467. Part 6 - refactor MediaDecoder::AddOutputStream and move related code to MediaDecoderStateMachine. r=roc. 2015-05-28 14:17:30 +08:00
JW Wang 66e3c00ee3 Bug 1163467. Part 5 - move MediaDecoder::UpdateStreamBlockingForPlayState to MediaDecoderStateMachine. r=roc. 2015-05-28 14:16:59 +08:00
JW Wang f6643b3d27 Bug 1163467. Part 4 - move MediaDecoder::UpdateStreamBlockingForStateMachinePlaying to MediaDecoderStateMachine. r=roc. 2015-05-28 14:16:42 +08:00
Benjamin Chen f753eac42e Bug 1102047 - Reset the value to AUDIO_DURATION_USECS or re-calculate if the remainingTime is negtive. Schedule the state machine at the first video sample pushed into the queue. r=jwwang
--HG--
extra : rebase_source : ee999d2507938780166771a49dd2e05eaeb5badc
2015-05-13 18:21:09 +08:00
Jean-Yves Avenard ec1e982d32 Bug 1166836: Part4. Don't unecessarily call GetBuffered(). r=cpearce
Regression was introduced in 24a7f0fda98b (bug 1163445)

--HG--
extra : rebase_source : 1fb81d07f0c8d312d54ae24624735015e6a372a6
2015-05-23 11:16:12 +10:00
Eric Rahm 3925a960aa Bug 1165515 - Part 1: Convert PR_LOG to MOZ_LOG. r=froydnj 2015-05-21 13:22:04 -07:00
Jean-Yves Avenard 54a681396b Bug 1163445: Part5. Replace dom::TimeRanges with TimeIntervals object. r=mattwoodrow 2015-05-18 16:15:47 +10:00
JW Wang f34e30b2c4 Bug 1163469 - Move MediaDecoder::DecodedStreamData and related code to its own file. r=roc. 2015-05-10 11:38:15 +08:00
Benjamin Chen e7bed7a4c5 Bug 1140995 - Part 1 - At end of stream, send the last video frame to decoded stream with deviation usec if the last video frame's duration is 0. r=jwwang
--HG--
extra : rebase_source : 4aedc130f6ce2e350836accdd9b6b1e6d0e8706c
2015-04-22 18:19:19 +08:00
Eric Rahm 34f99e4b4c Bug 1163201 - Part 1: Remove instances of #ifdef PR_LOGGING in dom/. r=froydnj
PR_LOGGING is now always defined, we can remove #ifdefs checking for it.
2015-05-14 10:13:23 -07:00
JW Wang fc64b939e2 Bug 1164297 - tweaks to logging modules of MediaDecoderStateMachine to remove accessing to env vars. r=cpearce. 2015-05-14 10:15:05 +08:00
Bobby Holley 22d027c1ad Bug 1162803 - Mirror playback position. r=jww,r=sotaro 2015-05-11 11:16:07 -07:00
Bobby Holley dfe00bd036 Bug 1162803 - Rename mCurrentFrameTime to mCurrentPosition to better match the naming in the spec. r=jww
This field corresponds to the "current playback position" in HTML5.
2015-05-11 11:16:06 -07:00
Karl Tomlinson 69631c815f bug 1161892 use separate thread pool for platform decoder task queues r=bholley
so that platform decoder tasks will run when their readers wait and block
their thread pool.

--HG--
extra : rebase_source : 6d2e3f1c1937991d746ea9754f39add4d184e413
2015-05-07 16:01:43 +12:00
Bobby Holley aec6ecb986 Bug 1161901 - Sprinkle more assertions and fix some formatting. r=jww 2015-05-07 09:50:37 -07:00
Bobby Holley 973ebd793d Bug 1161901 - Make MDSM::ScheduleStateMachine runs on the state machine task queue only. r=jww 2015-05-07 09:50:35 -07:00
Bobby Holley cd2504ba20 Bug 1161901 - Relax assertion. r=jww 2015-05-07 09:47:40 -07:00
Bobby Holley 0254272b18 Bug 1161901 - Hoist MDSM shutdown logic into MDSM::Shutdown and remove brittle requirement that RunStateMachine only happen once in SHUTDOWN state. r=jww 2015-05-07 09:47:40 -07:00
Bobby Holley a80e689d0c Bug 1161901 - Use ProxyMediaCall instead of MDSM::ShutdownReader. r=jww 2015-05-07 09:47:39 -07:00
Bobby Holley 1040d06746 Bug 1161901 - Dispatch MediaDecoderReader::SetIdle directly. r=jww 2015-05-07 09:47:39 -07:00
Sotaro Ikeda aef8cc58bd Bug 1158448 Part 2 - Remove ApplyStateToStateMachine and PLAY_STATE_SEEKING r=jwwang,bwu 2015-05-07 08:19:46 -07:00
Sotaro Ikeda 1c5c106f78 Bug 1158448 Part 1 - Replace MDSM::Play with a state-watcher on mPlayState and eliminate ApplyStateToStateMachine. r=sotaro 2015-05-07 08:19:33 -07:00
Bobby Holley 40d7f5a524 Bug 1161742 - Use lambdas for Seek. r=jww 2015-05-05 21:04:30 -07:00
Bobby Holley c6b81175c2 Bug 1161742 - Use lambdas for WaitForData. r=jww 2015-05-05 21:02:59 -07:00
Bobby Holley 7e4411d3ff Bug 1159974 - Dispatch SetMinimizePrerollUntilPlabackStarts. r=jww 2015-05-04 11:04:48 -07:00
Bobby Holley 598c3289ab Bug 1159974 - Dispatch SetAudioCaptured. r=jww
While we're at it, I figured it was time to experiment with lambdas. :-)
2015-05-04 11:04:47 -07:00
Bobby Holley d4519a33a2 Bug 1159974 - Mirror mPreservesPitch. r=jww 2015-05-04 11:04:47 -07:00
Bobby Holley d594a72f36 Bug 1159974 - Mirror mPlaybackRate. r=jww 2015-05-04 11:04:46 -07:00
Bobby Holley 49578f1914 Bug 1159974 - Mirror mVolume. r=jww 2015-05-04 11:04:45 -07:00
Bobby Holley a56c0c760e Bug 1159974 - Assert that we're on the state machine thread for most remaining MDSM methods. r=jww
There are a handful of methods where we can't yet assert this. This bug will
tackle several of them.
2015-05-04 11:04:45 -07:00
Jean-Yves Avenard df6daad9ba Bug 1157075: Part1. Rename and make AsyncReadMetadata virtual. r=bholley 2015-05-01 15:37:29 +10:00
Bobby Holley 75cd0709f1 Bug 1160064 - Give WatchManager an owner thread and make sure everything happens there. r=jww 2015-04-30 21:29:50 -07:00
Bobby Holley a6a1df6eb5 Bug 1160064 - Do watching/mirroring initialization on the state machine task queue. r=jww
We take this as an opportunity to remove connect-during-initialization. Always
connecting from the owner thread feels like a stronger invariant.
2015-04-30 21:29:49 -07:00
Bobby Holley 1779f7bdee Bug 1160064 - Switch mirror/canonical initialization to happen in the constructor. r=jww
The goal here is to hoist all meaningful watcher/mirror/canonical manipulation
onto the owner thread. But since that must necessarily happen asynchronously,
we need to make sure that canonicals are in a sane state immediately upon
creation, since otherwise a mirror from another thread may attempt to connect to
a not-yet-initialized canonical.
2015-04-30 21:29:48 -07:00
Bobby Holley 9ef701b427 Bug 1160064 - Initialize the state machine task queue in the initializer list. r=jww 2015-04-30 21:29:46 -07:00
Bobby Holley 7ed6ae7327 Bug 1159558 - Redesign watching to use a manager. r=jww 2015-04-30 12:46:40 -07:00
Bobby Holley b4659584c3 Bug 1159558 - Eliminate initial notifies. r=jww
They've proven themselves to be a hassle, and I think we can live without them.
2015-04-30 12:46:38 -07:00
Bobby Holley cd25ae6fac Bug 1157803 - Mirror mPlayState and mNextState to the state machine task queue and eliminate cross-thread access. r=jww 2015-04-28 21:56:20 -07:00
Bobby Holley 23925f4fdc Bug 1157797 - Use state-watching machinery for UpdateNextFrameStatus. r=jww
The ergonomics here aren't ideal. I'm going to file a bug to improve them.
2015-04-27 21:20:41 -07:00
Bobby Holley 7a1c7f2705 Bug 1157797 - Be more disciplined about where we call UpdateNextFrameStatus. r=jww
This value depends on mState and the audio/video queue states. Given that, we can
just stick these calls in a few choke points.
2015-04-27 21:20:38 -07:00
L. David Baron 0984efab4d Bug 1157654 - Back out changeset e73f7d6a138d (bug 1140995) for frequent failures in dom/media/test/test_mediarecorder_getencodeddata.html . 2015-04-25 11:10:37 -07:00
Bobby Holley fbc2c98020 Bug 1144481 - Use state mirroring for NextFrameStatus. r=jww 2015-04-23 11:55:14 -07:00
Bobby Holley 59c37ea95f Bug 1144481 - Invoke SeekCompleted synchronously. r=jww
The current behavior is a holdover from when this some of this tuff was happening
on the decode thread. It's problematic because nothing guarantees that we don't
call CheckIfSeekComplete twice, and queue up two SeekCompleted events.
2015-04-23 11:55:12 -07:00
Benjamin Chen 74d5ffb032 Bug 1140995 - part1: At end of stream, send the last video frame to decoded stream with deviation usec if the last video frame's duration is 0. r=jwwang 2015-04-22 18:19:19 +08:00
Bobby Holley b99288ff18 Bug 1154805 - Stop manually passing TaskDispatchers everywhere. r=jww 2015-04-16 09:28:56 -07:00
Bobby Holley 1590c33115 Bug 1154805 - Remove MaybeTailDispatch. r=jww
This is now the default behavior.
2015-04-16 09:28:56 -07:00
Jean-Yves Avenard a7c51ce020 Bug 1153049: Part1. Merge MediaInfo and mp4_demuxer::TrackConfig. r=cpearce
--HG--
extra : rebase_source : 5387f4dbab91f354700361ff14daea33f3b56e2e
2015-04-14 15:15:46 +10:00
Blake Wu 079a5da49b Bug 1152218 - Have a larger tolerance to decide if video data is low or not. r=cpearce.
--HG--
extra : rebase_source : 4fedd13388c3a180df012ddd4ee46a0bf6a5de1e
2015-04-08 17:57:18 +08:00
Bobby Holley 72ad334118 Bug 1151656 - Use TailDispatch for the MDSM's task queue. r=mattwoodrow 2015-04-08 21:33:21 -07:00
Bobby Holley c71babaf43 Bug 1151656 - Stop doing sync dispatch of PlaybackEnded. r=mattwoodrow 2015-04-08 21:33:18 -07:00
Bobby Holley 1748d9ab1f Bug 1151656 - Add some more assertions. r=mattwoodrow 2015-04-08 21:33:17 -07:00
Bobby Holley 2350ad3591 Bug 1148571 - Dispatch AudioSink notifications asynchronously. r=jww 2015-04-08 11:37:18 -07:00
Bobby Holley 9abe3c0ae3 Bug 1150687 - Have callers pass an AbstractThread directly to promise APIs and remove wrapper-style AbstractThreads for MediaTaskQueue. r=jww 2015-04-06 11:09:27 -07:00
Kilik Kuo 2f18087b14 Bug 1146304 - Touch slider bar or tap forward button, the video got stuck 1s then resume playing. r=cpearce 2015-04-02 16:19:37 +08:00
Alastor Wu 5f4ff6530f Bug 1107534 - Using audio channels type to capture different stream. r=roc 2015-03-31 10:14:00 +08:00
Nicolas Silva 52be9f47b5 Bug 1132854 - Remove useless ThebesIntSize conversion helper. r=Bas 2015-03-29 16:59:15 +02:00
Bobby Holley 4666516a8c Bug 1145686 - Assert state machine thread for SetState. r=jww
We assert in CheckInDecodeComplete as well for good measure, since that's the
last caller of SetState that doesn't already assert it.
2015-03-27 16:26:03 -07:00
Bobby Holley 01705d6512 Bug 1145686 - Make MDSM::StartBuffering happen on the state machine thread. r=jww 2015-03-27 16:26:02 -07:00
Bobby Holley 896a455d03 Bug 1145686 - Make MDSM::Shutdown happen on the state machine thread. r=jww 2015-03-27 16:26:02 -07:00
Bobby Holley bf4c9334cc Bug 1144519 - Rename MDSM::OnDecodeThread to MDSM::OnDecodeTaskQueue. r=jya 2015-03-27 11:50:19 -07:00
Bobby Holley aa048233f5 Bug 1144519 - Rename OnStateMachineThread-like functions to reflect the fact that it's a task queue. r=jya 2015-03-27 11:50:19 -07:00
Bobby Holley 086ebaa957 Bug 1142336 - Create one unified thread pool for media code and run the MDSM task queues on it. r=mattwoodrow
This allows for parallel MDSM execution. \o/
2015-03-25 17:46:26 -07:00
Bobby Holley 35fe66ae8d Bug 1147495 - Add missing string to state list. r=me
--HG--
extra : histedit_source : b213ac7f814f5be5329c3dca83e59e47abe5844c
2015-03-25 11:59:46 -07:00
Bobby Holley 4e510c7517 Bug 1136827 - Stop synchronously dispatching MediaDecoder::DecodeError from MDSM::DecodeError. r=mattwoodrow
MediaDecoder::DecodeError invokes MediaDecoder::Shutdown, which shuts down the
state machine. Given the sync dispatch, this means that this is basically already
what's happening.
2015-03-24 22:02:43 -07:00
Bobby Holley e0a0c3cf07 Bug 1136827 - Stop proxying DecodeError to the decode thread. r=mattwoodrow
At this point, all the callers actually call it on the state machine thread,
where it belongs.
2015-03-24 22:02:36 -07:00
Bobby Holley 01abf4455d Bug 1136827 - Call OnAudioSinkError on state machine thread. r=jww 2015-03-24 22:02:02 -07:00
Wes Kocher 82959e5df3 Backed out 2 changesets (bug 1136827) for crashtest assertions CLOSED TREE
Backed out changeset 998f44ed19fb (bug 1136827)
Backed out changeset 3eb419228c1f (bug 1136827)
2015-03-24 17:21:21 -07:00
Bobby Holley bb1cc46dff Bug 1136827 - Stop synchronously dispatching MediaDecoder::DecodeError from MDSM::DecodeError. r=mattwoodrow
MediaDecoder::DecodeError invokes MediaDecoder::Shutdown, which shuts down the
state machine. Given the sync dispatch, this means that this is basically already
what's happening.
2015-03-24 15:01:48 -07:00
Bobby Holley 6aa248ee60 Bug 1136827 - Stop proxying DecodeError to the decode thread. r=mattwoodrow
At this point, all the callers actually call it on the state machine thread,
where it belongs.
2015-03-24 15:01:47 -07:00
Bobby Holley 16efc5f196 Bug 1145203 - Unify FlushDecoding, ResetDecode, and ResetPlayback into a single Reset() method. r=mattwoodrow 2015-03-23 17:07:10 -07:00
Bobby Holley 1e549f9ca5 Bug 1145203 - Remove the AwaitIdle call in FlushDecoding. r=mattwoodrow
There are two callers of FlushDecoding - One is shutdown (where we already use
promises to wait for the queue to go idle via BeginShutdown), and the other is
dormant (see the comment).
2015-03-23 17:07:09 -07:00
Bobby Holley 9487e1743a Bug 1136873 - Deliver NotifyWaitingForResourcesStatusChanged asynchronously on the state machine task queue. r=mattwoodrow
The previous setup is wacky, and can cause the notification to reach the state
machine before the promise rejection, which causes us to stall intermittently.
We also take the opportunity to be a bit less trigger happy when we fire it
in MediaSourceReader.cpp.
2015-03-23 13:17:52 -07:00
Bobby Holley 40a80320a6 Bug 1136873 - Use promises for metadata decoding. r=mattwoodrow 2015-03-23 13:17:51 -07:00
Jean-Yves Avenard 964b3518d3 Bug 1144617: Part1. Add MediaResource::IsLiveStream() API. r=cpearce
We can't just rely on the MediaResource size to be -1 with MSE. It needs a
dedicated method.
2015-03-23 21:08:05 +11:00
Edwin Flores 9a9b42ccdf Bug 1134434 - Fire loadedmetadata before encrypted event on encrypted MP4s - r=cpearce 2015-03-23 15:31:15 +13:00
Phil Ringnalda 0400bc353a Back out 59fd15407a79 (bug 1142336) for shutdown hangs
CLOSED TREE
2015-03-18 20:38:43 -07:00
Bobby Holley 7afd45ea42 Bug 1142336 - Create one unified thread pool for media code and run the MDSM task queues on it. r=mattwoodrow
This allows for parallel MDSM execution. \o/
2015-03-18 18:00:49 -07:00
Bobby Holley f4ba405552 Bug 1135424 - Run MDSM disposal off the MediaPromise returned by initiating shutdown on the task queue. r=mattwoodrow 2015-03-16 14:38:45 -07:00
Bobby Holley 53ad5b2a9c Bug 1135424 - Switch the MDSM to a task queue. r=mattwoodrow 2015-03-16 14:38:44 -07:00
Sotaro Ikeda 5bcb8e7249 Bug 1142527 - Always call ReleaseMediaResources() when entering dormant r=cpearce 2015-03-15 20:51:02 -07:00
Phil Ringnalda 345a4eca93 Back out 3 changesets (bug 1135424) on suspicion of causing frequent hangs in test_playback.html on mochitest-e10s
CLOSED TREE

Backed out changeset 584d91ffdf88 (bug 1135424)
Backed out changeset d86806ea63f4 (bug 1135424)
Backed out changeset e52401d30a67 (bug 1135424)
2015-03-12 23:05:11 -07:00
Bobby Holley 0563f41ef7 Bug 1135424 - Switch the MDSM to a task queue. r=mattwoodrow 2015-03-12 17:54:35 -07:00
Chris Double 17b0191dec Bug 1131884 - Video buffering calculation fails for some MP4 videos - r=jya
Playback position used in calculating buffering time is set
during metadata reading. This is at end of file for the
video in the bug. As a result the buffering data is always
wrong.

Changed to not setting position during metadata - it is set
during frame playback anyway.

Also changes buffering timeout to 15s from 30s.
2015-03-13 13:45:51 +13:00
Matt Woodrow 10ced0676b Bug 1131638 - Disable hardware decoding if too many frames are invalid. r=cpearce 2015-03-12 22:14:51 +13:00
Matt Woodrow c2badcb2ef Bug 1131638 - Record invalid frames as dropped for video playback stats. r=ajones 2015-03-12 22:14:04 +13:00
Jean-Yves Avenard 3a14d38778 Bug 1128380: Make AmpleVideoFrames calculation dynamic. r=cpearce 2015-03-09 14:17:30 +11:00
Jean-Yves Avenard ec19ab2505 Bug 1139380: Ensure all queued tasks are aborted when shutting down. r=cpearce 2015-03-06 16:49:00 +11:00
Bobby Holley 578cad549e Bug 1135170 - Rewrite the MediaDecoder-to-MediaDecoderStateMachine interface to be Promise-based. r=mattwoodrow 2015-03-06 19:17:07 -08:00
Bobby Holley 1dd7c91f68 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 e02c011cd4 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 d846586729 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 bf69dac697 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 243db68fec 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 df32aaa30e 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 3b78e1ecfd Bug 1135170 - Route queued seeks back through MDSM::Seek and eliminate MDSM::StartSeek. r=mattwoodrow 2015-03-06 19:16:54 -08:00
Carsten "Tomcat" Book 248ef21229 Backed out changeset 5d97bad42411 (bug 1128380) 2015-03-05 08:38:47 +01:00
Jean-Yves Avenard 370ed231e4 Bug 1128380: Make AmpleVideoFrames calculation dynamic. r=cpearce 2015-03-05 16:53:47 +11:00
Sotaro Ikeda 8268179262 Bug 1128357 patch 4: Asynchronize SetDormant() r=cpearce,bobbyholley 2015-03-04 17:34:46 -08:00
Sotaro Ikeda b3535ec3a6 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
JW Wang 321f48fe98 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 5adfdc7439 Bug 1127235 - refactor stream clock calculation in MediaDecoderStateMachine. r=roc. 2015-03-03 10:43:38 +08:00
Andreas Pehrson e1cd713962 Bug 1129263 - Part 3. Add tracks atomically when capturing from decoder. r=roc,jesup 2015-02-24 13:11:32 +08:00
Andreas Pehrson 2ca9e88578 Bug 1129263 - Part 2. Put hardcoded numeric TrackIDs in MediaInfo instead of DOMMediaStream. r=roc,jesup 2015-02-24 13:06:54 +08:00
Anthony Jones 69c0b09ad3 Bug 1138253 - Count dropped frames directly; r=cpearce 2015-03-03 17:46:48 +13:00
Bobby Holley 8ecafb0e29 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 d7ab5a9b0f 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 8955631001 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 ba77f2e511 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 5173a29934 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 3c7f735460 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
Kilik Kuo cbe28e8d8f Bug 1112438 - Make newCurrentFrameTime more accurate while seeking by checking audio & video timestamp boundary in addition. r=cpearce 2015-02-17 11:21:40 +08:00
Sotaro Ikeda 8d10939395 Bug 1133167 - Add CancelSeek call to FlushDecoding() r=cpearce,bholley 2015-02-17 07:50:49 -08:00
Chris Pearce ded330ee85 Bug 1125970 - Don't flush decode task queue in MediaDecoderStateMachine::FlushDecoding(). r=bholley 2015-02-16 09:03:26 -08:00
Bobby Holley d828efaed5 Bug 1126723 - Bail out of HasLowUndecodedData if we don't have a duration. v1 r=cpearce
GetEstimatedBufferedTimeRanges returns an empty range if the duration is -1.
2015-02-13 12:09:51 -08:00
Bobby Holley 40c886531c Bug 1126723 - Don't store bogus durations. v1 r=cpearce
The apple MP3 decoder passes in garbage for this particular live stream. Let's
validate our inputs.
2015-02-13 12:09:50 -08:00
Jean-Yves Avenard 7773a4f02e Bug 1130839: Seek to end of media if duration changed. r=cpearce
If the duration is changed such that the current playback position ends up
being greater than the time of the end of the media resource, then the user
agent must also seek to the time of the end of the media resource.
2015-02-12 18:53:53 +11:00
Bobby Holley 4209e9651f Bug 1129246 - Switch to MediaPromiseConsumerHolders for MDSM audio/video promises and remove RequestStatus. v3 r=cpearce 2015-02-09 11:34:38 -08:00
Bobby Holley a15ce311b8 Bug 1129523 - Use ProxyMediaCall for video decode tasks. r=cpearce,r=mattwoodrow 2015-02-04 17:12:51 -08:00
Chris Pearce eb27bb22f8 Bug 1123535 - Make dormant ResetPlayback assertion more lenient. r=jwwang 2015-02-04 10:17:28 +13:00
Sotaro Ikeda 16749fec58 Bug 1112519 - Clear mDropVideoUntilNextDiscontinuity when we do not seek r=cpearce 2015-02-03 12:53:12 -08:00
JW Wang 997ae89e39 Bug 1128411. Part 2 - call SendStreamData() in AdvanceFrame() to simplify the code of SendStreamData(). r=roc. 2015-02-02 13:58:31 +08:00
JW Wang 3ff6f200ed Bug 1128411. Part 1 - fix some bugs in MediaDecoderStateMachine::SendStreamData(). r=roc. 2015-02-02 13:53:54 +08:00
Phil Ringnalda ab3f3ffe2f Back out d28c88e9705d (bug 1128411)
CLOSED TREE
2015-02-02 20:37:49 -08:00
JW Wang 6616978c49 Bug 1128411. Part 2 - call SendStreamData() in AdvanceFrame() to simplify the code of SendStreamData(). r=roc. 2015-02-02 13:58:31 +08:00
Chris Pearce 98610dedd6 Bug 1127641 - Reduce MDSM video frame queue length when hardware accelerated. r=kentuckyfriedtakahe 2015-02-02 09:28:41 +13:00
JW Wang 99e95e2eff Bug 1127171 - Put mozCaptureStream operations in the same lock. r=roc 2015-01-28 18:57:00 -05:00
Chris Pearce 90912c2e6f Bug 1123535 - Don't hold decoder monitor while calling PreReadMetadata. r=kentuckyfriedtakahe 2015-01-29 21:50:48 +13:00
Chris Pearce 6a682696a6 Bug 1123535 - Run MediaDecoderReader::ReleaseMediaResources on decode task queue. r=jwwang 2015-01-21 18:02:27 +08:00
Sotaro Ikeda ead2712118 Bug 1125472 - Reset video request status on reset decode. r=cpearce 2015-01-29 21:50:20 +13:00
Carsten "Tomcat" Book 97952b7caa Backed out changeset fde8a287433b (bug 1125472) 2015-01-27 09:39:06 +01:00
Carsten "Tomcat" Book b5897b0a72 Backed out changeset b6bec74def09 (bug 1123535) 2015-01-27 09:39:04 +01:00
Carsten "Tomcat" Book c232714eb0 Backed out changeset f6da914b2a93 (bug 1123535) 2015-01-27 09:38:56 +01:00
Chris Pearce 6932daf12e Bug 1123535 - Don't hold decoder monitor while calling PreReadMetadata. r=kentuckyfriedtakahe 2015-01-27 19:30:11 +13:00
Chris Pearce ce1554bd89 Bug 1123535 - Run MediaDecoderReader::ReleaseMediaResources on decode task queue. r=jwwang 2015-01-21 18:02:27 +08:00
Chris Pearce 8dffdeedf3 Bug 1125472 - Don't flush decode task queue in MediaDecoderStateMachine::FlushDecoding(). r=bholley 2015-01-27 19:30:11 +13:00
Bobby Holley 0bd7caedde Bug 1124952 - Set request status to Pending in the special DecodeFirstFrame calls too. r=cpearce 2015-01-26 15:59:44 -08:00
Byron Campen [:bwc] 19a5029fa0 Bug 1123882: Fix case where offset != 0 r=derf
--HG--
extra : rebase_source : 8d0cc9a8b21eede927cb51e79e1857bc69fbea5d
2015-01-21 08:56:36 -08:00
Bobby Holley f2e2db81ac Bug 1121148 - Make QUICK_BUFFERING_LOW_DATA_USECS a member variable and adjust it appropriately. r=cpearce 2015-01-21 21:53:04 -08:00
Bobby Holley b398a95f3c Bug 1121148 - Move constants that we should not be using directly into a namespace. r=cpearce
This lets us avoid using them accidentally in place of their member-variable
equivalents.
2015-01-21 21:53:04 -08:00
Bobby Holley 3e322225c5 Bug 1123983 - Don't reset request status in MediaDecoderStateMachine::FlushDecoding. r=cpearce 2015-01-21 14:34:26 -08:00
Barbara Guida e664fe84a3 Bug 1122586 - Unbreak build on platforms missing std::llabs since bug 1073716. r=dholbert 2015-01-16 17:50:00 +01:00
Bobby Holley 986f783e03 Bug 1121692 - Make seeks cancelable. r=cpearce,r=mattwoodrow 2015-01-16 10:58:00 -08:00
Bobby Holley f5e1dd8c14 Bug 1121692 - Move the interesting seek state logic into DecodeSeek. r=mattwoodrow,r=cpearce
This is necessary so that we can call CancelSeek at the same moment we determine
that it needs to be called without round-tripping between threads.
2015-01-16 10:58:00 -08:00
Bobby Holley e814d359c3 Bug 1121692 - Remove unnecessary arguments to ::Seek. r=mattwoodrow,sr=cpearce 2015-01-16 10:57:59 -08:00