pipvideo: fix cur_pipbuf not set to NULL when disable video before unreg [1/1]
authorjintao xu <jintao.xu@amlogic.com>
Fri, 31 May 2019 06:33:13 +0000 (14:33 +0800)
committerJianxin Pan <jianxin.pan@amlogic.com>
Tue, 4 Jun 2019 02:22:18 +0000 (19:22 -0700)
PD#OTT-4262

Problem:
When disable video before unreg, cur_pipbuf will not set to NULL.
Next time playback will tog this buffer.

Solution:
Free cur_pipbuf when vd2 is closed in unreg.

Verify:
U212

Change-Id: Ie381ae9feda8a5d23a93b3a5974d9c0af87e6d6e
Signed-off-by: jintao xu <jintao.xu@amlogic.com>
drivers/amlogic/media/video_sink/video.c

index e446691..ecd9e75 100644 (file)
@@ -8771,11 +8771,13 @@ static void pip_vf_unreg_provider(void)
                try_free_keep_videopip(1);
        }
 
-       if (cur_pipbuf)
+       if (cur_pipbuf && get_videopip_enabled())
                keeped = vf_keep_pip_current_locked(cur_pipbuf, NULL);
+       else if (cur_pipbuf)
+               keeped = -1;
 
        if (keeped < 0) {/*keep failed.*/
-               pr_info("videopip keep failed, disable video now!\n");
+               pr_info("videopip disable video now!\n");
                safe_disble_videolayer2();
                try_free_keep_videopip(1);
        }