Closed Bug 1057201 Opened 10 years ago Closed 10 years ago

MP4Reader can get stuck in MP4Reader::Decode() somehow

Categories

(Core :: Audio/Video, defect)

29 Branch
x86_64
Windows 8.1
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla34

People

(Reporter: cpearce, Assigned: cpearce)

Details

Attachments

(1 file)

I discovered that MP4Reader can get the decode thread stuck in the "prevNumFramesOutput == data.mNumSamplesOutput" wait at the bottom of Decode(). Not sure how to repro, but I think it has something to do with seeking when the network is slow.
The problem is that MP4Reader::NotifyDataArrived() can dispatch an event to the audio/video task queues, and the MediaDataDecoders are assuming that only they dispatch to those task queues and they're using MediaTaskQueue.IsEmpty() to decide whether they've processed all their input. With the recent changes to GetBuffered(), that assumption is no longer valid.
Attached patch PatchSplinter Review
Don't use the decoder's task queues to update index.

I'll try to figure out a way to not make these visible inside MP4Reader at all on Monday. For now, here's the fix.
Attachment #8477214 - Flags: review?(ajones)
Attachment #8477214 - Flags: review?(ajones) → review+
https://hg.mozilla.org/mozilla-central/rev/e036df3c1caf
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla34
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: