Open Bug 1194088 Opened 9 years ago Updated 2 years ago

Remove DECODER_STATE_WAIT_FOR_RESOURCES from MDSM

Categories

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

defect

Tracking

()

People

(Reporter: ayang, Unassigned)

References

Details

After bug 1146086, it doesn't need to wait for resource on decoder based on PlatformDecoderModule. Except for some old playback engines, the WAIT_FOR_RESOURCE state can be removed from MDSM.


https://dxr.mozilla.org/mozilla-central/rev/9a6b1cc80245cb5a71d89bc9abd268a5ff20d53e/dom/media/MediaDecoderStateMachine.h#139
Priority: -- → P5
MSE uses WAITING_FOR_RESOURCES when a/v data is not available [1].
That causes problem when removing this state from MDSM.
Any suggestion?

[1] https://dxr.mozilla.org/mozilla-central/source/dom/media/MediaFormatReader.cpp#419
Flags: needinfo?(jyavenard)
We need to either:
1- rework the MediaDataDemuxer API so it doesn't resolve the init promise until it has all the data it needs
2- Implement a mechanism between the MediaSourceDemuxer and TrackBuffersManager so it can tell it when enough data is available to start processing the metadata. The difficulty here is that we do not want to introduce a reference cycle as this will cause massive leaks.

My guess is that 1 is the most elegant approach, albeit more work.

Let me take this one while I think about it a bit more
Assignee: nobody → jyavenard
Flags: needinfo?(jyavenard)
Actually we could have option 3:
Have the MediaFormatReader not resolve the metadata promise and have it wait until new data is available which would then re-attempt to init the demuxer.

This is likely the easiest and quickest solution.
Depends on: 1204407, 1204419
Depends on: 1204757
Assignee: jyavenard → nobody
Not taking it directly, as the remaining use for is for EME and waiting for the CDM to be ready.
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.