unsigned int hdr_check_cnt;
};
-struct tvin_hdr10p_data_s {
- uint32_t vsif_hb;
- uint32_t vsif_ieee_code;
- struct pb4_st {
- uint8_t rvd:1;
- uint8_t max_lumin:5;
- uint8_t app_ver:2;
- } __packed pb4_st;
- uint8_t average_maxrgb;
- uint8_t distrib_valus0;
- uint8_t distrib_valus1;
- uint8_t distrib_valus2;
- uint8_t distrib_valus3;
- uint8_t distrib_valus4;
- uint8_t distrib_valus5;
- uint8_t distrib_valus6;
- uint8_t distrib_valus7;
- uint8_t distrib_valus8;
- struct pb15_18_st {
- uint32_t knee_point_x_9_6:4;
- uint32_t num_bezier_curve_anchors:4;
- uint32_t knee_point_y_9_8:2;
- uint32_t knee_point_x_5_0:6;
- uint32_t knee_point_y_7_0:8;
- uint32_t bezier_curve_anchors0:8;
- } __packed pb15_18_st;
- uint8_t bezier_curve_anchors1;
- uint8_t bezier_curve_anchors2;
- uint8_t bezier_curve_anchors3;
- uint8_t bezier_curve_anchors4;
- uint8_t bezier_curve_anchors5;
- uint8_t bezier_curve_anchors6;
- uint8_t bezier_curve_anchors7;
- uint8_t bezier_curve_anchors8;
- struct pb27_st {
- uint8_t rvd:6;
- uint8_t no_delay_flag:1;
- uint8_t overlay_flag:1;
- } __packed pb27_st;
-} __packed;
-
struct tvin_hdr10plus_info_s {
bool hdr10p_on;
struct tvin_hdr10p_data_s hdr10p_data;
return 0;
}
+void vdin_hdr10plus_check(struct vdin_dev_s *devp,
+ struct vframe_s *vf) {
+
+ if (devp->prop.hdr10p_info.hdr10p_on) {
+ devp->prop.hdr10p_info.hdr10p_on = false;
+
+ vf->signal_type |= (1 << 29);/*present_flag*/
+ vf->signal_type |= (0 << 25);/*0:limited*/
+ /*color_primaries*/
+ vf->signal_type = ((9 << 16) |
+ (vf->signal_type & (~0xFF0000)));
+ /*transfer_characteristic*/
+ vf->signal_type = ((0x30 << 8) |
+ (vf->signal_type & (~0xFF00)));
+ /*matrix_coefficient*/
+ vf->signal_type = ((9 << 0) |
+ (vf->signal_type & (~0xFF)));
+ memcpy(&vf->prop.hdr10p_data,
+ &devp->prop.hdr10p_info.hdr10p_data,
+ sizeof(struct tvin_hdr10p_data_s));
+ }
+}
+
void vdin_set_drm_data(struct vdin_dev_s *devp,
struct vframe_s *vf)
{
}
devp->parm.info.signal_type = vf->signal_type;
+ /*hdr10+ check*/
+ vdin_hdr10plus_check(devp, vf);
}
+
void vdin_check_hdmi_hdr(struct vdin_dev_s *devp)
{
struct tvin_state_machine_ops_s *sm_ops;
#endif
} /*vframe_hist_t */;
+struct tvin_hdr10p_data_s {
+ uint32_t vsif_hb;
+ uint32_t vsif_ieee_code;
+ struct pb4_st {
+ uint8_t rvd:1;
+ uint8_t max_lumin:5;
+ uint8_t app_ver:2;
+ } __packed pb4_st;
+ uint8_t average_maxrgb;
+ uint8_t distrib_valus0;
+ uint8_t distrib_valus1;
+ uint8_t distrib_valus2;
+ uint8_t distrib_valus3;
+ uint8_t distrib_valus4;
+ uint8_t distrib_valus5;
+ uint8_t distrib_valus6;
+ uint8_t distrib_valus7;
+ uint8_t distrib_valus8;
+ struct pb15_18_st {
+ uint32_t knee_point_x_9_6:4;
+ uint32_t num_bezier_curve_anchors:4;
+ uint32_t knee_point_y_9_8:2;
+ uint32_t knee_point_x_5_0:6;
+ uint32_t knee_point_y_7_0:8;
+ uint32_t bezier_curve_anchors0:8;
+ } __packed pb15_18_st;
+ uint8_t bezier_curve_anchors1;
+ uint8_t bezier_curve_anchors2;
+ uint8_t bezier_curve_anchors3;
+ uint8_t bezier_curve_anchors4;
+ uint8_t bezier_curve_anchors5;
+ uint8_t bezier_curve_anchors6;
+ uint8_t bezier_curve_anchors7;
+ uint8_t bezier_curve_anchors8;
+ struct pb27_st {
+ uint8_t rvd:6;
+ uint8_t no_delay_flag:1;
+ uint8_t overlay_flag:1;
+ } __packed pb27_st;
+} __packed;
+
+/*vdin dolby vsi info param*/
+struct tvin_dv_vsif_s {
+ uint8_t dobly_vision_signal:1;
+ uint8_t backlt_ctrl_MD_present:1;
+ uint8_t auxiliary_MD_present:1;
+ uint8_t eff_tmax_PQ_hi;
+ uint8_t eff_tmax_PQ_low;
+ uint8_t auxiliary_runmode;
+ uint8_t auxiliary_runversion;
+ uint8_t auxiliary_debug0;
+};
+
/*
* If bottom == 0 or right == 0, then all Blackbar information are invalid
*/
struct vframe_meas_s meas;
struct vframe_master_display_colour_s
master_display_colour;
+ struct tvin_hdr10p_data_s hdr10p_data;
} /*vframe_prop_t */;
struct vdisplay_info_s {
enum pic_mode_provider_e provider;
};
-/*vdin dolby vsi info param*/
-struct tvin_dv_vsif_s {
- uint8_t dobly_vision_signal:1;
- uint8_t backlt_ctrl_MD_present:1;
- uint8_t auxiliary_MD_present:1;
- uint8_t eff_tmax_PQ_hi;
- uint8_t eff_tmax_PQ_low;
- uint8_t auxiliary_runmode;
- uint8_t auxiliary_runversion;
- uint8_t auxiliary_debug0;
-};
-
#define BITDEPTH_Y_SHIFT 8
#define BITDEPTH_Y8 (0 << BITDEPTH_Y_SHIFT)
#define BITDEPTH_Y9 (1 << BITDEPTH_Y_SHIFT)