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)

ARM
Gonk (Firefox OS)
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla43
Tracking Status
firefox43 --- fixed

People

(Reporter: ayang, Assigned: ayang)

References

Details

Attachments

(1 file, 2 obsolete files)

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
Blocks: 1123246
You can't enter dormant before decoding the first frame. so how could you "decoder enters dormant state before decoding first frame" ?
The DispatchDecodeTasksIfNeeded() should not return when decoding first frame.
Attachment #8645592 - Flags: review?(jwwang)
There must be a mochitest for dormant in gonk, somehow it doesn't work. checking...
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 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-
Bug 1192733 for test case.
Attachment #8645592 - Attachment is obsolete: true
Attachment #8645623 - Flags: review?(jwwang)
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+
Attachment #8645623 - Attachment is obsolete: true
Attachment #8646258 - Flags: review+
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla43
See Also: → 1195164
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: