/** * @file lv_ffmpeg.h * */ #ifndef LV_FFMPEG_H #define LV_FFMPEG_H #ifdef __cplusplus extern "C" { #endif /********************* * INCLUDES *********************/ #include "../../../../lvgl/lvgl.h" #if LV_USE_FFMPEG != 0 /********************* * DEFINES *********************/ /********************** * TYPEDEFS **********************/ struct ffmpeg_context_s; extern const lv_obj_class_t lv_ffmpeg_player_class; typedef struct { lv_img_t img; lv_timer_t * timer; lv_img_dsc_t imgdsc; bool auto_restart; struct ffmpeg_context_s * ffmpeg_ctx; } lv_ffmpeg_player_t; typedef enum { LV_FFMPEG_PLAYER_CMD_START, LV_FFMPEG_PLAYER_CMD_STOP, LV_FFMPEG_PLAYER_CMD_PAUSE, LV_FFMPEG_PLAYER_CMD_RESUME, _LV_FFMPEG_PLAYER_CMD_LAST } lv_ffmpeg_player_cmd_t; /********************** * GLOBAL PROTOTYPES **********************/ /** * Register FFMPEG image decoder */ void lv_ffmpeg_init(void); /** * Get the number of frames contained in the file * @param path image or video file name * @return Number of frames, less than 0 means failed */ int lv_ffmpeg_get_frame_num(const char * path); /** * Create ffmpeg_player object * @param parent pointer to an object, it will be the parent of the new player * @return pointer to the created ffmpeg_player */ lv_obj_t * lv_ffmpeg_player_create(lv_obj_t * parent); /** * Set the path of the file to be played * @param obj pointer to a ffmpeg_player object * @param path video file path * @return LV_RES_OK: no error; LV_RES_INV: can't get the info. */ lv_res_t lv_ffmpeg_player_set_src(lv_obj_t * obj, const char * path); /** * Set command control video player * @param obj pointer to a ffmpeg_player object * @param cmd control commands */ void lv_ffmpeg_player_set_cmd(lv_obj_t * obj, lv_ffmpeg_player_cmd_t cmd); /** * Set the video to automatically replay * @param obj pointer to a ffmpeg_player object * @param en true: enable the auto restart */ void lv_ffmpeg_player_set_auto_restart(lv_obj_t * obj, bool en); /*===================== * Other functions *====================*/ /********************** * MACROS **********************/ #endif /*LV_USE_FFMPEG*/ #ifdef __cplusplus } /*extern "C"*/ #endif #endif /*LV_FFMPEG_H*/