Assertion when switching buffers in MSE MP4 YouTube video

RESOLVED DUPLICATE of bug 1055904

Status

()

defect
P1
normal
RESOLVED DUPLICATE of bug 1055904
5 years ago
5 years ago

People

(Reporter: cajbir, Assigned: mattwoodrow)

Tracking

(Blocks 1 bug)

33 Branch
x86_64
Linux
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(Not tracked)

Details

Steps to Reproduce:

1) Play YouTube MSE MP4 video.
2) Switch playback bitrate to something other than what is playing
3) If playback continues repeat (2)

What should happen:

4) Playback continues

What happens:

5) Assertion is hit, playback thread dies and video looks stuck on buffering because of this:

-360270080[7f3fdcecec40]: MediaSourceReader(7f3fd7b44400)::SelectReader(102500000) newReader=7f3fc7cc6800 target not in ranges=[(100.000000, 101.958333)]
Assertion failure: HasVideo() && mPlatform && mVideo.mDecoder, at dom/media/fmp4/MP4Reader.cpp:541
Blocks: MSE
This appears to happen if TrackBuffer:EvictData calls RemoveDecoder. If I comment out the RemoveDecoder parts then the crash does not occur.
Fixing this as part of bug 1055904.
Assignee: nobody → cajbir.bugzilla
Depends on: 1055904
Not fixing this as part of bug 1055904 now.
Assignee: cajbir.bugzilla → matt.woodrow
Matt, kft recommended you look at this during the bug triage today. Are you able to reproduce?
This happens when we evict (and shutdown) a decoder that is still in use by MediaSourceReader (as mVideoReader).

MediaSourceReader can then call RequestVideoData on a reader that has been shutdown, and we get these errors/failures.

This should indeed be fixed by bug 1055904.
Confirmed that with the fix in bug 1055904 for checking if the reader is in use that the bug does not occur.
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → DUPLICATE
Duplicate of bug: 1055904
You need to log in before you can comment on or make changes to this bug.