Closed Bug 1068483 Opened 5 years ago Closed 5 years ago

Implement reopening a MediaSource after it has been ended


(Core :: Audio/Video, defect, P5)






(Reporter: cajbir, Assigned: cajbir)


(Blocks 1 open bug)



(3 files, 1 obsolete file)

This is spun from the test in bug 1064113 comment 8. When a MediaSource is at EndOfStream and an AppendBuffer is done we should get a new 'sourceopen' event and playback can continue.

This used to work as described in bug 1064113 but now fails with an NS_ERROR_FAILURE on the sb.AppendBuffer call that is made after the EndOfStream.

Failure occurs because mCurrentDecoder in TrackBuffer::AppendData is null.
Attached patch Test caseSplinter Review
Attached test fails with NS_ERROR_FAILURE as described in comment 0.
Looks like it failed when 1062657, 1065218 and 1065219 landed. Reverting those results in the test passing.
Note that it was only ever (partially) working by accident; reopening a MediaSource after it has been ended has not yet been implemented (per bug 1064113 comment 6).
Renamed bug to be clearer as described in comment 3.
Blocks: MSE
Summary: MSE sb.appendBuffer after an ms.endOfStream fails with NS_ERROR_FAILURE → Implement reopening a MediaSource after it has been ended
Tests the case where a mediasource is in the middle of a seek and an endOfStream occurs. The seek should wait and resume after an appendBuffer containing the required data occurs.
Attached patch wip patch (obsolete) — Splinter Review
Work in progress fix. Need to identify what to do for MediaSourceReader EOS. Tests attached here pass but running all mediasource tests hang.
Assignee: nobody → cajbir.bugzilla
Attached patch wipSplinter Review
Fixes test shutdown hang.
Attachment #8494205 - Attachment is obsolete: true
Currently tests pass except for intermittent failure on test_EndOfStreamAndAppend.html, line 35. This seems to be bug 1065215.
Depends on: 1065215
Blocks: ship-MSE
No longer blocks: 1000686
This has been fixed by 1120086
Closed: 5 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.