Closed Bug 1965110 Opened 1 year ago Closed 1 year ago

[wmfme] don't enable low latency on encrypted DRM playback

Categories

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

defect

Tracking

()

VERIFIED FIXED
140 Branch
Tracking Status
firefox-esr128 --- unaffected
firefox138 --- wontfix
firefox139 --- verified
firefox140 --- verified

People

(Reporter: alwu, Assigned: alwu)

References

Details

Attachments

(2 files)

For certain HEVC DRM playback scenarios, the media engine fails to return a video output, resulting in an infinite wait. After discussing this issue with Microsoft, we found that it's caused by low latency playback being enabled.

Microsoft generally advises against enabling low latency mode with DRM content. Currently, AV1 is the only codec that reliably supports both hardware DRM and low latency. Other codecs typically disable low latency automatically when hardware DRM is detected. However, due to a bug, HEVC (H.265) appears to lack this safeguard, leading to the issue we're seeing.

For certain HEVC DRM playback scenarios, the media engine fails to return a
video output, resulting in an infinite wait. After discussing this issue with
Microsoft, we found that it's caused by low latency playback being enabled.

Microsoft generally advises against enabling low latency mode with DRM content.
Currently, AV1 is the only codec that reliably supports both hardware DRM and
low latency. Other codecs typically disable low latency automatically when
hardware DRM is detected. However, due to a bug, HEVC (H.265) appears to lack
this safeguard, leading to the issue we're seeing.

Severity: -- → N/A
Pushed by alwu@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/1b61e7cdc6f0 don't enable low latency on encrypted DRM playback. r=media-playback-reviewers,chunmin
Status: NEW → RESOLVED
Closed: 1 year ago
Resolution: --- → FIXED
Target Milestone: --- → 140 Branch

The patch landed in nightly and beta is affected.
:alwu, is this bug important enough to require an uplift?

For more information, please visit BugBot documentation.

Flags: needinfo?(alwu)

Comment on attachment 9486187 [details]
Bug 1965110 - don't enable low latency on encrypted DRM playback.

Beta/Release Uplift Approval Request

  • User impact if declined/Reason for urgency: Certain HEVC DRM playback scenarios may fail due to an infinite loading.
  • Is this code covered by automated tests?: No
  • Has the fix been verified in Nightly?: No
  • Needs manual test from QE?: Yes
  • If yes, steps to reproduce: 1. Please check [1] to ensure that you have hevc in the decodingAndDecrypting in the raw of com.microsoft.playready.recommendation.3000.clearlead.
  1. Use test account [2] to login Netflix
  2. Play https://www.netflix.com/watch/80094031?t=128

Expected
4. Video should be able to start playing

Note: This issue is not reproducible on all machines.

[1] https://docs.google.com/document/d/1Eh2yLIjy9JmHa1BrxWR0Mw8WBcj__xZVBONlrb-K12k/edit?tab=t.0#bookmark=id.fy52voel42ns
[2] https://docs.google.com/document/d/1Eh2yLIjy9JmHa1BrxWR0Mw8WBcj__xZVBONlrb-K12k/edit?tab=t.0#bookmark=kix.gdpom6o1s11z

  • List of other uplifts needed: None
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): No, it only disables low latency for DRM playback, as recommended by Microsoft.
  • String changes made/needed:
  • Is Android affected?: No
Flags: needinfo?(alwu)
Attachment #9486187 - Flags: approval-mozilla-beta?
Flags: qe-verify+

Comment on attachment 9486187 [details]
Bug 1965110 - don't enable low latency on encrypted DRM playback.

Approved for 139.0b7

Attachment #9486187 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
QA Whiteboard: [uplift] [qa-ver-needed-c140/b139]
QA Contact: bmaris

So I tried to reproduce this issue on two different machines that have hevc in the decodingAndDecrypting in the raw of com.microsoft.playready.recommendation.3000.clearlead and I get two different behaviors for both reproducing on old Nightly build and verifying on fixed Build (Nightly and 139.0b7).

Machine 1, Windows 11:

  • old Nightly build: The video plays but I have green artifacts in the video, quite unwatchable.
  • latest Nightly and 139.0b7: The video plays without issues.

Machine 2, Windows 11:

  • old Nightly build: Sometimes when loading the page Netflix will give a F7336 error, when the error is not given the infinite loading will occur, never ended with video being played
  • latest Nightly and 139.0b7: Sometimes when loading the page Netflix will give a F7336 error, when the page is finished loading and the play button is available in the page the video will be played without issues.

Not sure if this behavior on Machine 2 is caused by this fix, I suspect not but have to ask.

Flags: needinfo?(alwu)

I believe F7336 is a separate issue, could you help capture a media profile by following this instruction? However, due to bug 1914388, you have to open a tab and navigate to about:support before starting profiling.

Since the loading issue is caused by Media Foundation, it’s possible that the green artifact is related and just manifests differently. In any case, if the issue is resolved in the latest Nightly, then we should be in good shape.

Thanks!

Flags: needinfo?(alwu) → needinfo?(bmaris)

(In reply to Alastor Wu [:alwu] from comment #9)

I believe F7336 is a separate issue, could you help capture a media profile by following this instruction? However, due to bug 1914388, you have to open a tab and navigate to about:support before starting profiling.

https://share.firefox.dev/3GVEU4c - note that at first the video played without issues but after a page refresh I got the F7336 error again.

Since the loading issue is caused by Media Foundation, it’s possible that the green artifact is related and just manifests differently. In any case, if the issue is resolved in the latest Nightly, then we should be in good shape.

Yes, on the machine with the green artifacts everything works just fine in the latest Nightly and Beta builds.

Let me know if there is anything I can help with further.

Flags: needinfo?(bmaris) → needinfo?(alwu)

Can you try this build and let me know whether you still see the F7336 error or not? Thanks!

Flags: needinfo?(alwu) → needinfo?(bmaris)

(In reply to Alastor Wu [:alwu] from comment #11)

Can you try this build and let me know whether you still see the F7336 error or not? Thanks!

Still the same using the try build you provided. Here is another profiler from this build https://share.firefox.dev/3SeNbm3. Do you want me to log a new bug with the F7336 error?

Flags: needinfo?(bmaris) → needinfo?(alwu)

Yes, could you also attach the profile you captured in the new bug? In addition, It will be good to record "the time of the session" and "video link" when you reproduce the issue, which I can use to ask Netflix to investigate. Thanks!

Flags: needinfo?(alwu)
Flags: needinfo?(bmaris)

(In reply to Alastor Wu [:alwu] from comment #13)

Yes, could you also attach the profile you captured in the new bug? In addition, It will be good to record "the time of the session" and "video link" when you reproduce the issue, which I can use to ask Netflix to investigate. Thanks!

I asked my colleague who was actually reproducing the F7336 error to log a new bug, see bug 1968005. I will go ahead and close this bug as verified since even on the machine that we reproduce the F7336 error the video will play when we don't encounter the error (on other machines the video does play without issues).

Status: RESOLVED → VERIFIED
QA Whiteboard: [uplift] [qa-ver-needed-c140/b139] → [uplift] [qa-ver-done-c140/b139]
Flags: qe-verify+
Flags: needinfo?(bmaris)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: