|
|
15行目: |
15行目: |
| | | |
| * Download FFmpeg from here | | * Download FFmpeg from here |
− | * <code>./configure --disable-all --disable-autodetect --disable-podpages --disable-asm --enable-avcodec --enable-avformat --enable-decoders --enable-encoders --enable-demuxers --enable-parsers --enable-protocol='file' --enable-swscale --enable-zlib</code> | + | * <code style="color: #bb0000;">./configure --disable-all --disable-autodetect --disable-podpages --disable-asm --enable-avcodec --enable-avformat --enable-decoders --enable-encoders --enable-demuxers --enable-parsers --enable-protocol='file' --enable-swscale --enable-zlib</code> |
− | * <code>make</code> | + | * <code style="color: #bb0000;">make</code> |
− | * <code>sudo make install</code> | + | * <code style="color: #bb0000;">sudo make install</code> |
| | | |
| == Add FFmpeg to your project == | | == Add FFmpeg to your project == |
| | | |
− | * Add library: <code>FFmpeg</code> (for GCC: <code>-lavformat -lavcodec -lavutil -lswscale -lm -lz -lpthread</code>) | + | * Add library: <code style="color: #bb0000;">FFmpeg</code> (for GCC: <code style="color: #bb0000;">-lavformat -lavcodec -lavutil -lswscale -lm -lz -lpthread</code>) |
| | | |
| == Usage == | | == Usage == |
− | Enable <code>LV_USE_FFMPEG</code> in <code>lv_conf.h</code>. | + | Enable <code style="color: #bb0000;">LV_USE_FFMPEG</code> in <code style="color: #bb0000;">lv_conf.h</code>. |
| | | |
| See the examples below. | | See the examples below. |
43行目: |
43行目: |
| Enums | | Enums |
| | | |
− | ; <span id="_CPPv322lv_ffmpeg_player_cmd_t"></span><span id="_CPPv222lv_ffmpeg_player_cmd_t"></span><span id="lv__ffmpeg_8h_1a6b99f7ef5a3c69662a18f4af6822ae03" class="target"></span>enum lv_ffmpeg_player_cmd_t[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv422lv_ffmpeg_player_cmd_t] <span id="_CPPv322lv_ffmpeg_player_cmd_t"></span><span id="_CPPv222lv_ffmpeg_player_cmd_t"></span><span id="lv__ffmpeg_8h_1a6b99f7ef5a3c69662a18f4af6822ae03" class="target"></span>
| + | enum lv_ffmpeg_player_cmd_t |
| : ''Values:'' | | : ''Values:'' |
− | :; <span id="_CPPv3N22lv_ffmpeg_player_cmd_t26LV_FFMPEG_PLAYER_CMD_STARTE"></span><span id="_CPPv2N22lv_ffmpeg_player_cmd_t26LV_FFMPEG_PLAYER_CMD_STARTE"></span><span id="lv__ffmpeg_8h_1a6b99f7ef5a3c69662a18f4af6822ae03a3974e4171ff0f33aa02fe99cba7bfe59" class="target"></span>enumerator L[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv422lv_ffmpeg_player_cmd_t]V_FFMPEG_PLAYER_CMD_START[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv4N22lv_ffmpeg_player_cmd_t26LV_FFMPEG_PLAYER_CMD_STARTE] <span id="_CPPv3N22lv_ffmpeg_player_cmd_t26LV_FFMPEG_PLAYER_CMD_STARTE"></span><span id="_CPPv2N22lv_ffmpeg_player_cmd_t26LV_FFMPEG_PLAYER_CMD_STARTE"></span><span id="lv__ffmpeg_8h_1a6b99f7ef5a3c69662a18f4af6822ae03a3974e4171ff0f33aa02fe99cba7bfe59" class="target"></span> | + | :; enumerator LV_FFMPEG_PLAYER_CMD_START |
| :: | | :: |
− | :; <span id="_CPPv3N22lv_ffmpeg_player_cmd_t25LV_FFMPEG_PLAYER_CMD_STOPE"></span><span id="_CPPv2N22lv_ffmpeg_player_cmd_t25LV_FFMPEG_PLAYER_CMD_STOPE"></span><span id="lv__ffmpeg_8h_1a6b99f7ef5a3c69662a18f4af6822ae03ac2fb5bdc35bb424a136ffcc85d7d181b" class="target"></span>enumerator LV_FFMPEG_PLAYER[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv4N22lv_ffmpeg_player_cmd_t26LV_FFMPEG_PLAYER_CMD_STARTE]_CMD_STOP[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv4N22lv_ffmpeg_player_cmd_t25LV_FFMPEG_PLAYER_CMD_STOPE] <span id="_CPPv3N22lv_ffmpeg_player_cmd_t25LV_FFMPEG_PLAYER_CMD_STOPE"></span><span id="_CPPv2N22lv_ffmpeg_player_cmd_t25LV_FFMPEG_PLAYER_CMD_STOPE"></span><span id="lv__ffmpeg_8h_1a6b99f7ef5a3c69662a18f4af6822ae03ac2fb5bdc35bb424a136ffcc85d7d181b" class="target"></span> | + | :; enumerator LV_FFMPEG_PLAYER_CMD_STOP |
| :: | | :: |
− | :; <span id="_CPPv3N22lv_ffmpeg_player_cmd_t26LV_FFMPEG_PLAYER_CMD_PAUSEE"></span><span id="_CPPv2N22lv_ffmpeg_player_cmd_t26LV_FFMPEG_PLAYER_CMD_PAUSEE"></span><span id="lv__ffmpeg_8h_1a6b99f7ef5a3c69662a18f4af6822ae03ac6b90ccf1b49220ed98cd8ac9fb7cf26" class="target"></span>enumerator LV_FFMPEG_PLAYE[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv4N22lv_ffmpeg_player_cmd_t25LV_FFMPEG_PLAYER_CMD_STOPE]R_CMD_PAUSE[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv4N22lv_ffmpeg_player_cmd_t26LV_FFMPEG_PLAYER_CMD_PAUSEE] <span id="_CPPv3N22lv_ffmpeg_player_cmd_t26LV_FFMPEG_PLAYER_CMD_PAUSEE"></span><span id="_CPPv2N22lv_ffmpeg_player_cmd_t26LV_FFMPEG_PLAYER_CMD_PAUSEE"></span><span id="lv__ffmpeg_8h_1a6b99f7ef5a3c69662a18f4af6822ae03ac6b90ccf1b49220ed98cd8ac9fb7cf26" class="target"></span> | + | :; enumerator LV_FFMPEG_PLAYER_CMD_PAUSE |
| :: | | :: |
− | :; <span id="_CPPv3N22lv_ffmpeg_player_cmd_t27LV_FFMPEG_PLAYER_CMD_RESUMEE"></span><span id="_CPPv2N22lv_ffmpeg_player_cmd_t27LV_FFMPEG_PLAYER_CMD_RESUMEE"></span><span id="lv__ffmpeg_8h_1a6b99f7ef5a3c69662a18f4af6822ae03a1819d17160123ca945ae2e2153d8f49d" class="target"></span>enumerator LV_FFMPEG_PLAYER[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv4N22lv_ffmpeg_player_cmd_t26LV_FFMPEG_PLAYER_CMD_PAUSEE]_CMD_RESUME[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv4N22lv_ffmpeg_player_cmd_t27LV_FFMPEG_PLAYER_CMD_RESUMEE] <span id="_CPPv3N22lv_ffmpeg_player_cmd_t27LV_FFMPEG_PLAYER_CMD_RESUMEE"></span><span id="_CPPv2N22lv_ffmpeg_player_cmd_t27LV_FFMPEG_PLAYER_CMD_RESUMEE"></span><span id="lv__ffmpeg_8h_1a6b99f7ef5a3c69662a18f4af6822ae03a1819d17160123ca945ae2e2153d8f49d" class="target"></span> | + | :; enumerator LV_FFMPEG_PLAYER_CMD_RESUME |
| :: | | :: |
− | :; <span id="_CPPv3N22lv_ffmpeg_player_cmd_t26_LV_FFMPEG_PLAYER_CMD_LASTE"></span><span id="_CPPv2N22lv_ffmpeg_player_cmd_t26_LV_FFMPEG_PLAYER_CMD_LASTE"></span><span id="lv__ffmpeg_8h_1a6b99f7ef5a3c69662a18f4af6822ae03a86a9ab5a0475b1a547d1d4f0f5db51ce" class="target"></span>enumerator _LV_FFMPEG_PLAYER[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv4N22lv_ffmpeg_player_cmd_t27LV_FFMPEG_PLAYER_CMD_RESUMEE]_CMD_LAST[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv4N22lv_ffmpeg_player_cmd_t26_LV_FFMPEG_PLAYER_CMD_LASTE] <span id="_CPPv3N22lv_ffmpeg_player_cmd_t26_LV_FFMPEG_PLAYER_CMD_LASTE"></span><span id="_CPPv2N22lv_ffmpeg_player_cmd_t26_LV_FFMPEG_PLAYER_CMD_LASTE"></span><span id="lv__ffmpeg_8h_1a6b99f7ef5a3c69662a18f4af6822ae03a86a9ab5a0475b1a547d1d4f0f5db51ce" class="target"></span> | + | :; enumerator _LV_FFMPEG_PLAYER_CMD_LAST |
| :: | | :: |
| | | |
| Functions | | Functions |
| | | |
− | ; <span id="_CPPv314lv_ffmpeg_initv"></span><span id="_CPPv214lv_ffmpeg_initv"></span><span id="lv_ffmpeg_init__void"></span><span id="lv__ffmpeg_8h_1afc79954212a779bb104b65e1e6427239" class="target"></span>void lv_ffmpeg[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv4N22lv_ffmpeg_player_cmd_t26_LV_FFMPEG_PLAYER_CMD_LASTE]_init(void)[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv414lv_ffmpeg_initv] <span id="_CPPv314lv_ffmpeg_initv"></span><span id="_CPPv214lv_ffmpeg_initv"></span><span id="lv_ffmpeg_init__void"></span><span id="lv__ffmpeg_8h_1afc79954212a779bb104b65e1e6427239" class="target"></span>
| + | void lv_ffmpeg_init(void) |
− | : Register FFMPEG image[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv414lv_ffmpeg_initv] decoder | + | : Register FFMPEG image decoder |
| | | |
− | ; <span id="_CPPv323lv_ffmpeg_get_frame_numPKc"></span><span id="_CPPv223lv_ffmpeg_get_frame_numPKc"></span><span id="lv_ffmpeg_get_frame_num__cCP"></span><span id="lv__ffmpeg_8h_1ab56507f7daa908a049d4118db3592eea" class="target"></span>int lv_ffmpeg_get_frame_num(const char *path)[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv423lv_ffmpeg_get_frame_numPKc] <span id="_CPPv323lv_ffmpeg_get_frame_numPKc"></span><span id="_CPPv223lv_ffmpeg_get_frame_numPKc"></span><span id="lv_ffmpeg_get_frame_num__cCP"></span><span id="lv__ffmpeg_8h_1ab56507f7daa908a049d4118db3592eea" class="target"></span>
| + | int lv_ffmpeg_get_frame_num(const char *path) |
− | : Get the number of frames contained in the[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv423lv_ffmpeg_get_frame_numPKc] file | + | : Get the number of frames contained in the file |
| :; Parameters | | :; Parameters |
| :: path -- image or video file name | | :: path -- image or video file name |
68行目: |
68行目: |
| :: Number of frames, less than 0 means failed | | :: Number of frames, less than 0 means failed |
| | | |
− | ; <span id="_CPPv323lv_ffmpeg_player_createP8lv_obj_t"></span><span id="_CPPv223lv_ffmpeg_player_createP8lv_obj_t"></span><span id="lv_ffmpeg_player_create__lv_obj_tP"></span><span id="lv__ffmpeg_8h_1aafbf8ce148637731ed6c2b9a78eb051d" class="target"></span>lv_obj_t *lv_ffmpeg_player_create(lv_obj_t *parent)[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv423lv_ffmpeg_player_createP8lv_obj_t] <span id="_CPPv323lv_ffmpeg_player_createP8lv_obj_t"></span><span id="_CPPv223lv_ffmpeg_player_createP8lv_obj_t"></span><span id="lv_ffmpeg_player_create__lv_obj_tP"></span><span id="lv__ffmpeg_8h_1aafbf8ce148637731ed6c2b9a78eb051d" class="target"></span>
| + | lv_obj_t *lv_ffmpeg_player_create(lv_obj_t *parent) |
| : Create ffmpeg_player object | | : Create ffmpeg_player object |
| :; Parameters | | :; Parameters |
− | :: pa[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv423lv_ffmpeg_player_createP8lv_obj_t]rent -- pointer to an object, it will be the parent of the new player | + | :: parent -- pointer to an object, it will be the parent of the new player |
| :; Returns | | :; Returns |
| :: pointer to the created ffmpeg_player | | :: pointer to the created ffmpeg_player |
| | | |
− | ; <span id="_CPPv324lv_ffmpeg_player_set_srcP8lv_obj_tPKc"></span><span id="_CPPv224lv_ffmpeg_player_set_srcP8lv_obj_tPKc"></span><span id="lv_ffmpeg_player_set_src__lv_obj_tP.cCP"></span><span id="lv__ffmpeg_8h_1a1fad8be1019b63dd587ef5e71bfcc440" class="target"></span>lv_res_t lv_ffmpeg_player_set_src(lv_obj_t *obj, const char *path)[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv424lv_ffmpeg_player_set_srcP8lv_obj_tPKc] <span id="_CPPv324lv_ffmpeg_player_set_srcP8lv_obj_tPKc"></span><span id="_CPPv224lv_ffmpeg_player_set_srcP8lv_obj_tPKc"></span><span id="lv_ffmpeg_player_set_src__lv_obj_tP.cCP"></span><span id="lv__ffmpeg_8h_1a1fad8be1019b63dd587ef5e71bfcc440" class="target"></span>
| + | lv_res_t lv_ffmpeg_player_set_src(lv_obj_t *obj, const char *path) |
| : Set the path of the file to be played | | : Set the path of the file to be played |
| :; Parameters | | :; Parameters |
− | ::* obj -[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv424lv_ffmpeg_player_set_srcP8lv_obj_tPKc]- pointer to a ffmpeg_player object | + | ::* obj -- pointer to a ffmpeg_player object |
| ::* path -- video file path | | ::* path -- video file path |
| :; Returns | | :; Returns |
| :: LV_RES_OK: no error; LV_RES_INV: can't get the info. | | :: LV_RES_OK: no error; LV_RES_INV: can't get the info. |
| | | |
− | ; <span id="_CPPv324lv_ffmpeg_player_set_cmdP8lv_obj_t22lv_ffmpeg_player_cmd_t"></span><span id="_CPPv224lv_ffmpeg_player_set_cmdP8lv_obj_t22lv_ffmpeg_player_cmd_t"></span><span id="lv_ffmpeg_player_set_cmd__lv_obj_tP.lv_ffmpeg_player_cmd_t"></span><span id="lv__ffmpeg_8h_1ab0c15e9a56343449fbfd8fb241982e2f" class="target"></span>void lv_ffmpeg_player_set_cmd(lv_obj_t *obj, lv_ffmpeg_player_cmd_t cmd)[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv424lv_ffmpeg_player_set_cmdP8lv_obj_t22lv_ffmpeg_player_cmd_t] <span id="_CPPv324lv_ffmpeg_player_set_cmdP8lv_obj_t22lv_ffmpeg_player_cmd_t"></span><span id="_CPPv224lv_ffmpeg_player_set_cmdP8lv_obj_t22lv_ffmpeg_player_cmd_t"></span><span id="lv_ffmpeg_player_set_cmd__lv_obj_tP.lv_ffmpeg_player_cmd_t"></span><span id="lv__ffmpeg_8h_1ab0c15e9a56343449fbfd8fb241982e2f" class="target"></span>
| + | void lv_ffmpeg_player_set_cmd(lv_obj_t *obj, lv_ffmpeg_player_cmd_t cmd) |
| : Set command control video player | | : Set command control video player |
| :; Parameters | | :; Parameters |
− | ::* obj -- pointer t[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv424lv_ffmpeg_player_set_cmdP8lv_obj_t22lv_ffmpeg_player_cmd_t]o a ffmpeg_player object | + | ::* obj -- pointer to a ffmpeg_player object |
| ::* cmd -- control commands | | ::* cmd -- control commands |
| | | |
− | ; <span id="_CPPv333lv_ffmpeg_player_set_auto_restartP8lv_obj_tb"></span><span id="_CPPv233lv_ffmpeg_player_set_auto_restartP8lv_obj_tb"></span><span id="lv_ffmpeg_player_set_auto_restart__lv_obj_tP.b"></span><span id="lv__ffmpeg_8h_1aa08e96785ec2989358fa6a2c8917dd65" class="target"></span>void lv_ffmpeg_player_set_auto_restart(lv_obj_t *obj, bool en)[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv433lv_ffmpeg_player_set_auto_restartP8lv_obj_tb] <span id="_CPPv333lv_ffmpeg_player_set_auto_restartP8lv_obj_tb"></span><span id="_CPPv233lv_ffmpeg_player_set_auto_restartP8lv_obj_tb"></span><span id="lv_ffmpeg_player_set_auto_restart__lv_obj_tP.b"></span><span id="lv__ffmpeg_8h_1aa08e96785ec2989358fa6a2c8917dd65" class="target"></span>
| + | void lv_ffmpeg_player_set_auto_restart(lv_obj_t *obj, bool en) |
| : Set the video to automatically replay | | : Set the video to automatically replay |
| :; Parameters | | :; Parameters |
− | ::* o[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv433lv_ffmpeg_player_set_auto_restartP8lv_obj_tb]bj -- pointer to a ffmpeg_player object | + | ::* obj -- pointer to a ffmpeg_player object |
| ::* en -- true: enable the auto restart | | ::* en -- true: enable the auto restart |
| | | |
| Variables | | Variables |
| | | |
− | ; <span id="_CPPv322lv_ffmpeg_player_class"></span><span id="_CPPv222lv_ffmpeg_player_class"></span><span id="lv_ffmpeg_player_class__lv_obj_class_tC"></span><span id="lv__ffmpeg_8h_1a43ad7afa4eed61882d7aae07b06c2745" class="target"></span>const lv_obj_class_t lv_ffmpeg_player_class[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv422lv_ffmpeg_player_class] <span id="_CPPv322lv_ffmpeg_player_class"></span><span id="_CPPv222lv_ffmpeg_player_class"></span><span id="lv_ffmpeg_player_class__lv_obj_class_tC"></span><span id="lv__ffmpeg_8h_1a43ad7afa4eed61882d7aae07b06c2745" class="target"></span>
| + | const lv_obj_class_t lv_ffmpeg_player_class |
| : | | : |
| | | |
− | ; <span id="_CPPv318lv_ffmpeg_player_t"></span><span id="_CPPv218lv_ffmpeg_player_t"></span><span id="lv_ffmpeg_player_t"></span><span id="structlv__ffmpeg__player__t" class="target"></span>struct lv_ffmpeg_player_t[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv418lv_ffmpeg_player_t] <span id="_CPPv318lv_ffmpeg_player_t"></span><span id="_CPPv218lv_ffmpeg_player_t"></span><span id="lv_ffmpeg_player_t"></span><span id="structlv__ffmpeg__player__t" class="target"></span>
| + | struct lv_ffmpeg_player_t |
− | : Pu[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv422lv_ffmpeg_player_class]blic Members | + | : Public Members |
− | :; <span id="_CPPv3N18lv_ffmpeg_player_t3imgE"></span><span id="_CPPv2N18lv_ffmpeg_player_t3imgE"></span><span id="lv_ffmpeg_player_t::img__lv_img_t"></span><span id="structlv__ffmpeg__player__t_1a5fc9a7b172bae6264bebca8f7907fb50" class="target"></span>lv_[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv418lv_ffmpeg_player_t]img_t img[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv4N18lv_ffmpeg_player_t3imgE] <span id="_CPPv3N18lv_ffmpeg_player_t3imgE"></span><span id="_CPPv2N18lv_ffmpeg_player_t3imgE"></span><span id="lv_ffmpeg_player_t::img__lv_img_t"></span><span id="structlv__ffmpeg__player__t_1a5fc9a7b172bae6264bebca8f7907fb50" class="target"></span> | + | :; lv_img_t img |
| :: | | :: |
− | :; <span id="_CPPv3N18lv_ffmpeg_player_t5timerE"></span><span id="_CPPv2N18lv_ffmpeg_player_t5timerE"></span><span id="lv_ffmpeg_player_t::timer__lv_timer_tP"></span><span id="structlv__ffmpeg__player__t_1ac2890dc7a7012d353e3ed5261f9bcaec" class="target"></span>lv[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv4N18lv_ffmpeg_player_t3imgE]_timer_t *timer[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv4N18lv_ffmpeg_player_t5timerE] <span id="_CPPv3N18lv_ffmpeg_player_t5timerE"></span><span id="_CPPv2N18lv_ffmpeg_player_t5timerE"></span><span id="lv_ffmpeg_player_t::timer__lv_timer_tP"></span><span id="structlv__ffmpeg__player__t_1ac2890dc7a7012d353e3ed5261f9bcaec" class="target"></span> | + | :; lv_timer_t *timer |
| :: | | :: |
− | :; <span id="_CPPv3N18lv_ffmpeg_player_t6imgdscE"></span><span id="_CPPv2N18lv_ffmpeg_player_t6imgdscE"></span><span id="lv_ffmpeg_player_t::imgdsc__lv_img_dsc_t"></span><span id="structlv__ffmpeg__player__t_1a952543edb55aa056d0ace73123ced141" class="target"></span>lv_img_[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv4N18lv_ffmpeg_player_t5timerE]dsc_t imgdsc[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv4N18lv_ffmpeg_player_t6imgdscE] <span id="_CPPv3N18lv_ffmpeg_player_t6imgdscE"></span><span id="_CPPv2N18lv_ffmpeg_player_t6imgdscE"></span><span id="lv_ffmpeg_player_t::imgdsc__lv_img_dsc_t"></span><span id="structlv__ffmpeg__player__t_1a952543edb55aa056d0ace73123ced141" class="target"></span> | + | :; lv_img_dsc_t imgdsc |
| :: | | :: |
− | :; <span id="_CPPv3N18lv_ffmpeg_player_t12auto_restartE"></span><span id="_CPPv2N18lv_ffmpeg_player_t12auto_restartE"></span><span id="lv_ffmpeg_player_t::auto_restart__b"></span><span id="structlv__ffmpeg__player__t_1ae9efd4095b8d9740e9eb3598be8e7478" class="target"></span>bool auto[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv4N18lv_ffmpeg_player_t6imgdscE]_restart[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv4N18lv_ffmpeg_player_t12auto_restartE] <span id="_CPPv3N18lv_ffmpeg_player_t12auto_restartE"></span><span id="_CPPv2N18lv_ffmpeg_player_t12auto_restartE"></span><span id="lv_ffmpeg_player_t::auto_restart__b"></span><span id="structlv__ffmpeg__player__t_1ae9efd4095b8d9740e9eb3598be8e7478" class="target"></span> | + | :; bool auto_restart |
| :: | | :: |
− | :; <span id="_CPPv3N18lv_ffmpeg_player_t10ffmpeg_ctxE"></span><span id="_CPPv2N18lv_ffmpeg_player_t10ffmpeg_ctxE"></span><span id="lv_ffmpeg_player_t::ffmpeg_ctx__ffmpeg_context_sP"></span><span id="structlv__ffmpeg__player__t_1a1c0af404947bcc90f15893162601a36c" class="target"></span>struct [https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv4N18lv_ffmpeg_player_t12auto_restartE]ffmpeg_context_s *ffmpeg_ctx | + | :; struct ffmpeg_context_s *ffmpeg_ctx |
| | | |
| | | |
https://docs.lvgl.io/8.2/libs/ffmpeg.html
FFmpeg support
FFmpeg A complete, cross-platform solution to record, convert and stream audio and video.
Install FFmpeg
- Download FFmpeg from here
./configure --disable-all --disable-autodetect --disable-podpages --disable-asm --enable-avcodec --enable-avformat --enable-decoders --enable-encoders --enable-demuxers --enable-parsers --enable-protocol='file' --enable-swscale --enable-zlib
make
sudo make install
Add FFmpeg to your project
- Add library:
FFmpeg
(for GCC: -lavformat -lavcodec -lavutil -lswscale -lm -lz -lpthread
)
Usage
Enable LV_USE_FFMPEG
in lv_conf.h
.
See the examples below.
Note that, the FFmpeg extension doesn't use LVGL's file system. You can simply pass the path to the image or video as usual on your operating system or platform.
Example
Decode image
Decode video
API
Enums
enum lv_ffmpeg_player_cmd_t
- Values:
- enumerator LV_FFMPEG_PLAYER_CMD_START
- enumerator LV_FFMPEG_PLAYER_CMD_STOP
- enumerator LV_FFMPEG_PLAYER_CMD_PAUSE
- enumerator LV_FFMPEG_PLAYER_CMD_RESUME
- enumerator _LV_FFMPEG_PLAYER_CMD_LAST
Functions
void lv_ffmpeg_init(void)
- Register FFMPEG image decoder
int lv_ffmpeg_get_frame_num(const char *path)
- Get the number of frames contained in the file
- Parameters
- path -- image or video file name
- Returns
- Number of frames, less than 0 means failed
lv_obj_t *lv_ffmpeg_player_create(lv_obj_t *parent)
- Create ffmpeg_player object
- Parameters
- parent -- pointer to an object, it will be the parent of the new player
- Returns
- pointer to the created ffmpeg_player
lv_res_t lv_ffmpeg_player_set_src(lv_obj_t *obj, const char *path)
- Set the path of the file to be played
- Parameters
-
- obj -- pointer to a ffmpeg_player object
- path -- video file path
- Returns
- LV_RES_OK: no error; LV_RES_INV: can't get the info.
void lv_ffmpeg_player_set_cmd(lv_obj_t *obj, lv_ffmpeg_player_cmd_t cmd)
- Set command control video player
- Parameters
-
- obj -- pointer to a ffmpeg_player object
- cmd -- control commands
void lv_ffmpeg_player_set_auto_restart(lv_obj_t *obj, bool en)
- Set the video to automatically replay
- Parameters
-
- obj -- pointer to a ffmpeg_player object
- en -- true: enable the auto restart
Variables
const lv_obj_class_t lv_ffmpeg_player_class
struct lv_ffmpeg_player_t
- Public Members
- lv_img_t img
- lv_timer_t *timer
- lv_img_dsc_t imgdsc
- bool auto_restart
- struct ffmpeg_context_s *ffmpeg_ctx
- 戻る : Previous