Closed Bug 1957119 Opened 1 year ago Closed 1 year ago

Firefox incorrectly flushes HEVC decoded samples due to a false detection of an in-band configuration change.

Categories

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

defect

Tracking

()

RESOLVED FIXED
138 Branch
Tracking Status
firefox-esr128 --- unaffected
firefox136 --- wontfix
firefox137 --- fixed
firefox138 --- fixed

People

(Reporter: alwu, Assigned: alwu)

References

(Regression)

Details

(Keywords: regression)

Attachments

(2 files)

This results in slight frame drops for certain HEVC streams.

In H265::CompareExtraData(), SPSIterator::IsValid() is used as a
boolean expression to determine whether two SPS NALUs should be
compared. If it returns an incorrect result, it can lead to a false
detection of a configuration change, causing decoded frames to be
discarded.

Depends on D243528

[Tracking Requested - why for this release]:

I'm still investigating whether this is worth to uplift to 137.

Set release status flags based on info from the regressing bug 1942404

We should uplift this to Fx137 in order to prevent video stuttering on Netflix HEVC videos.

Pushed by alwu@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/b5704200b8f6 part1 : correct SPSIterator::IsValid(). r=media-playback-reviewers,jolin https://hg.mozilla.org/integration/autoland/rev/224815c39101 part2 : update loggings. r=media-playback-reviewers,jolin
Status: NEW → RESOLVED
Closed: 1 year ago
Resolution: --- → FIXED
Target Milestone: --- → 138 Branch

Comment on attachment 9475473 [details]
Bug 1957119 - part1 : correct SPSIterator::IsValid().

Beta/Release Uplift Approval Request

  • User impact if declined/Reason for urgency: It affects Release Netflix users (or other content stream providers) when they watch HEVC video, some video will regularly lost several per 5-6 seconds. As we're actively collaborating this feature with Netflix, it will be great to have this change on Release in order not to affect the Release users.
  • 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: Following this link
    https://docs.google.com/document/d/1Eh2yLIjy9JmHa1BrxWR0Mw8WBcj__xZVBONlrb-K12k/edit?usp=sharing
  • List of other uplifts needed: None
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): This patch only fixes a small condition check for the inband config change, it doesn't introduce any big changes and new function.
  • String changes made/needed: No
  • Is Android affected?: No
Attachment #9475473 - Flags: approval-mozilla-release?
Attachment #9475474 - Flags: approval-mozilla-release?
Flags: qe-verify+
Attachment #9475474 - Flags: approval-mozilla-release?
Attachment #9475473 - Flags: approval-mozilla-release?

After some discussion with Netflix, this issue isn't seen on Release again, so we should be good to keep the fix on 138 and no need to be rush.


[update] this is still seen on Release, and Netflix disabled the PlayReady testing due to this problem.

Comment on attachment 9475473 [details]
Bug 1957119 - part1 : correct SPSIterator::IsValid().

Beta/Release Uplift Approval Request

  • User impact if declined/Reason for urgency: After further discussions with Netflix, they have decided to disable 4K playback for users until this issue is resolved. As a result, our Netflix users will no longer be able to watch content in 4K and may experience stuttering during HEVC video playback. This issue could also affect playback from other content providers that use the HEVC format.
  • 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: Following this link
    https://docs.google.com/document/d/1Eh2yLIjy9JmHa1BrxWR0Mw8WBcj__xZVBONlrb-K12k/edit?usp=sharing
  • List of other uplifts needed: None
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): This patch only fixes a small condition check for the inband config change, it doesn't introduce any big changes and new function.
  • String changes made/needed: No
  • Is Android affected?: No
Attachment #9475473 - Flags: approval-mozilla-release?
QA Whiteboard: [qa-triaged]

We’ve tried to reproduce the problem described in the document provided for QA (comment 11), but unfortunately, after talking with Alastor Wu, it appears to be a hardware-specific issue. On the tested Windows 11 (22H2 or later versions) machines, none of them seem to support HEVC.

Given this, I don’t think we can verify the fix on our end. I'm going to remove the qe+ flag.

Flags: qe-verify+

Alastor, regarding your comment #10, is it something we need to fix in 137 (release)? It's not clear to me if this is an issue we hit with Netflix on production and is important to have in our 137.0.2 dot release next week or if it can just ride the 138 train (end of month). Thanks!

Flags: needinfo?(alwu)

Sorry for the confusion, the comment 10 isn't valid anymore, as Netflix was able to reproduce the issue on their side on the Release. So yes, it will be great to have this landed on Fx137 as well, because this is a blocker for us to allow our users to use PlayReady.

Flags: needinfo?(alwu)
Attachment #9475473 - Flags: approval-mozilla-release? → approval-mozilla-release+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: