vdin: cvbs video is not smooth after playing a period of time [1/1]
authorzhiwei.yuan <zhiwei.yuan@amlogic.com>
Tue, 14 May 2019 10:39:10 +0000 (18:39 +0800)
committerTao Zeng <tao.zeng@amlogic.com>
Fri, 17 May 2019 05:54:28 +0000 (22:54 -0700)
PD#SWPL-8565

Problem:
unknown buf be taken by vpp sometimes

Solution:
fix skip mechanism, reduce numeber of unknown buf

Verify:
verified by t962x2_x301

Change-Id: I296d9f2f5c25a37ec32b458ecb23d64ca8c321a7
Signed-off-by: zhiwei.yuan <zhiwei.yuan@amlogic.com>
drivers/amlogic/media/vin/tvin/vdin/vdin_vf.c

index 2bdd0e1..9f8bda6 100644 (file)
@@ -1018,10 +1018,10 @@ void vdin_vf_disp_mode_update(struct vf_entry *vfe, struct vf_pool *p)
                p->disp_index[0] = 0;
        vfe->vf.index_disp = p->disp_index[0];
 
-       if (p->disp_mode[p->disp_index[p->skip_vf_num]] !=
-               VFRAME_DISP_MODE_SKIP)
-               p->disp_mode[p->disp_index[p->skip_vf_num]] =
-                       VFRAME_DISP_MODE_OK;
+       for (i = p->skip_vf_num; i > 0  && (i < VFRAME_DISP_MAX_NUM); i--)
+               if (p->disp_mode[p->disp_index[i]] != VFRAME_DISP_MODE_SKIP)
+                       p->disp_mode[p->disp_index[i]] = VFRAME_DISP_MODE_OK;
+
        p->disp_mode[p->disp_index[0]] = VFRAME_DISP_MODE_UNKNOWN;
 }
 /*skip all from current