1、
3-1、显示屏幕需要支持HDR标准,具体来说,需要达到一定的峰值亮度和色彩范围。
3-2、编码解码器需要支持HDR标准,具体来说,需要支持HEVC编码和HDR10标准。
4、我们可以通过代码来检测小米电视E43S是否支持HDR。具体来说,我们可以使用MediaCodec类来解码一个HDR10格式的视频,如果解码成功,则说明该设备支持HDR。示例代码如下:
private
boolean
isHDRSupported
;">)
{
MediaCodec
codec
=
null
;

try
{
codec
=
MediaCodec
.
createDecoderByType
;">"video/hevc"
)
;
MediaFormat
format
=
MediaFormat
.
createVideoFormat
;">"video/hevc"
,
1920
,
1080
)
;
format
.
setInteger
;">MediaFormat
.
KEY_COLOR_FORMAT
,
MediaCodecInfo
.
CodecCapabilities
.
COLOR_FormatSurface
)
;
format
.
setByteBuffer
;">"csd-0"
,
ByteBuffer
.
wrap
;">new
byte
[
]
{
,
,
,
1
,
103
,
66
,
-
64
,
30
,
-
128
,
,
,
3
,
-
2
,
-
32
,
,
,
31
,
-
96
,
16
,
16
,
16
,
16
,
16
,
16
,
16
,
16
,
16
,
16
,
16
,
16
,
16
,
16
,
16
,
16
,
16
,
16
,
16
,
16
,
16
,
16
,
16
,
16
,
16
,
16
,
16
,
16
,
16
,
16
,
16
}
)
)
;
codec
.
configure
;">,
null
,
null
,
)
;
codec
.
start
;">)
;
return
true
;
}
catch
;">Exception
e
)
{
return
false
;
}
finally
{
if
;">!=
null
)
{
codec
.
stop
;">)
;
codec
.
release
;">)
;
}
}
}
1、该代码使用MediaCodec类创建一个HEVC视频解码器,并解码一个HDR10格式的视频。如果解码成功,则说明该设备支持HDR。具体来说,我们首先创建一个MediaCodec对象,并指定解码器类型为video/hevc,然后创建一个视频格式,指定视频大小为1920x1080,颜色格式为COLOR_FormatSurface,HDR10的CSD-0数据为{0, 0, 0, 1, 103, 66, -64, 30, -128, 0, 0, 3, -2, -32, 0, 0, 31, -96, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16},然后调用MediaCodec的configure方法配置解码器,调用start方法启动解码器,最后判断解码是否成功即可。