dv: below 720p was chaged to HDR10 mode in Dolby

PD#163239: dv: below 720p was changed to HDR10 in Dolby

Change-Id: Ie6cedbc03582e4b36b6d3a8c628bbf41001862c2
Signed-off-by: zhilei.wu <zhilei.wu@amlogic.com>
This commit is contained in:
zhilei.wu
2018-04-12 15:17:15 +08:00
committed by Yixun Lan
parent f2653f4294
commit 07d8ca719e

View File

@@ -3169,19 +3169,12 @@ static int sink_support_dolby_vision(const struct vinfo_s *vinfo)
return 0;
if (dolby_vision_flags & FLAG_DISABLE_DOVI_OUT)
return 0;
#if 0
/* 2160p60 if TV support */
if ((vinfo->vout_device->mode >= VMODE_4K2K_SMPTE_50HZ)
&& (vinfo->vout_device->dv_info->sup_2160p60hz == 1))
if ((vinfo->width >= 1920) &&
(vinfo->height >= 1080) &&
(vinfo->field_height >= 1080))
return 1;
/* 1080p~2160p30 if TV support */
else if ((vinfo->vout_device->mode >= VMODE_1080P)
&& (vinfo->vout_device->mode <= VMODE_4K2K_SMPTE_30HZ))
return 1;
return 0;
#else
return 1;
#endif
else
return 0;
}
static int sink_support_hdr(const struct vinfo_s *vinfo)
@@ -3740,6 +3733,37 @@ static int check_primaries(struct vframe_master_display_colour_s *p_mdc)
return 0;
}
void prepare_sdr2hdr10_param(void)
{
uint32_t max_lum = 1000 * 10000;
uint32_t min_lum = 50;
hdr10_param.
min_display_mastering_luminance
= min_lum;
hdr10_param.
max_display_mastering_luminance
= max_lum;
hdr10_param.Rx
= bt2020_primaries[2][0];
hdr10_param.Ry
= bt2020_primaries[2][1];
hdr10_param.Gx
= bt2020_primaries[0][0];
hdr10_param.Gy
= bt2020_primaries[0][1];
hdr10_param.Bx
= bt2020_primaries[1][0];
hdr10_param.By
= bt2020_primaries[1][1];
hdr10_param.Wx
= bt2020_white_point[0];
hdr10_param.Wy
= bt2020_white_point[1];
hdr10_param.max_content_light_level = 0;
hdr10_param.max_pic_average_light_level = 0;
}
void prepare_hdr10_param(
struct vframe_master_display_colour_s *p_mdc,
struct hdr10_param_s *p_hdr10_param)
@@ -4849,7 +4873,14 @@ int dolby_vision_parse_metadata(
dst_format = FORMAT_HDR10;
else
dst_format = FORMAT_SDR;
if ((src_format == FORMAT_SDR) &&
(dolby_vision_mode == DOLBY_VISION_OUTPUT_MODE_HDR10) &&
!(dolby_vision_flags & FLAG_CERTIFICAION)) {
src_format = FORMAT_HDR10;
prepare_sdr2hdr10_param();
/* for stb with v2.3 may use 12 bit */
src_bdp = 10;
}
#ifdef V2_4
if ((src_format != dovi_setting.src_format)
|| (dst_format != dovi_setting.dst_format))