diff --git a/drivers/amlogic/media/enhancement/amdolby_vision/amdolby_vision.c b/drivers/amlogic/media/enhancement/amdolby_vision/amdolby_vision.c index d2970766dd5b..5b0ded4176d0 100644 --- a/drivers/amlogic/media/enhancement/amdolby_vision/amdolby_vision.c +++ b/drivers/amlogic/media/enhancement/amdolby_vision/amdolby_vision.c @@ -5023,6 +5023,7 @@ int dolby_vision_parse_metadata( u32 graphic_max = 100; /* 1 */ int ret_flags = 0; int ret = -1; + bool melFlag = false; memset(&req, 0, (sizeof(struct provider_aux_req_s))); memset(&el_req, 0, (sizeof(struct provider_aux_req_s))); @@ -5150,6 +5151,9 @@ int dolby_vision_parse_metadata( vf_notify_provider_by_name("dvbldec", VFRAME_EVENT_RECEIVER_DOLBY_BYPASS_EL, (void *)&req); + if (ret_flags == 1) { + melFlag = true; + } if (!is_dv_standard_es(req.dv_enhance_exist, ret_flags, w)) { src_format = FORMAT_SDR; @@ -5741,7 +5745,7 @@ int dolby_vision_parse_metadata( graphic_max * 10000, dolby_vision_target_min, dolby_vision_target_max[src_format][dst_format] * 10000, - (!el_flag) || + (!el_flag && !melFlag) || (dolby_vision_flags & FLAG_DISABLE_COMPOSER), &hdr10_param, &new_dovi_setting);