diff --git a/libarmbox/video.cpp b/libarmbox/video.cpp index d1172b9..e148727 100644 --- a/libarmbox/video.cpp +++ b/libarmbox/video.cpp @@ -1238,6 +1238,28 @@ void cVideo::SetColorFormat(COLOR_FORMAT color_format) proc_put("/proc/stb/video/hdmi_colorspace", p, strlen(p)); } +void cVideo::SetHdmiMode(HDMI_MODE hdmi_mode) +{ + const char *p = NULL; + switch (hdmi_mode) + { + case HDMI_MODE_AUTO: + p = "auto"; + break; + case HDMI_MODE_BT2020NCL: + p = "bt2020ncl"; + break; + case HDMI_MODE_BT2020CL: + p = "bt2020cl"; + break; + case HDMI_MODE_BT709: + p = "bt709"; + break; + } + if (p) + proc_put("/proc/stb/video/hdmi_colorimetry", p, strlen(p)); +} + bool getvideo2(unsigned char *video, int xres, int yres) { bool ret = false; diff --git a/libarmbox/video_lib.h b/libarmbox/video_lib.h index ca19814..c830427 100644 --- a/libarmbox/video_lib.h +++ b/libarmbox/video_lib.h @@ -36,6 +36,14 @@ typedef enum COLORFORMAT_HDMI_YCBCR420 } COLOR_FORMAT; +typedef enum +{ + HDMI_MODE_AUTO, + HDMI_MODE_BT2020NCL, + HDMI_MODE_BT2020CL, + HDMI_MODE_BT709 +}HDMI_MODE; + typedef enum { VIDEO_FORMAT_MPEG2 = 0, @@ -277,6 +285,7 @@ class cVideo int StopVBI(void) { return 0; }; void SetDemux(cDemux *dmx); void SetColorFormat(COLOR_FORMAT color_format); + void SetHdmiMode(HDMI_MODE hdmi_mode); bool GetScreenImage(unsigned char *&data, int &xres, int &yres, bool get_video = true, bool get_osd = false, bool scale_to_video = false); };