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)
Core
Audio/Video: Playback
Tracking
()
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
| Assignee | ||
Updated•7 years ago
|
Assignee: nobody → bvandyk
status-firefox60:
--- → affected
status-firefox61:
--- → affected
status-firefox62:
--- → affected
status-firefox-esr60:
--- → affected
See Also: → 1450845
Updated•7 years ago
|
Rank: 15
Priority: -- → P2
| Assignee | ||
Comment 1•5 years ago
|
||
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
Updated•4 years ago
|
You need to log in
before you can comment on or make changes to this bug.
Description
•