Commit Graph

90 Commits

Author SHA1 Message Date
Andreas Pehrson
80e35edf78 Bug 1113600 - Part 4. Handle switching directly from audio clock to stream clock. r=roc 2015-01-13 03:23:48 +08:00
Andreas Pehrson
a22a198c37 Bug 1113600 - Part 2. Handle setting a MediaStream sync point mid-playback. r=roc 2015-01-08 13:37:22 +08:00
Andreas Pehrson
a5b7750c02 Bug 1113600 - Part 1. Send stream data right away after adding an output stream. r=roc 2015-01-08 13:36:29 +08:00
Sotaro Ikeda
18b1606ac8 Bug 1112410 - Handle set dormant during seeking r=cpearce 2015-01-12 15:08:55 -08:00
JW Wang
1bb19d6931 Bug 1115505 - keep decoding to ensure the stream is initialized in the decode-to-stream case. r=roc 2014-12-25 01:26:00 +01:00
Matt Woodrow
972dde5588 Bug 1105066 - Make SeekPromise return the time we actually seeked to; r=kentuckyfriedtakahe 2015-01-12 10:57:14 +13:00
Chris Peterson
9e23388ca8 Bug 1118076 - Remove MOZ_THIS_IN_INITIALIZER_LIST. r=Waldo 2015-01-06 21:39:46 -08:00
Bobby Holley
8d967098a2 Bug 1120017 - Make the DispatchDecodeTasksIfNeeded path handle DECODER_STATE_DECODING_FIRSTFRAME. r=cpearce
Once we make MP4Reader reject with WAITING_FOR_DATA, we end up with the following scenario:

DecodeFirstFrame requests audio data, and then it gets rejected with WAITING_FOR_DATA.
So OnAudioNotDecided does WaitForData, which eventually causes us to be called back in
MediaDecoderStateMachine::WaitForDataResolved. That does DispatchDecodeTasksIfNeeded, which
currently bails out of our state is DECODER_STATE_DECODING_FIRSTFRAME.

