ijkplayer阅读笔记02-创建音视频读取,解码,播放线程
来源:互联网 发布:使命召唤高级战争优化 编辑:程序博客网 时间:2024/06/08 20:01
本节主要介绍音视频读取和解码线程的创建及启动,代码流程如下:
IjkMediaPlayer_prepareAsync{ ijkmp_prepare_async_l{ ijkmp_change_state_l(mp, MP_STATE_ASYNC_PREPARING); msg_queue_start(&mp->ffplayer->msg_queue); SDL_CreateThreadEx(&mp->_msg_thread, mp->msg_loop, mp, "ff_msg_loop"); ffp_prepare_async_l(mp->ffplayer, mp->data_source); stream_open{ frame_queue_init(&is->pictq, &is->videoq, ffp->pictq_size, 1) frame_queue_init(&is->sampq, &is->audioq, SAMPLE_QUEUE_SIZE, 1) packet_queue_init(&is->videoq); packet_queue_init(&is->audioq); SDL_CreateThreadEx(&is->_video_refresh_tid, video_refresh_thread, ffp, "ff_vout") //视频显示线程创建 SDL_CreateThreadEx(&is->_read_tid, read_thread, ffp, "ff_read"){ //读取线程创建 read_thread { //读取线程 stream_component_open(ffp, st_index[AVMEDIA_TYPE_AUDIO]);{ //音频读取和解码 SDL_CreateThreadEx(&is->_audio_tid, audio_thread, ffp, "ff_audio_dec"); } stream_component_open(ffp, st_index[AVMEDIA_TYPE_VIDEO]);{ //视频读取和解码 ffp->node_vdec = ffpipeline_open_video_decoder(ffp->pipeline, ffp); SDL_CreateThreadEx(&is->_video_tid, video_thread, ffp, "ff_video_dec"); } for (;;) { if (is->seek_req) { avformat_seek_file(); } ret = av_read_frame(ic, pkt); packet_queue_put(&is->audioq, pkt); or packet_queue_put(&is->videoq, pkt); } } } } }}
0 0
- ijkplayer阅读笔记02-创建音视频读取,解码,播放线程
- ijkplayer阅读笔记03-视频解码线程详解
- ijkplayer阅读笔记04-音频解码线程详解
- ijkplayer阅读笔记05-视频显示线程详解
- ijkplayer阅读笔记07-视频流程
- 音视频解码模块阅读笔记
- ijkplayer iOS 音视频解码 详解
- Ijkplayer视频播放
- IJKPlayer视频播放
- ijkplayer播放视频
- ijkplayer 视频播放
- IJKPlayer(播放视频)
- ijkplayer播放视频
- 【音视频】Android/iOS 视频播放器ijkplayer
- 音视频解码模块阅读笔记(一)-->转载
- 音视频解码模块阅读笔记(三)—视频编解码的基本概念--转载
- 基于ijkplayer 视频流 播放
- 基于ijkplayer 视频流 播放
- celery beat实战
- android中利用animation实现Image的循环移动
- iOS终止函数exit
- Python 学习之<Requests入门>
- 如何构建一个持续发展的项目
- ijkplayer阅读笔记02-创建音视频读取,解码,播放线程
- linux下将自己写的shell脚本做成系统命令
- POJ 1961 Period(KMP最小循环节)
- AsyncTask分析
- 使用移动版AWS控制台管理资源
- android lcd驱动简析
- 深度优先搜索
- 关于R画误差分析图——做到和MATLAB一样
- Javaweb监听器