Closed Bug 1764478 Opened 2 years ago Closed 2 years ago

When in-band changes are detected in video streams, playback will never attempt to switch back to hardware-acceleratedplayback.

Categories

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

Firefox 101
Desktop
Windows
defect

Tracking

()

RESOLVED FIXED
101 Branch
Tracking Status
firefox101 --- fixed

People

(Reporter: Zaggy1024, Assigned: Zaggy1024)

References

(Regressed 1 open bug)

Details

Attachments

(2 files)

Due to the fact that MediaChangeMonitor caches the PDM that the PDMFactory created for it, as well as whatever PDM it detects later on is usable, if agnostic decoders do not fail to decode, it will never switch to hardware accelerated playback again.

For example, in a video where initially, hardware acceleration is supported, but then the codec configuration changes to an unsupported config for hardware, MediaChangeMonitor will set the PDM to the agnostic one. After that, if playback encounters another codec configuration that supports hardware playback, it will request a new decoder, but then reuse the same PDM.

Because hardware decoders reside in the GPU process, whereas agnostic ones reside in RDD, the cached PDM means that it will never change from the RDD RemoteDecoderModule, and will continue software decoding.

Unsure if this occurs on operating systems other than Windows, though it presumably does.

Fixes an issue where in-band changes in VP9 and AV1 would not switch to the hardware decoder if it supports the new config, since agnostic decoders would always support the decoded format.

Depends on D143559

Assignee: nobody → Zaggy1024
Status: UNCONFIRMED → ASSIGNED
Ever confirmed: true
Pushed by zaggy1024@gmail.com:
https://hg.mozilla.org/integration/autoland/rev/c88e50b24ba5
Remove PDM caching from MediaChangeMonitor to allow config changes to switch between GPU and RDD process. r=alwu

Backed out for causing mochitest failures on test_eme_waitingforkey.html

Backout link

Push with failures

Failure log

Failure line(s): TEST-UNEXPECTED-FAIL | dom/media/test/test_eme_waitingforkey.html | Test timed out!

Flags: needinfo?(Zaggy1024)

Allows encrypted video to initialize a decoder upon receiving a sample if it cannot be instantiated during initial decoder creation.

Depends on D143560

Fix is in Part 2 patch, clearing NI.

Flags: needinfo?(Zaggy1024)
Pushed by zaggy1024@gmail.com:
https://hg.mozilla.org/integration/autoland/rev/48393abd1116
Remove PDM caching from MediaChangeMonitor to allow config changes to switch between GPU and RDD process. r=alwu
https://hg.mozilla.org/integration/autoland/rev/4ef2a297e3df
Part 2 - Pass PDMFactory instance to MediaChangeMonitor to keep configuration set before the decoder is created. r=alwu
Status: ASSIGNED → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → 101 Branch
Regressions: 1780687
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: