Hi,
We currently deliver HDR10+ content within a composite HLS stream where Dolby Vision is signaled as a supplemental codec alongside HDR10+. Our testing on Apple TV 4K (3rd generation) indicates that playback succeeds, but we have not found a reliable way to determine whether playback is occurring in Dolby Vision or HDR10+ mode when connected to a display that supports both formats.
We have also verified that the same stream plays correctly on displays that support HDR10+ but do not support Dolby Vision. However, on displays that support both HDR10+ and Dolby Vision, we are unable to determine which dynamic range format AVPlayer ultimately selects.
Is there a recommended Apple API or mechanism to determine whether AVPlayer is rendering content as HDR10+, Dolby Vision, or another HDR format at runtime?
For reference, below is an example variant from our master playlist:
#EXT-X-STREAM-INF:BANDWIDTH=2851276,AVERAGE-BANDWIDTH=2030750,CODECS="hvc1.2.4.L90.90,mp4a.40.2",SUPPLEMENTAL-CODECS="dvh1.08.01/dv1p,hvc1.2.4.L90.90/cdm4",RESOLUTION=854x480,FRAME-RATE=24,VIDEO-RANGE=PQ,HDCP-LEVEL=TYPE-1,CHARACTERISTICS="com.dss.cbcs.hdr.hd",AUDIO="aac-128k",SUBTITLES="sub-main"
Specifically, we would like to understand:
- How AVPlayer chooses between Dolby Vision and HDR10+ when both are available in the same variant.
- Whether there is a supported way to determine the selected HDR format during playback.
- Whether any other APIs expose this information.
Any guidance would be greatly appreciated.
Thank you.
When the stream carries both HDR10+ and DoVi metadata ( such as DoVi 8.1 with HDR10+) and the external display supports both modes, assuming that the user has left all the ATV video settings as default, the external display will be tuned into DoVi mode, and the stream will be rendered with DoVi metadata on the external TV. Some TV will show a badge indicating the display mode briefly when the video starts.
The user can override the default behavior by ATV settings or external TV’s settings.
There isn’t an API available to indicate the current display mode. Feel free to file a feedback report describing the use case ( why the information is desired, for example, for badging purposes, etc.).