From 89349efd724ad6e5cba1f486b3701eec7f6708e4 Mon Sep 17 00:00:00 2001 From: "qianqian.cai" Date: Tue, 10 Dec 2019 10:28:04 +0800 Subject: [PATCH] deintlace: Play a video1920x1086, DI will block [1/1] PD#SWPL-18263 Problem: PPTV_T972, Play a video1920x1086, DI will block Solution: from the VLSI feijun ,modify the mif setting flow Verify: verify on TL1 marconi Change-Id: Iaae93bb48511b9194da59a100ab16d1c7f496cdc Signed-off-by: qianqian.cai --- drivers/amlogic/media/deinterlace/deinterlace.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/drivers/amlogic/media/deinterlace/deinterlace.c b/drivers/amlogic/media/deinterlace/deinterlace.c index 3b38a3bff123..825cf08cbcd6 100644 --- a/drivers/amlogic/media/deinterlace/deinterlace.c +++ b/drivers/amlogic/media/deinterlace/deinterlace.c @@ -3209,7 +3209,7 @@ config_di_pre_mc_mif(struct DI_MC_MIF_s *di_mcinfo_mif, if (di_buf) { pre_size_w = di_buf->vframe->width; pre_size_h = (di_buf->vframe->height + 1) / 2; - di_mcinfo_mif->size_x = (pre_size_h + 1) / 2 - 1; + di_mcinfo_mif->size_x = pre_size_h / 2 - 1; di_mcinfo_mif->size_y = 1; di_mcinfo_mif->canvas_num = di_buf->mcinfo_canvas_idx; @@ -3339,7 +3339,7 @@ static void config_di_mif(struct DI_MIF_s *di_mif, struct di_buf_s *di_buf) di_buf->vframe->width / 2 - 1; di_mif->chroma_y_start0 = 0; di_mif->chroma_y_end0 = - di_buf->vframe->height / 2 - 1; + (di_buf->vframe->height + 1) / 2 - 1; } else { if (di_pre_stru.cur_inp_type & VIDTYPE_INTERLACE) di_mif->src_prog = 0; @@ -3355,14 +3355,13 @@ static void config_di_mif(struct DI_MIF_s *di_mif, struct di_buf_s *di_buf) di_buf->vframe->width - 1; di_mif->luma_y_start0 = 0; di_mif->luma_y_end0 = - di_buf->vframe->height - 2; + di_buf->vframe->height - 1; di_mif->chroma_x_start0 = 0; di_mif->chroma_x_end0 = di_buf->vframe->width / 2 - 1; di_mif->chroma_y_start0 = 0; di_mif->chroma_y_end0 = - di_buf->vframe->height / 2 - - (di_mif->src_prog?1:2); + (di_buf->vframe->height + 1) / 2 - 1; } else { di_mif->output_field_num = 1; /* bottom */ @@ -3378,7 +3377,7 @@ static void config_di_mif(struct DI_MIF_s *di_mif, struct di_buf_s *di_buf) di_mif->chroma_y_start0 = (di_mif->src_prog?0:1); di_mif->chroma_y_end0 = - di_buf->vframe->height / 2 - 1; + (di_buf->vframe->height + 1) / 2 - 1; } } }