Closed
Bug 1192694
Opened 10 years ago
Closed 10 years ago
mp4 playback can't leave dormant on gonk
Categories
(Core :: Audio/Video: Playback, defect)
Tracking
()
RESOLVED
FIXED
mozilla43
Tracking | Status | |
---|---|---|
firefox43 | --- | fixed |
People
(Reporter: ayang, Assigned: ayang)
References
Details
Attachments
(1 file, 2 obsolete files)
5.66 KB,
patch
|
ayang
:
review+
|
Details | Diff | Splinter Review |
When decoder enters dormant state before decoding first frame. It can't leave dormant state even set SetDormant(false) because mQueuedSeek is always there without transiting to mPendingSeek.
It's reproduced on gonk but I think the same problem may also exist on other platforms.
[1] https://dxr.mozilla.org/mozilla-central/rev/d6ea652c579992daa9041cc9718bb7c6abefbc91/dom/media/MediaDecoderStateMachine.cpp#1327
Comment 1•10 years ago
|
||
You can't enter dormant before decoding the first frame.
so how could you "decoder enters dormant state before decoding first frame" ?
Assignee | ||
Comment 2•10 years ago
|
||
The DispatchDecodeTasksIfNeeded() should not return when decoding first frame.
Attachment #8645592 -
Flags: review?(jwwang)
Assignee | ||
Comment 3•10 years ago
|
||
There must be a mochitest for dormant in gonk, somehow it doesn't work. checking...
Comment 4•10 years ago
|
||
Comment on attachment 8645592 [details] [diff] [review]
dispath_task_if_decoding_first_frame
Review of attachment 8645592 [details] [diff] [review]:
-----------------------------------------------------------------
::: dom/media/MediaDecoderStateMachine.cpp
@@ +1507,5 @@
> mState != DECODER_STATE_SEEKING) {
> return;
> }
>
> + if (mState == DECODER_STATE_DECODING && !IsDecodingFirstFrame() && mDecodingFrozenAtStateDecoding) {
80 columns formatting
Comment 5•10 years ago
|
||
Comment on attachment 8645592 [details] [diff] [review]
dispath_task_if_decoding_first_frame
Review of attachment 8645592 [details] [diff] [review]:
-----------------------------------------------------------------
https://hg.mozilla.org/mozilla-central/file/d6ea652c5799/dom/media/MediaDecoderStateMachine.cpp#l1261
I think we can just remove mDecodingFrozenAtStateDecoding which is an optimization to halt decoding when MDSM expect seek will happen immediately.
https://hg.mozilla.org/mozilla-central/file/d6ea652c5799/dom/media/MediaDecoderStateMachine.cpp#l1327
Since jya has kinda changed the timing to start seeking, MDSM now checks if there is a pending seek in StartDecoding(). This is exactly what mDecodingFrozenAtStateDecoding tries to optimize! Thanks to jya!
Attachment #8645592 -
Flags: review?(jwwang) → review-
Assignee | ||
Comment 6•10 years ago
|
||
Bug 1192733 for test case.
Assignee | ||
Comment 7•10 years ago
|
||
Attachment #8645592 -
Attachment is obsolete: true
Attachment #8645623 -
Flags: review?(jwwang)
Comment 8•10 years ago
|
||
Comment on attachment 8645623 [details] [diff] [review]
remove_mDecodingFrozenAtStateDecoding_in_MDSM
Review of attachment 8645623 [details] [diff] [review]:
-----------------------------------------------------------------
Thanks.
Attachment #8645623 -
Flags: review?(jwwang) → review+
Assignee | ||
Comment 9•10 years ago
|
||
Attachment #8645623 -
Attachment is obsolete: true
Attachment #8646258 -
Flags: review+
Assignee | ||
Comment 10•10 years ago
|
||
Keywords: checkin-needed
Updated•10 years ago
|
Keywords: checkin-needed
Comment 11•10 years ago
|
||
Status: NEW → RESOLVED
Closed: 10 years ago
status-firefox43:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla43
You need to log in
before you can comment on or make changes to this bug.
Description
•