According to ANSI-CTA-861-G specification:
* EOTF is 8 bit, not 16;
* metadata type is 8 bit, not 16;
* There's no "Minimum Content Light Level"
This patch will change the HDR metadata structures to reflect that. Also, this
will fix problems seen on some TVs that were rejecting HDR metadata because
it's size was too big (more than 26 bytes).
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@nxp.com>
CC: Sandor Yu <sandor.yu@nxp.com>
info->hdr_panel_metadata.eotf = eotf_supported(db);
info->hdr_panel_metadata.type = hdr_metadata_type(db);
- if (len == 6) {
- info->hdr_panel_metadata.max_cll = db[4];
- info->hdr_panel_metadata.max_fall = db[5];
- info->hdr_panel_metadata.min_cll = db[6];
- } else if (len == 5) {
+ if (len == 5) {
info->hdr_panel_metadata.max_cll = db[4];
info->hdr_panel_metadata.max_fall = db[5];
} else if (len == 4) {
enum hdmi_infoframe_type type;
unsigned char version;
unsigned char length;
- uint16_t eotf;
- uint16_t metadata_type;
+ uint8_t eotf;
+ uint8_t metadata_type;
uint16_t display_primaries_x[3];
uint16_t display_primaries_y[3];
uint16_t white_point_x;
uint16_t min_mastering_display_luminance;
uint16_t max_fall;
uint16_t max_cll;
- uint16_t min_cll;
};
int hdmi_avi_infoframe_init(struct hdmi_avi_infoframe *frame);
/* HDR Metadata */
struct hdr_static_metadata {
- uint16_t eotf;
- uint16_t type;
+ uint8_t eotf;
+ uint8_t type;
uint16_t display_primaries_x[3];
uint16_t display_primaries_y[3];
uint16_t white_point_x;
uint16_t min_mastering_display_luminance;
uint16_t max_fall;
uint16_t max_cll;
- uint16_t min_cll;
};
#define DRM_MODE_PAGE_FLIP_EVENT 0x01