Commit Graph

80 Commits

Author SHA1 Message Date
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
70685709f1 Bug 1144519 - Rename MediaDecoder::OnDecodeThread to MediaDecoder::OnDecodeTaskQueue. r=jya 2015-03-27 11:50:21 -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
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
Ehsan Akhgari
883849ee32 Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj
This patch was automatically generated using the following script:

function convert() {
echo "Converting $1 to $2..."
find . \
       ! -wholename "*/.git*" \
       ! -wholename "obj-ff-dbg*" \
         -type f \
      \( -iname "*.cpp" \
         -o -iname "*.h" \
         -o -iname "*.c" \
         -o -iname "*.cc" \
         -o -iname "*.idl" \
         -o -iname "*.ipdl" \
         -o -iname "*.ipdlh" \
         -o -iname "*.mm" \) | \
    xargs -n 1 sed -i -e "s/\b$1\b/$2/g"
}

convert MOZ_OVERRIDE override
convert MOZ_FINAL final
2015-03-21 12:28:04 -04:00
Daniel Holbert
082fd9cd7f Bug 1142841: Convert all nsRefPtr<nsIRunnable> to nsCOMPtr<nsIRunnable>. r=ehsan
This patch was generated by a script.  Here's the source of the script for
future reference:

find . \( -iname "*.cpp" -o -iname "*.h" \) | \
  xargs -n 1 sed -i "s/nsRefPtr<nsIRunnable>/nsCOMPtr<nsIRunnable>/g"
2015-03-17 09:29:17 -07:00
Bobby Holley
53ad5b2a9c Bug 1135424 - Switch the MDSM to a task queue. r=mattwoodrow 2015-03-16 14:38:44 -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
Karl Tomlinson
96611b45a9 bug 1139874 check for shutdown before asking the reader for buffered r=bholley
--HG--
extra : rebase_source : cbc7f06a89dfbaf22eb590c51ba709a4757296d0
2015-03-10 09:53:31 +13: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
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
845ad750dc 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
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
Sotaro Ikeda
e6e88f1872 Bug 1128357 Patch 1 - Add extra dormant logging r=bobbyholley 2015-03-04 17:32:54 -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
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
Chris Double
3fc47297c7 Bug 1119947 - Add telemetry for MSE video playback - r=cpearce,bsmedberg
This adds telemetry to record the state of the video playback
when the user exits. We are interested in knowing if the video
was buffering, paused, seeking, ended or other.

More telemetry will be added in bug 1127646.
2015-02-20 13:46:56 +13:00
JW Wang
42b559fb41 Bug 1128420 - remove finished output streams from MediaDecoder::mOutputStreams. r=roc. 2015-02-10 10:45:41 +08:00
Nicholas Nethercote
242708cf72 Bug 1127201 (attempt 2, part 1) - Replace most NS_ABORT_IF_FALSE calls with MOZ_ASSERT. r=Waldo.
--HG--
extra : rebase_source : 488e401ff87e31a2074c4108c4df0572d9536667
2015-02-09 14:34:50 -08:00
Matthew Gregan
1fa4d0508d Bug 1130923 - Remove some DASHDecoder remnants: RestrictedAccessMonitor and GetByteRangeForSeek. r=cpearce 2015-02-10 11:59:20 +13:00
Andrew McCreight
d3826daa16 Back out Bug 1127201 (part 2) for various problems. 2015-02-06 15:04:32 -08:00
Nicholas Nethercote
d34f0301b8 Bug 1127201 (part 2) - Convert all NS_ABORT_IF_FALSE calls to MOZ_ASSERT. r=Waldo.
--HG--
extra : rebase_source : 99182e70335d2b5ff95f8c528ae992d37294be3a
2015-02-04 20:05:36 -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
JW Wang
99e95e2eff Bug 1127171 - Put mozCaptureStream operations in the same lock. r=roc 2015-01-28 18:57:00 -05:00
Bobby Holley
1857056827 Bug 1120241 - Schedule the state machine when setting logical decoder state. r=cpearce 2015-01-29 22:16:28 -08:00
Sotaro Ikeda
4c24c6b995 Bug 1123452 - Try to enter dormant state when document is hidden r=cpearce 2015-01-28 06:31:31 -08:00
Ryan VanderMeulen
6705017b40 Backed out changeset fad4fd21ab1d (bug 1123452) for Windows w-p-t failures and Linux mochitest orange.
CLOSED TREE
2015-01-27 22:00:41 -05:00
Sotaro Ikeda
4213600de8 Bug 1123452 - Make Mp4Reader enter dormant state when it is idle and its document is hidden. r=cpearce 2015-01-28 13:56:58 +13:00
Carsten "Tomcat" Book
67dca2efae Backed out changeset 304e3ccaf533 (bug 1123452) for windows crashtest bustage on a CLOSED TREE 2015-01-27 09:39:41 +01:00
Sotaro Ikeda
d0a7d92c04 Bug 1123452 - Make Mp4Reader enter dormant state when it is idle and its document is hidden. r=cpearce 2015-01-27 19:30:11 +13:00
Sotaro Ikeda
4f70eb3f49 Bug 1124957 - Fix typo of Dormant r=cpearce 2015-01-23 07:00:39 -08:00
Sotaro Ikeda
4f96a3066c Bug 1122228 - Use document's status change to trigger MediaDecoderStateMachine's dormant status change r=cpearce 2015-01-21 20:01:12 -08:00
Karl Tomlinson
bf16b65e70 bug 1123189 Queue "durationchange" instead of dispatching synchronously r=cpearce
http://www.w3.org/TR/2014/REC-html5-20141028/embedded-content-0.html#offsets-into-the-media-resource

