Closed Bug 1778393 Opened 3 years ago Closed 3 years ago

10-bit videos won't play on Fenix

Categories

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

Unspecified
Android
defect

Tracking

()

RESOLVED FIXED
112 Branch
Tracking Status
firefox110 --- wontfix
firefox111 --- wontfix
firefox112 --- fixed

People

(Reporter: kbrosnan, Assigned: jhlin)

References

Details

Attachments

(2 files, 1 obsolete file)

From github: https://github.com/mozilla-mobile/fenix/issues/25917.

Steps to reproduce

Open a 10 bit video (yuv420p10le pixel format). I tried several codecs.

VP9

https://files.catbox.moe/fzdr2r.webm

H.264

https://files.catbox.moe/ivry4j.mp4

Expected behaviour

The videos play.

Actual behaviour

Both VP9 and H.264 show a "Video can't be played because the file is corrupt" image and show the following in the console.

VP9

Media resource https://files.catbox.moe/fzdr2r.webm could not be decoded.
Media resource https://files.catbox.moe/fzdr2r.webm could not be decoded, error: Error Code: NS_ERROR_DOM_MEDIA_DECODE_ERR (0x806e0004)
Details: RefPtr<MediaDataDecoder::DecodePromise> mozilla::VPXDecoder::ProcessDecode(mozilla::MediaRawData *): VPX error: Bitstream not supported by this decoder

H.264

Media resource https://files.catbox.moe/ivry4j.mp4 could not be decoded.
Media resource https://files.catbox.moe/ivry4j.mp4 could not be decoded, error: Error Code: NS_ERROR_DOM_MEDIA_FATAL_ERR (0x806e0005)
Details: Error no decoder found for video/avc

Device name

Samsung Galaxy A8

Android version

Android 9

Firefox release type

Firefox

Firefox version

102.1.1

Device logs

No response

Additional information

An interesting observation is that AV1 videos (example: https://files.catbox.moe/mfml1c.webm) don't fail to play, but instead just show a dark green screen. The audio plays fine.

Of course media.av1.enabledwas enabled in about:config.

I don't know if this is the same bug, or if it belongs to another bug.

┆Issue is synchronized with this Jira Task

Change performed by the Move to Bugzilla add-on.

See Also: → 1518549
Blocks: media-triage
Summary: [Bug]: 10-bit videos won't play on Fenix → 10-bit videos won't play on Fenix

Note - if the platform decoder is available and has the features we need we'll use it here. Otherwise we fallback to ffvpx or libvpx.

John, would you mind taking a look? The device is Samsung Galaxy A8.

Severity: -- → S3
Flags: needinfo?(jolin)
No longer blocks: media-triage

It's not a device-specific thing. At least for AV1, I also tried it on Fennec in the Android Studio emulator on a Pixel 5 API 30 image, resulting in the same green image.

Currently, the Android decoder module in Gecko allows only 8-bit video[1]. Will override the method to support 10-bit in AndroidDecoderModule and some logs to show the profile and level support of HW decoders.

[1] https://searchfox.org/mozilla-central/source/dom/media/platforms/PlatformDecoderModule.h#387

Assignee: nobody → jolin
Flags: needinfo?(jolin)

Depends on D164723

Pushed by jolin@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/20aa11f4aadb show HW decoder profile/level support info. r=azebrowski,geckoview-reviewers,owlish https://hg.mozilla.org/integration/autoland/rev/c6d726f7310b allow 10-bit video on Android. r=azebrowski,media-playback-reviewers

Backed out for causing wpt failures in /html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-video.html

Backout link: https://hg.mozilla.org/integration/autoland/rev/3aade8968caaed9f405813a6ad74fa6eaacb20b1

Push with failures

Failure log

Flags: needinfo?(jolin)

There are some r+ patches which didn't land and no activity in this bug for 2 weeks.
:jhlin, could you have a look please?
If you still have some work to do, you can add an action "Plan Changes" in Phabricator.
For more information, please visit auto_nag documentation.

Flags: needinfo?(jolin)
Flags: needinfo?(bugzeeeeee)
Attachment #9308350 - Attachment description: Bug 1778393 - allow 10-bit video on Android. r?azebrowski → Bug 1778393 - allow 10-bit video on Android.

WPT meta file needs to be modified because after enabling 10-bit
video decoding with Android platform decoders, the canvas drawImage
tests for 10-bit videos will fail (until bug 1526207 is fixed).

Depends on D164724

Attachment #9308349 - Attachment description: Bug 1778393 - show HW decoder profile/level support info. r?azebrowski → Bug 1778393 - show HW decoder profile/level support info. r=azebrowski,geckoview-reviewers,owlish
Attachment #9314373 - Attachment is obsolete: true
Flags: needinfo?(jolin)
Flags: needinfo?(bugzeeeeee)
Pushed by jolin@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/9576c680057f show HW decoder profile/level support info. r=azebrowski,geckoview-reviewers,owlish https://hg.mozilla.org/integration/autoland/rev/2de9b1d01bba allow 10-bit video on Android. r=azebrowski,geckoview-reviewers,m_kato
Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 112 Branch

Setting status-firefox111=wontfix because I assume this HW decoder change is too risky to uplift from Beta 112 to a 111 dot release.

You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: