Is there any way pause LVGL refresh framebuffer


When I want to play video, I use forkpty() to run a vlc player .
If I use system() , it will freeze lvgl and won’t mess up the framebuffer.
But I want lvgl do some async task at background when I run vlc.
So I need a way to pause lvgl fbdev refresh task and recovery it when vlc get job done.
Is there anyone know how to do it? Many thanks.

What MCU/Processor/Board and compiler are you using?

Allwinner S3 / Linux fbdev / gcc

What do you want to achieve?

Pause framebuffer refresh

What have you tried so far?


Code to reproduce

// I really have no idea how to do this

Screenshot and/or video


Something like this should work:

lv_task_t * refr_task = _lv_disp_get_refr_task(disp); /* disp was returned by lv_disp_drv_register */

lv_task_set_prio(refr_task, LV_TASK_PRIO_OFF); /* disable refresh */
lv_task_set_prio(refr_task, LV_REFR_TASK_PRIO); /* enable refresh */
1 Like