ijkplayer
文章平均质量分 96
ijkplayer代码解析
Michaelliu_dev
这个作者很懒,什么都没留下…
展开
-
ijkplayer android端jni层调试
本篇文章将跟大家分享一下如何配置ijkplayer的编译脚本,使得我们可以在android studio IDE下调试android端c层的代码。环境要求Android studio3.0.1版本 (可以使用其他版本,但是下面的配置就要做相应的改变,但必须是3以上的版本)Android NDK12+版本 (这个时候官网要求的,只有在12+以上才支持c层调试)操作步骤拉...原创 2018-05-18 11:04:41 · 2057 阅读 · 2 评论 -
ijkplayer初始化流程
本文记录的是ijkplayer的初始化流程(重点在分析底层c代码的逻辑),为了更好的理解这部分内容,建议大家下载ijk的源码,最好结合ijkplayer android端调试配置好环境,有利于查看底层c代码直接切入主题,因为要看初始化流程,直接看到VideoActivity.java/onCreate(),代码如下 @Override protected void onC...原创 2018-05-29 22:03:54 · 1599 阅读 · 0 评论 -
ijkplayer 读线程
在ijkplayer初始化流程中的结尾提到,stream_open()会创建读线程和视频渲染线程,下面是stream_open()的主要代码static VideoState *stream_open(FFPlayer *ffp, const char *filename, AVInputFormat *iformat){ ... /* start video displ...原创 2018-05-30 21:54:49 · 871 阅读 · 0 评论 -
ijkplayer 音频解码线程
在ijkplayer 读线程中提到,函数stream_component_open()中的decoder_start()会创建音频解码线程,来看解码线程audio_thread()的主要代码static int audio_thread(void *arg){ ... do { ... if ((got_frame = decoder_de...原创 2018-06-04 20:50:53 · 845 阅读 · 0 评论 -
ijkplayer 音频播放线程
音频播放有一部分在ijkplayer读线程中提到过,就是在读线程read_thread()中调用的stream_component_open()函数中会调用audio_open(),然后会调用aout->open_audio()函数,这个函数指针的赋值在ijkplayer初始化流程中的ff_ffpipeline_android.c/ func_open_audio_output()函数赋值,...原创 2018-06-05 21:54:18 · 2840 阅读 · 0 评论 -
ijkplayer 视频解码线程
在ijkplayer 读线程中说过,ijkplayer主要创建了三个线程,一个是音频输出线程,一个是音频解码线程,一个是视频解码线程,它们都是在ff_ffplay.c/stream_component_open()完成的跟一下video_thread()代码如下static int video_thread(void *arg){ FFPlayer *ffp = (FFPla...原创 2018-06-06 20:40:02 · 2103 阅读 · 0 评论 -
ijkplayer 视频播放线程
在ijkplayer 读线程中提到,stream_open()会创建读线程和视频渲染线程,甚至可以说视频渲染线程要先与读线程,该线程逻辑比较简单static int video_refresh_thread(void *arg){ ...display: /* display picture */ if (!ffp->display_dis...原创 2018-06-06 20:59:42 · 870 阅读 · 0 评论 -
ijkplayer 基本工作流程
一个非常好的开源播放器,最近利用下班时间对其基本工作流程进行了梳理,主要是梳理c层的逻辑,按照线程梳理分别有下面几篇:一、ijkplayer android端jni层调试 二、ijkplayer初始化流程 三、ijkplayer 读线程 四、ijkplayer 音频解码线程 五、ijkplayer 音频播放线程 六、ijkplayer 视频解码线程 七、ijkplayer 视频播放...原创 2018-06-06 21:13:14 · 1075 阅读 · 0 评论