「App:Library:LVGL:docs:3rd party libraries:FFmpeg support」の版間の差分

提供: robot-jp wiki
ナビゲーションに移動検索に移動
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
  
  

2022年6月29日 (水) 17:38時点における版

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

LVGL docs 3rdPartyLibs FFmpeg 01.png


Decode video

LVGL docs 3rdPartyLibs FFmpeg 01.png


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