From 20c6fe0f8fbfd70ad84a1058b1725955a0ad272d Mon Sep 17 00:00:00 2001 From: "shihong.zheng" Date: Thu, 5 Jul 2018 11:07:04 +0800 Subject: [PATCH] dv: fixed dolbyvision video cannot play [2/2] PD#169274: dv: merge some dv code from 3.14, add a dolbyvision bypass el define and metadata parser return val check. Change-Id: I2a687d0e3187d1f56880508b4d4a3263edcdc071 Signed-off-by: shihong.zheng --- drivers/amlogic/media/enhancement/amdolby_vision/amdolby_vision.c | 6 ++++-- include/linux/amlogic/media/vfm/vframe_provider.h | 3 ++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/drivers/amlogic/media/enhancement/amdolby_vision/amdolby_vision.c b/drivers/amlogic/media/enhancement/amdolby_vision/amdolby_vision.c index 88d14c4..c484708 100644 --- a/drivers/amlogic/media/enhancement/amdolby_vision/amdolby_vision.c +++ b/drivers/amlogic/media/enhancement/amdolby_vision/amdolby_vision.c @@ -3584,6 +3584,7 @@ static int parse_sei_and_meta( unsigned long flags; bool parser_overflow = false; int nextId; + int rpu_ret = 0; nextId = currentId ^ 1; if ((req->aux_buf == NULL) @@ -3659,13 +3660,14 @@ static int parse_sei_and_meta( } md_size = comp_size = 0; - if (p_funcs->metadata_parser_process( + rpu_ret = p_funcs->metadata_parser_process( meta_buf, size + 2, comp_buf[nextId] + *total_comp_size, &comp_size, md_buf[nextId] + *total_md_size, &md_size, - true)) { + true); + if (rpu_ret < 0) { pr_dolby_error( "meta(%d), pts(%lld) -> metadata parser process fail\n", size, vf->pts_us64); diff --git a/include/linux/amlogic/media/vfm/vframe_provider.h b/include/linux/amlogic/media/vfm/vframe_provider.h index 6efa59f..157359a 100644 --- a/include/linux/amlogic/media/vfm/vframe_provider.h +++ b/include/linux/amlogic/media/vfm/vframe_provider.h @@ -34,11 +34,12 @@ struct vframe_states { #define VFRAME_EVENT_RECEIVER_PUT 0x02 #define VFRAME_EVENT_RECEIVER_FRAME_WAIT 0x04 #define VFRAME_EVENT_RECEIVER_POS_CHANGED 0x08 -#define VFRAME_EVENT_RECEIVER_PARAM_SET 0x10 +#define VFRAME_EVENT_RECEIVER_PARAM_SET 0x10 #define VFRAME_EVENT_RECEIVER_RESET 0x20 #define VFRAME_EVENT_RECEIVER_FORCE_UNREG 0x40 #define VFRAME_EVENT_RECEIVER_GET_AUX_DATA 0x80 #define VFRAME_EVENT_RECEIVER_DISP_MODE 0x100 +#define VFRAME_EVENT_RECEIVER_DOLBY_BYPASS_EL 0x200 /* for VFRAME_EVENT_RECEIVER_GET_AUX_DATA*/ struct provider_aux_req_s { -- 2.7.4