ffplay流程概图
2016-05-04 13:34:55 5 举报
ffplay主流程
作者其他创作
大纲/内容
根据数据类型,放入不同队列
av_read_frame
各种av ctrl事件处理
read_thread
stream open1.创建3时钟,3队列2.创建read_thread
refresh_loop_wait_event
解码后的帧放入pic队列
1.avformat_open_input2.setup_find_stream_info_opts3.avformat_find_stream_info时延优化重点
audio_thread
1.stream_component_open2.audio_open //注册音频数据解码回调3.decoder_init4.decoder_start//创建解码线程
NOTE1. 音视频同步的关键函数是video_refresh,该函数在refresh_loop_wait_event中被调用。ffplay默认是以音频的clock来同步,视频播放过快就休眠,过慢就丢帧。2. video输出是通过调用video_refresh- video_display- video_image_display- SDL_DisplayYUVOverlay3. Audio是通过SDL回调sdl_audio_callback,将解码后的音频数据写入SDL的缓冲区,再调用audio驱动
main
get_video_frame
从队列获取数据并解码
各种初始化
evnet loop
queue_picture
定时产生时钟事件
video_thread
从队列获取数据并解码,解码后的数据放到samp队列
收藏
收藏
0 条评论
回复 删除
下一页