"When the length of the media resource changes to a known value (e.g. from
being unknown to known, or from a previously established length to a new
length) the user agent must queue a task to fire a simple event named
durationchange at the media element."

--HG--
extra : rebase_source : 531ed14a241546613cf810cd6bf9b4a8c88d2d9e
extra : histedit_source : 86253e972d1dbb8f95af5167eb7487c1ddf6da14
2015-01-19 17:11:43 +13:00
Bobby Holley
986f783e03 Bug 1121692 - Make seeks cancelable. r=cpearce,r=mattwoodrow 2015-01-16 10:58:00 -08:00
Sotaro Ikeda
e662668d12 Bug 1110343 - Suppress redundant loadedmetadata event when dormant exit r=cpearce 2015-01-16 07:56:19 -08:00
Sotaro Ikeda
8ebcff8383 Bug 1121658 - Remove DestroyDecodedStream() from MediaDecoder::SetDormantIfNecessary() r=roc 2015-01-16 06:56:14 -08:00
Jonathan Hao
e56901c3a0 Bug 1080461 - Part 2: Fix RTSP autoplay. r=bechen, r=jwwang 2015-01-06 09:58:04 +08:00
Karl Tomlinson
98e1dfd45e bug 975782 bring media resource loads out of background while they delay the load event r=cpearce
This will happen after a stalled load doesn't delay the load event but such a
load then delays the load event again when it receives progress.

--HG--
extra : rebase_source : a04dd7416f86306cfc62aabba20fb30415572d98
2014-12-23 14:16:05 +13:00
Alastor Wu
b357dcd13a Bug 1105913 - [b2g] video can't playback after waking up from the dormant state, part 2 : revert changeset. r=roc. 2014-12-23 15:03:15 +08:00
Alastor Wu
35e5ba65a8 Bug 1105913 - [b2g] video can't playback after waking up from the dormant state, part 1 : avoid blocking. r=roc. 2014-12-23 15:04:20 +08:00
Jonathan Hao
4871501fd9 Bug 1111518 - Fix the logic in MediaDecoder::CanPlayThrough(). r=jwwang 2014-12-17 15:05:40 +08:00
Alastor Wu
50d890e0f7 Bug 1100803 - Re-create a decoded media stream if necessary. r=roc 2014-12-15 09:22:15 +08:00
Alastor Wu
bf3526619d Bug 1100803 - Avoid repeated deletion of media ports. r=roc 2014-12-11 10:53:00 +08:00