What should the engine do?
Description
Add support for HDR Vivid (CUVA HDR Vivid) video playback in AetherEngine.
The goal is to allow HDR Vivid content to be correctly detected, decoded, and presented through both the hardware and software video decoding paths.
Requirements
- Detect HDR Vivid / CUVA HDR Vivid video content and expose it through the existing video format / HDR detection mechanism.
HardwareVideoDecoder should be able to decode and handle HDR Vivid streams correctly.
SoftwareVideoDecoder should be able to decode and handle HDR Vivid streams correctly.
- Preserve HDR Vivid dynamic metadata during the decoding pipeline when available.
- Make HDR Vivid distinguishable from SDR, HDR10, HDR10+, Dolby Vision, and HLG.
- Ensure HDR Vivid playback does not cause visible flashing, incorrect colors, or loss of HDR metadata.
- Support common HDR Vivid MP4/MKV sources supported by FFmpeg.
Expected Result
AetherEngine should be able to:
- Identify a video as HDR Vivid (CUVA HDR Vivid).
- Decode HDR Vivid through
HardwareVideoDecoder when the hardware path is available.
- Fall back to
SoftwareVideoDecoder and decode the same content correctly when hardware decoding is unavailable.
- Preserve and expose HDR Vivid metadata required by the rendering pipeline.
- Report the detected format through the existing
VideoFormat / video state mechanism.
FFmpeg Reference
FFmpeg 8.1.3 already provides HDR Vivid metadata definitions and related codec-side support. These files may be used as references for the AetherEngine implementation:
Motivation
HDR Vivid is increasingly used in real-world video content. Supporting it as a first-class HDR format would allow AetherEngine-based players to correctly identify and play these files instead of treating them as generic SDR/HDR content.
The desired result is similar to the existing HDR10/HDR10+ handling, with dedicated HDR Vivid / CUVA HDR Vivid detection and support across both hardware and software decoding paths.
Acceptance Criteria
- HDR Vivid content is correctly detected.
HardwareVideoDecoder can play HDR Vivid content.
SoftwareVideoDecoder can play the same HDR Vivid content.
- HDR Vivid metadata is retained throughout the decoding pipeline where available.
- No visible flashing or incorrect HDR/color behavior occurs during playback.
- Existing SDR, HDR10, HDR10+, Dolby Vision, and HLG playback remains unaffected.
Apple Platform / Metal Rendering
Since Apple platforms do not provide native HDR Vivid support, would it be possible to consider using Metal for the HDR Vivid rendering/conversion stage?
For example, AetherEngine could preserve the HDR Vivid dynamic metadata from the decoder and use a Metal-based processing pipeline to convert the decoded HDR Vivid frames into a format suitable for Apple's HDR/EDR display pipeline.
The goal would be to support HDR Vivid playback on Apple platforms without relying on native system-level HDR Vivid support.
The exact implementation is open to discussion, but a Metal-based HDR Vivid conversion/rendering path may be worth considering.
Would this architecture fit the direction of AetherEngine, and would you be open to adding HDR Vivid support?
Motivating media or use case
B.1-04.mp4
Visible flashing or incorrect HDR/color behavior occurs during playback.
Area
Codec / container support
Host app / integration context
No response
Would you be willing to open a PR?
No
What should the engine do?
Description
Add support for HDR Vivid (CUVA HDR Vivid) video playback in AetherEngine.
The goal is to allow HDR Vivid content to be correctly detected, decoded, and presented through both the hardware and software video decoding paths.
Requirements
HardwareVideoDecodershould be able to decode and handle HDR Vivid streams correctly.SoftwareVideoDecodershould be able to decode and handle HDR Vivid streams correctly.Expected Result
AetherEngine should be able to:
HardwareVideoDecoderwhen the hardware path is available.SoftwareVideoDecoderand decode the same content correctly when hardware decoding is unavailable.VideoFormat/ video state mechanism.FFmpeg Reference
FFmpeg 8.1.3 already provides HDR Vivid metadata definitions and related codec-side support. These files may be used as references for the AetherEngine implementation:
libavutil/hdr_dynamic_vivid_metadata.hFFmpeg n8.1.3 — hdr_dynamic_vivid_metadata.h
libavcodec/dynamic_hdr_vivid.hFFmpeg n8.1.3 — dynamic_hdr_vivid.h
Motivation
HDR Vivid is increasingly used in real-world video content. Supporting it as a first-class HDR format would allow AetherEngine-based players to correctly identify and play these files instead of treating them as generic SDR/HDR content.
The desired result is similar to the existing HDR10/HDR10+ handling, with dedicated HDR Vivid / CUVA HDR Vivid detection and support across both hardware and software decoding paths.
Acceptance Criteria
HardwareVideoDecodercan play HDR Vivid content.SoftwareVideoDecodercan play the same HDR Vivid content.Apple Platform / Metal Rendering
Since Apple platforms do not provide native HDR Vivid support, would it be possible to consider using Metal for the HDR Vivid rendering/conversion stage?
For example, AetherEngine could preserve the HDR Vivid dynamic metadata from the decoder and use a Metal-based processing pipeline to convert the decoded HDR Vivid frames into a format suitable for Apple's HDR/EDR display pipeline.
The goal would be to support HDR Vivid playback on Apple platforms without relying on native system-level HDR Vivid support.
The exact implementation is open to discussion, but a Metal-based HDR Vivid conversion/rendering path may be worth considering.
Would this architecture fit the direction of AetherEngine, and would you be open to adding HDR Vivid support?
Motivating media or use case
B.1-04.mp4
Visible flashing or incorrect HDR/color behavior occurs during playback.
Area
Codec / container support
Host app / integration context
No response
Would you be willing to open a PR?
No