ffplay代码学习之thread线程
来源:互联网 发布:html windows.onload 编辑:程序博客网 时间:2024/05/16 18:52
转自:http://hi.baidu.com/ccqi0000/blog/item/baa5a3da56b88d215882ddfb.html
一:main 主线程
1>av_register_all ,SDL_Init,创建timer(定时检查是否有解码后的frame,有就显示)
其中消息循环中
1.捕获key msg
2.捕获系统event
3.捕获event新的frame到的消息---> 需要删除老的SDL,创建新的SDL
4.捕获定时器到的消息,需要SDL显示)
二:decode_thread:分解stream的线程
SDL_CreateThread(decode_thread, is);
1.读取文件:av_open_input_file 获取head信息,av_find_stream_info获取到stream信息
stream_component_open->avcodec_find_decoder,avcodec_open找到相应的解码器,分配之并打开解码器
2.av_read_frame(is->pFormatCtx, packet)将stream中的原始数据包一个一个读出来
3.packet_queue_put(&is->q, packet)将读出来的原始音视频包分别保存到各自的队列中
三.video_thread : 解码线程
is->video_tid = SDL_CreateThread(video_thread, is);
1.
packet_queue_get//获取原始stream packet
2.
avcodec_decode_video//解码原始packet,获得解码后的frame
3.
queue_picture //将解码出来的frame再编码转化为SDL能显示的数据格式(ffmpeg下 为YUV)后,再通知主线程去显示出来了。
- ffplay代码学习之thread线程
- Thread学习之线程组
- C#学习之--线程Thread
- Python学习之Thread线程
- 苏嵌学习之线程thread
- Android基础学习之Thread(线程)
- 【Java学习】之 线程(Thread)
- 学习线程(Thread)有感
- 线程Thread学习1
- Thread线程学习
- 线程学习Thread
- C# 线程之Thread
- Android 线程之Thread
- JavaSE之线程Thread
- pthread 之thread[线程]
- Java之线程Thread
- Android 线程学习之 Runnable和Thread的区别
- 【04】 Boost库学习笔记之线程(thread)
- ffmpeg播放流程讲解
- Magento网站,cart的Qty改变时即时更新价格
- 过滤列表
- Linux下软件安装两种方法
- Db2 文件导入导出常见命令总结
- ffplay代码学习之thread线程
- include与jsp:include区别
- 统一编址与独立编址、I/O端口与I/O内存
- CString 的写时复制技术?
- Java7 编程语言特性
- myeclipse10.0优化及SVN安装配置
- 前微软高管推Mobilize.net 将老的.NET应用搬上云端和移动设备
- 如何安装字体
- XtraBackup