Closed Bug 1855636 Opened 10 months ago Closed 8 months ago

For certain recvonly streams, most/all P frames are failing to decode (H264)

Categories

(Core :: WebRTC, defect, P1)

Firefox 118
defect

Tracking

()

VERIFIED FIXED
121 Branch
Tracking Status
firefox-esr115 --- unaffected
firefox118 --- verified
firefox119 --- verified
firefox120 --- verified
firefox121 --- verified

People

(Reporter: andrew, Assigned: chunmin)

References

(Regression)

Details

(Keywords: regression)

Attachments

(4 files)

Steps to reproduce:

This is a regression (good: 7e011293b43, bad: 70417eb0e3b).
The first public Firefox release with this regression is 118.

To repro, using a bad release of Firefox, do the following:

  1. Go to the URL <redacted>
  2. Click "View in 3D" button. Wait a few seconds for the page to load.

Actual results:

After the repro steps, the following unexpected results occur with a bad release of firefox (e.g. 118 or 70417eb0e3b):

  1. You will probably see only a black page. (expected: A video stream of a simple 3D object (teapot) should be shown).
  2. LMB dragging in the window will have no effect. (expected: Should cause the video stream to show the 3D object being moved with respect to your mouse movement)
  3. Pressing Alt+L (just once) will also have no effect, or will show a frame or two and then freeze (expected: Should cause the video stream to show the 3D object spinning in place)
  4. After pressing Alt+L (which ensures that frames are continuously sent from the server), you should notice that about:webrtc shows an increasing number of dropped frames, and very few decoded frames - probably none at all.

Expected results:

With a good release of Firefox (e.g. 117 or 7e011293b43),

  1. A video stream of a simple 3D object (teapot) will be shown.
  2. LMB dragging will cause the video stream to show the 3D object being moved with respect to your mouse movement.
  3. Pressing Alt+L (just once) will cause the video stream to show the 3D object spinning in place.
  4. After pressing Alt+L (which ensures that frames are continuously sent from the server), you should notice that about:webrtc shows an increasing number of decoded frames, and very few dropped frames.
Assignee: nobody → padenot
Status: UNCONFIRMED → NEW
Ever confirmed: true

The Bugbug bot thinks this bug should belong to the 'Core::WebRTC' component, and is moving the bug to that component. Please correct in case you think the bot is wrong.

Component: Untriaged → WebRTC
Product: Firefox → Core
Keywords: regression
Regressed by: 1846796

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

https://pernos.co/debug/mcHmpQLC8KY97z1STlvytA/index.html#f{m[B+TV,DUw_,t[Ajs,Giuq_,f{e[B+TV,DSs_,s{af2nmYAAA,bAZI,uFNYACA,oFNcAXw___/ is a pernosco trace of this -- the offending code is commented out like the patch for release, but it allows inspecting the AVCC struct that's likely invalid.

Comment on attachment 9355594 [details]
Bug 1855636 - Disable part of 1846796 to unbreak some content on release and beta. r?#media-playback-reviewers

Beta/Release Uplift Approval Request

  • User impact if declined: Some inbound h264 WebRTC video doesn't work anymore. This breaks content.
  • 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: repro URL is not public, ping @padenot (padenot@mozilla.com) for repro steps.
  • List of other uplifts needed: none
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): This is a low-risk beta / release-only patch while we figure out the real-fix for Nightly.
  • String changes made/needed: none
  • Is Android affected?: Yes
Attachment #9355594 - Flags: approval-mozilla-release?
Attachment #9355594 - Flags: approval-mozilla-beta?
Flags: qe-verify+

Comment on attachment 9355594 [details]
Bug 1855636 - Disable part of 1846796 to unbreak some content on release and beta. r?#media-playback-reviewers

Approved for 119.0b5

Attachment #9355594 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
QA Whiteboard: [qa-triaged]
Duplicate of this bug: 1856943
Duplicate of this bug: 1856998
No longer duplicate of this bug: 1856998
See Also: → 1856998
Duplicate of this bug: 1857014
Duplicate of this bug: 1856998
See Also: 1856998

Hello,

Managed to reproduce this issue using the STR from the description with an affected build from 2023-09-28 , 120.0a1(20230928215127) with macOS 14.1.

Confirming this issue as verified fixed on 119.0b5(20231004091611) with macOS 14.1, Windows 11 and Ubuntu 22.

Comment on attachment 9355594 [details]
Bug 1855636 - Disable part of 1846796 to unbreak some content on release and beta. r?#media-playback-reviewers

Approved for our next 118 dot release, thanks.

Attachment #9355594 - Flags: approval-mozilla-release? → approval-mozilla-release+

Hello,

Confirming this issue as verified fixed on 118.0.2(20231009140911) using macOS 13, Windows 11 and Ubuntu 22.

The severity field is not set for this bug.
:mjf, could you have a look please?

For more information, please visit BugBot documentation.

Flags: needinfo?(mfroman)
Severity: -- → S3
Priority: -- → P1

Clearing NI for Michael -- I handled this.

Flags: needinfo?(mfroman)

Can you land this on beta? We haven't done the "real" fix yet and we don't want to break this again.

Flags: needinfo?(cchang)

Comment on attachment 9355594 [details]
Bug 1855636 - Disable part of 1846796 to unbreak some content on release and beta. r?#media-playback-reviewers

Hi dsmith, we need more time to fix this properly so D189507 has to be landed on beta again to avoid the problem

Beta/Release Uplift Approval Request

  • User impact if declined: Some inbound h264 WebRTC video doesn't work anymore. This breaks content.
  • 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: repro URL is not public, ping @padenot (padenot@mozilla.com) for repro steps.
  • List of other uplifts needed: none
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): This is a low-risk beta / release-only patch while we figure out the real-fix for Nightly.
  • String changes made/needed: none
  • Is Android affected?: Yes
Flags: needinfo?(cchang) → needinfo?(dsmith)

Approved for 120.0b3
... since this never made it to central during the 120 nightly cycle.
121 is still affected but we should prob disable it there too unless a fix is almost finished.

Flags: needinfo?(dsmith)

Agreed - we should land this on m-c and move fixing and re-enabling to a new bug rather than having to remember to do this every cycle.

Flags: needinfo?(padenot)

Chun-Min, can you handle this?

Flags: needinfo?(padenot) → needinfo?(cchang)

I'll revert the changes made in 1846796 first and work on a new fix.

This reverts commit 39e19ad141e661b878acaf3ed8c214dfd3fe2dae.

Depends on D192437

I've uploaded patches that revert the patches in bug 1846796

Assignee: padenot → cchang
Flags: needinfo?(cchang)
Pushed by cchang@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/8455d0b70dcd
Revert "Bug 1846796 - Parse extra data from converted avcc data" r=media-playback-reviewers,alwu
https://hg.mozilla.org/integration/autoland/rev/e46ff3037f51
Return unsupported for H264 in WebCodecs on MacOS r=jolin
https://hg.mozilla.org/integration/autoland/rev/93b0e65b5ad2
Change WPT expectations r=jolin

Confirming this issue as verified fixed on 121.0a1(20231107214948) and 120.0b7(20231106091614) using macOS 14, Windows 11 and Ubuntu 22.

Status: RESOLVED → VERIFIED
Flags: qe-verify+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: