播放器线程:文件打开、类型获取及播放器启动
这段代码是播放器线程的主函数,主要负责打开文件,获取文件类型以及启动播放器。具体功能如下:
-
调用ffmpeg_open_file函数打开文件,并获取文件类型。
-
初始化播放器参数和AVPacket缓存。
-
根据配置设置seek_async标志。
-
更新播放器状态为PLAYER_INITING并发送PLAYING_INFO事件。
-
如果打开文件失败,则根据配置发送错误事件并设置播放器状态为PLAYER_ERROR。
-
如果打开文件成功,则继续以下操作:
a. 如果配置了no_buffering_start为1,则设置no_buffering标志。
b. 如果配置了save_yuv_file为1,则打开输出YUV文件的文件指针。
c. 如果文件类型为音频,则调用audio_play函数进行音频播放。
d. 如果文件类型为视频,则调用video_play函数进行视频播放。
e. 如果文件类型为字幕,则调用display_first_subtitle函数进行字幕显示。
f. 如果文件类型为其他,则发送错误事件并设置播放器状态为PLAYER_ERROR。
-
释放资源并退出线程。
注:该代码片段中出现了一些宏定义和函数调用,具体含义需要查看相应的代码实现。
原文地址: https://www.cveoy.top/t/topic/lDIT 著作权归作者所有。请勿转载和采集!