The other way to do this would be to add a separate specialized path through all this
asynchronicity for DECODER_STATE_DECODING_FIRSTFRAME. But it's not clear to me what that
buys us.
2015-01-09 17:20:58 -08:00
Jonathan Hao
e56901c3a0 Bug 1080461 - Part 2: Fix RTSP autoplay. r=bechen, r=jwwang 2015-01-06 09:58:04 +08:00
Jonathan Hao
a29a94eff5 Bug 1080461 - Part 1: Add IsRealTime() in MediaDecoderStateMachine. r=bechen, r=jwwang 2015-01-06 09:57:53 +08:00
Bobby Holley
81fc7d1d4b Bug 1114840 - Don't start playback during prerolling. r=cpearce 2014-12-29 23:16:48 -08:00
Bobby Holley
c3291e8b61 Bug 1114840 - Dynamically compute preroll thresholds. r=cpearce
Currently, the preroll threshold ends up higher than the ample threshold in the
audio-only case where we slash the audio thresholds by a factor of 8. The best
way to avoid these sorts of bugs is to compute the values dynamically.
2014-12-29 23:16:48 -08:00
Bobby Holley
01990f4d69 Bug 1114840 - Hoist arms-length conditions and rename StartPlayback() to MaybeStartPlayback(). r=cpearce 2014-12-29 23:16:48 -08:00
Bobby Holley
1eefb9ac1f Bug 1114840 - Use StartDecoding() rather than SetState in PlayInternal. r=cpearce
This makes sure that decode tasks are dispatched and that all the preroll state
is appropriately set up.
2014-12-29 23:16:48 -08:00
Bobby Holley
680cba307f Bug 1114840 - Make MediaDecoderStateMachine::Play run on the state machine thread. r=cpearce
We want to invoke StartDecoding() from Play, but that calls into a bunch of stuff
that asserts that we're on the state machine thread. It's not clear to me whether
that's actually necessary, but this seems like the right thing to do regardless
given that this is all supposed to be async anyway.
2014-12-29 23:16:48 -08:00
Bobby Holley
51e382d00c Bug 1114830 - Only enter buffering mode when the pending request is waiting for data. r=cpearce a=philor 2014-12-22 20:54:01 -08:00
Bobby Holley
f01bb671ea Bug 1109437 - Only switch to buffering mode when the reader is waiting for data. r=cpearce 2014-12-22 00:20:31 -08:00
Bobby Holley
49601684ad Bug 1109437 - Implement non-polling buffering. r=cpearce 2014-12-22 00:20:31 -08:00
Bobby Holley
17a26db299 Bug 1109437 - Switch m{Audio,Video}RequestPending to a tri-state. r=cpearce 2014-12-22 00:20:31 -08:00
Bobby Holley
663679c83b Bug 1109437 - Stop using buffering heuristics when they're not requested. r=cpearce
Given that we set the buffering wait to 0 in this case already, the only practical
impact on our behavior of this change is that we'll no longer ping-pong between
states.
2014-12-22 00:20:30 -08:00
Bobby Holley
05224076bc Bug 1109437 - Generalize GetBufferingWait to UseBufferingHeuristics. r=cpearce 2014-12-22 00:20:30 -08:00
Benjamin Chen
d676e9ef65 Bug 1091992 - fix the flag skipToNextKeyFrame in DecodeVideo can't be raised if the video is slower than audio. r=cpearce, r=jwwang 2014-12-22 11:32:31 +08:00
Matt Woodrow
675718e2ea Bug 1112446 - Add logging for media queue lengths. r=ajones 2014-12-18 12:41:19 +13:00
Matt Woodrow
646b842413 Bug 1111413 - Part 2: Remove RequestSampleCallback. r=bholley 2014-12-16 23:08:42 +13:00
Matt Woodrow
2c7e571767 Bug 1111413 - Part 1: Use MediaPromises for seeking. r=bholley 2014-12-16 22:52:57 +13:00
Alfredo Yang
b140d759be Bug 1105209 - Add media resource request API. r=kentuckyfriedtakahe 2014-12-15 22:25:00 -05:00
Alastor Wu
50d890e0f7 Bug 1100803 - Re-create a decoded media stream if necessary. r=roc 2014-12-15 09:22:15 +08:00
Sotaro Ikeda
e32c11d714 Bug 1108728 - Remove dormant related state from MediaDecoder r=cpearce 2014-12-12 17:29:24 -08:00
Bobby Holley
da72b3891c Bug 1109954 - Make resolve/reject values optional in callback signatures. r=cpearce 2014-12-12 14:22:23 -08:00
Bobby Holley
ed81da5593 Backed out changeset 89c9d42ef78e (bug 1109954) for colliding with bug 1108701 on a CLOSED TREE. 2014-12-10 22:56:09 -08:00
Bobby Holley
6ec9fa2dd8 Bug 1109954 - Make resolve/reject values optional in callback signatures. r=cpearce 2014-12-10 22:38:33 -08:00
Bobby Holley
60c0158fdd Bug 1108701 - Use MediaPromises for RequestAudioData and RequestVideoData. r=cpearce 2014-12-10 14:03:56 -08:00
Bobby Holley
312651fc98 Bug 1108707 - Make reader shutdown asynchronous. r=cpearce (relanding on a CLOSED TREE because it wasn't the source of the leaks) 2014-12-09 11:43:21 -08:00
Ryan VanderMeulen
073573c2a9 Backed out changeset 18c302f80bce (bug 1108707) for nsTArray_base leaks.
CLOSED TREE
2014-12-09 15:49:38 -05:00
Bobby Holley
fc5e0383a6 Bug 1108707 - Make reader shutdown asynchronous. r=cpearce 2014-12-09 11:43:21 -08:00
Bobby Holley
8c9d29f7fe Bug 1097823 - Move NotDecodedReason from RequestSampleCallback to MediaDecoderReader. r=cpearce 2014-12-08 14:45:36 -08:00
Ryan VanderMeulen
0aae88bf85 Backed out changesets ae63e2dda6e0, a9ca0113db3c, and d0a6757e24bd (bug 1097823) for bustage.
DONTBUILD CLOSED TREE
2014-12-08 15:00:02 -05:00
Bobby Holley
7aa1467674 Bug 1097823 - Move NotDecodedReason from RequestSampleCallback to MediaDecoderReader. r=cpearce 2014-12-08 11:34:50 -08:00
Andreas Pehrson
27ed59b426 Bug 1106963 - Resync media stream clock before destroying decoded stream. r=roc 2014-12-04 19:29:00 +01:00
Bobby Holley
aa27b00ccd Backed out changeset c405b4271e64 (bug 1097823) 2014-12-07 17:09:12 -08:00
Bobby Holley
8327697375 Backed out changeset b76636e9f49a (bug 1097823) 2014-12-07 17:09:08 -08:00
Bobby Holley
61900e1d2d Bug 1097823 - Use MediaPromises for RequestAudioData and RequestVideoData. r=cpearce 2014-12-07 11:21:35 -08:00
Bobby Holley
14e9457ae3 Bug 1097823 - Move NotDecodedReason from RequestSampleCallback to MediaDecoderReader. r=cpearce 2014-12-07 11:21:34 -08:00
Bobby Holley
dba2651569 Bug 1104964 - Make MediaDecoderReader own the task queue. r=cpearce 2014-12-01 21:51:03 -08:00
Bobby Holley
38d5cddf88 Bug 1104964 - Split shutdown initiatation and queue-drain-waiting into separate pieces. r=cpearce
This patch shouldn't change any behavior. The upcoming patch takes advantage of
these separate pieces.
2014-12-01 21:51:02 -08:00
Carsten "Tomcat" Book
f402e297e0 Backed out changeset 9f013d802a78 (bug 1091992) for Android m5 test failures 2014-11-28 10:33:02 +01:00
Benjamin Chen
0d2cda6949 Bug 1091992 - fix the flag skipToNextKeyFrame in DecodeVideo can't be raised if the video is slower than audio. r=cpearce, r=jwwang 2014-11-26 18:38:38 +08:00
Andreas Pehrson
b30333304c Bug 1103848 - Part 2. Use a single source for audio/video track ID constants. r=roc 2014-11-26 21:09:00 +01:00
Chris Pearce
e8e248c3de Bug 1104101 - Ensure we always set mVideoDecodeStartTime when calling RequestVideoData. r=kinetik 2014-11-26 15:39:11 +13:00
JW Wang
fb266a4b4c Bug 1098668 - remember the end time of the last decoded audio sample so that HasLowUndecodedData doesn't need to peek AudioQueue or query AudioClock. r=cpearce 2014-11-20 22:24:00 +01:00