if (cur_mvc_type[vd_path] != (vf->type & VIDTYPE_MVC)) {
change_flag |= SIG_SRC_CHG;
cur_mvc_type[vd_path] = vf->type & VIDTYPE_MVC;
+ pr_csc(1, "VIDTYPE MVC changed.\n");
return change_flag;
}
} else
if (vecm_latch_flag & FLAG_HDR_OOTF_LATCH) {
change_flag |= SIG_HDR_OOTF_CHG;
vecm_latch_flag &= ~FLAG_HDR_OOTF_LATCH;
+ pr_csc(1, "ootf curve changed.\n");
}
return change_flag;
if (get_cpu_type() >= MESON_CPU_MAJOR_ID_G12A) {
hdr_func(OSD1_HDR, HDR_BYPASS, vinfo);
- hdr_func(VD1_HDR, HDR_SDR, vinfo);
+ if (vd_path == VD1_PATH)
+ hdr_func(VD1_HDR, HDR_SDR, vinfo);
+ else
+ hdr_func(VD2_HDR, HDR_SDR, vinfo);
return need_adjust_contrast_saturation;
}
int i, j;
if (get_cpu_type() >= MESON_CPU_MAJOR_ID_G12A) {
- hdr_func(VD1_HDR, HLG_SDR, vinfo);
+ if (vd_path == VD1_PATH)
+ hdr_func(VD1_HDR, HLG_SDR, vinfo);
+ else
+ hdr_func(VD2_HDR, HLG_SDR, vinfo);
hdr_func(OSD1_HDR, HDR_BYPASS, vinfo);
return need_adjust_contrast_saturation;
}
int i, j;
if (get_cpu_type() >= MESON_CPU_MAJOR_ID_G12A) {
- hdr_func(VD1_HDR, HDR_BYPASS, vinfo);
+ if (vd_path == VD1_PATH)
+ hdr_func(VD1_HDR, HDR_BYPASS, vinfo);
+ else
+ hdr_func(VD2_HDR, HDR_BYPASS, vinfo);
if ((csc_type == VPP_MATRIX_BT2020YUV_BT2020RGB) &&
((vinfo->hdr_info.hdr_support & 0xc) &&
(vinfo->viu_color_fmt != COLOR_FMT_RGB444))) {
int i, j;
if (get_cpu_type() >= MESON_CPU_MAJOR_ID_G12A) {
- hdr_func(VD1_HDR, HLG_HDR, vinfo);
+ if (vd_path == VD1_PATH)
+ hdr_func(VD1_HDR, HLG_HDR, vinfo);
+ else if (vd_path == VD2_PATH)
+ hdr_func(VD2_HDR, HLG_HDR, vinfo);
hdr_func(OSD1_HDR, SDR_HDR, vinfo);
return;
}
{
if (vinfo->viu_color_fmt != COLOR_FMT_RGB444) {
if (get_cpu_type() >= MESON_CPU_MAJOR_ID_G12A) {
- hdr_func(VD1_HDR, SDR_HDR, vinfo);
+ if (vd_path == VD1_PATH)
+ hdr_func(VD1_HDR, SDR_HDR, vinfo);
+ else
+ hdr_func(VD2_HDR, SDR_HDR, vinfo);
hdr_func(OSD1_HDR, SDR_HDR, vinfo);
return;
}
SIG_SRC_OUTPUT_CHG | SIG_HDR10_PLUS_MODE |
SIG_SRC_CHG | SIG_HDR_OOTF_CHG))) {
if (cpu_after_eq(MESON_CPU_MAJOR_ID_G12A) &&
- (get_cpu_type() != MESON_CPU_MAJOR_ID_TL1)) {
+ (get_cpu_type() != MESON_CPU_MAJOR_ID_TL1))
video_post_process(csc_type, vinfo, vd_path);
- cur_hdr_policy = get_hdr_policy();
- } else {
+ else
video_process(vf, csc_type, signal_change_flag,
vinfo, p, vd_path);
- }
+ cur_hdr_policy = get_hdr_policy();
}
/* eye protection mode */
} else {
/* dolby disable */
pr_csc(8,
- "vd%d: %d %d Fake SDR frame%s, policy =%d\n",
+ "vd%d: %d %d Fake SDR frame%s, policy =%d, cur_policy =%d\n",
vd_path + 1,
null_vf_cnt[vd_path],
toggle_frame,
is_video_layer_on(vd_path) ?
" " : ", video off",
- get_hdr_policy());
+ get_hdr_policy(),
+ cur_hdr_policy);
send_fake_frame = true;
if (get_hdr_policy() == 1) {
/* adaptive hdr */
fake_vframe.prop.
master_display_colour.present_flag
= 0x80000000;
+ memset(
+ &fake_vframe.prop.master_display_colour,
+ 0,
+ sizeof(struct vframe_master_display_colour_s));
vpp_matrix_update(
&fake_vframe, vinfo,
CSC_FLAG_TOGGLE_FRAME, vd_path);