The map currently detects HDR10, HDR10+ and Dolby Vision.
Code: Select all
{
def _HDRMap = [
"HDR10": "HDR10",
"SMPTE ST 2086": "HDR10",
"SMPTE ST 2094 App 4": "HDR10+",
"Dolby Vision / SMPTE ST 2086": "Dolby Vision",
"Dolby Vision / HDR10": "Dolby Vision",
]
def vid = video.first()
allOf
{ vf }
{ vc }
{
String _HDR
switch (bitdepth) {
case { it > 8 }:
_HDR = any
{ vid["HDR_Format_Commercial"] }
{ vid["HDR_Format"] }
{ hdr }
{ null }
// { vid["HDR_Format/String"] }
// { vid["HDR_Format_Compatibility"] }
// following for both HDR10+ (misses compatibility) and Dolby Vision
// { vid["HDR_Format_Version"] }
// following only for Dolby Vision
// { vid["HDR_Format_Profile"] }
// { vid["HDR_Format_Level"] }
// { vid["HDR_Format_Settings"] }
break
default:
"$bitdepth-bit"
break
}
// _HDRMap.get(_HDR, _HDR)
_HDRMap.find { k, v ->
k =~ _HDR
}?.value
}
.join(" ")
}
Code: Select all
_HDRMap.get(_HDR, _HDR)
// OR
_HDRMap.find { k, v ->
k =~ _HDR
}.value
UPDATE 2019-09-03 -> changed _HDRMap.find{...}.value to _HDRMap.find{...}?.value, should be null if no key is found.