Closed Bug 1679927 Opened 4 years ago Closed 3 years ago

Apple VP9 decoder always outputting 8 bits YUV420 images

Categories

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

defect

Tracking

()

RESOLVED FIXED
98 Branch
Tracking Status
firefox98 --- fixed

People

(Reporter: jya, Assigned: bradwerth)

References

Details

Attachments

(1 file)

The code always requests kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange [1] format even if the source is 8 bits.

[1] https://searchfox.org/mozilla-central/rev/168c45a7acc44e9904cfd4eebcb9eb080e05699c/dom/media/platforms/apple/AppleVTDecoder.cpp#616-619

We should add support for 10 bits YUV420 in order to allow for proper display.
With CoreAnimation being used for rendering, we should "just" have to fill the metadata to get HDR rendering going.

This only stores color bits, not the color depth enum itself.

Assignee: nobody → bwerth
Status: NEW → ASSIGNED
Attachment #9224848 - Attachment description: Bug 1679927: Make AppleVTDecoder check color depth and use 10-bit YUV420 when available. → Bug 1679927 Part 1: Make AppleVTDecoder check color depth and use 10-bit YUV420 when available.
Blocks: hdr-macos
No longer blocks: HDR
Blocks: 1749764
Pushed by bwerth@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/2a43d61af1ff Part 1: Make AppleVTDecoder check color depth and use 10-bit YUV420 when available. r=media-playback-reviewers,alwu

Backed out changeset 2a43d61af1ff (Bug 1679927) for causing build bustages on AppleVTDecoder.cpp.
Backout link
Push with failures
Failure Log

Flags: needinfo?(bwerth)

Ahh, the kCVPixelFormatType_420YpCbCr10BiPlanarFullRange constant requires macOS SDK 10.13 or greater.

Flags: needinfo?(bwerth)

Probably easiest to wait for Bug 1696504 to land. The alternative would be to define the necessary constants locally behind an #ifdef which we'd then just have to remove.

Depends on: 1696504

(In reply to Brad Werth [:bradwerth] from comment #5)

Probably easiest to wait for Bug 1696504 to land. The alternative would be to define the necessary constants locally behind an #ifdef which we'd then just have to remove.

Changing my mind. That Bug could take awhile and there's no need to wait.

No longer depends on: 1696504
Pushed by bwerth@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/a663bfcbe8ac Part 1: Make AppleVTDecoder check color depth and use 10-bit YUV420 when available. r=media-playback-reviewers,alwu

Finally got through the compiler differences between my SDK and the build system SDK, and tested the build remotely. This one should land.

Flags: needinfo?(bwerth)
Pushed by bwerth@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/a85ec3cb63f2 Part 1: Make AppleVTDecoder check color depth and use 10-bit YUV420 when available. r=media-playback-reviewers,alwu
Status: ASSIGNED → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 98 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: