vpp: Modify vframe epoll event [1/1]
authorqiyao.zhou <qiyao.zhou@amlogic.com>
Wed, 22 May 2019 07:43:15 +0000 (15:43 +0800)
committerJianxin Pan <jianxin.pan@amlogic.com>
Wed, 22 May 2019 09:06:10 +0000 (02:06 -0700)
PD#SWPL-8850

Problem:
too many print when channel change.

Solution:
Modify vframe epoll event flow to avoid same event.

Verify:
verify on marconi.

Change-Id: Id709439f24d3cad82df6082c477cacce1a9b9cc7
Signed-off-by: qiyao.zhou <qiyao.zhou@amlogic.com>
drivers/amlogic/media/video_sink/video.c

index 4c883fb..de19c24 100644 (file)
@@ -4059,8 +4059,11 @@ static void vsync_toggle_frame(struct vframe_s *vf, int line)
                int iret;
 
                last_process_3d_type = process_3d_type;
-               atomic_inc(&video_sizechange);
-               wake_up_interruptible(&amvideo_sizechange_wait);
+               if ((cur_dispbuf->width != vf->width) ||
+                       (cur_dispbuf->height != vf->height)) {
+                       atomic_inc(&video_sizechange);
+                       wake_up_interruptible(&amvideo_sizechange_wait);
+               }
                amlog_mask(LOG_MASK_FRAMEINFO,
                           "%s %dx%d  ar=0x%x\n",
                           ((vf->type & VIDTYPE_TYPEMASK) ==