Closed Bug 1467488 Opened 7 years ago Closed 5 years ago

Calling HTMLMediaElement.seekToNextFrame while playing results in crash

Categories

(Core :: Audio/Video: Playback, defect, P2)

defect

Tracking

()

RESOLVED WORKSFORME
Tracking Status
firefox-esr60 --- wontfix
firefox60 --- wontfix
firefox61 --- wontfix
firefox62 --- wontfix

People

(Reporter: bryce, Assigned: bryce)

References

Details

Repros with following example: <html> <head> <script> async function start() { await document.getElementById('video').play(); await new Promise(resolve => setTimeout(resolve, 100)); for (let i = 0; i < 10; i++) { try { await document.getElementById('video').seekToNextFrame(); console.log("sTNF resolved!"); } catch (e) { console.log("sTNF rejected!"); } } } window.addEventListener('load', start); </script> </head> <body> <video id='video' src='https://hg.mozilla.org/mozilla-central/raw-file/tip/dom/media/test/bipbop_480wp_663kbps.mp4'> </body> </html> I believe this is due to how we handle transition from DecodingState to CompletedState in the MediaDecoderStateMachine. We have a check[0] that appears to shift us to completed state due to seeking to next frame messing with our time. We then receive data in the completed state and crash[1]. We should adjust this so either the seek can work, or we don't attempt to seek if it will lead to this issue. [0]: https://searchfox.org/mozilla-central/rev/cf464eabfeba64e866c1fa36b9fefd674dca9c51/dom/media/MediaDecoderStateMachine.cpp#2356 [1]: https://searchfox.org/mozilla-central/rev/cf464eabfeba64e866c1fa36b9fefd674dca9c51/dom/media/MediaDecoderStateMachine.cpp#181
Rank: 15
Priority: -- → P2

No longer repros, not sure what fixed this. I had some WIP for that I wanted to see if I can prune and it looks like I can.

Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.