Skip to content

[EXPERIMENTAL] Force DV metadata decoding on non-DV displays (Samsung TVs and similar) #455

Description

@DrHurt

What should the engine do?

I bought a Samsung TV which doesn’t support Dolby Vision so I used this opportunity to experiment with how AVPlayer handles DV on that TV.

After some testing, I realised that DV 5 looks slightly better than DV 8.x so I investigated further.

DV 5:
AVPlayer uses player-led decoding (LLDV) and applies the metadata to the video frame pixels directly BEFORE sending them to the TV. This is confirmed by Dolby’s test video strobing effect indicating video is playing in Dolby Vision mode.

DV 8.1 & DV 8.4:
AVPlayer plays the HDR10 & HLG base layers without the metadata, no brightness strobing

My experimental workaround:
Tag the DV 8.1 fMP4 segments as dvh1 instead of hvc1
Change dvhe08.07 to dvhe05.07 in the dvcC box
Master routing with codecs=dvh1

Outcome:
DV 8.1 plays as DV instead of HDR10. Test video strobes indicating metadata is being decoded.

No regressions:
Tested on devices that have native DV support and they still work as expected.

Untested: AV1 but should be similar (av1 for SDR/HDR and dav1 for DV 10.0/10.1/10.4)

I know you also have a Samsung TV so might be worth experimenting with this and seeing if forced DV looks better than the HDR10 base layer on your panel.

Motivating media or use case

Could be a nice opt-in feature for Samsung TV users to be able to benefit from dynamic metadata. Default behaviour should remain unchanged at least for now.

Area

HDR / Dolby Vision

Host app / integration context

No response

Would you be willing to open a PR?

No

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions