方法汇总
1.alloc
操作:初始化ffmpeg的配置参数,创建渲染所用的EGLView,获取音频播放权限,注册前后台切换通知等。
2.prepareToPlay
操作:创建音频输出,调用stream_open
方法
3.stream_open
操作: 创建音视频队列,创建read_thread
线程
至此,后续的所以音视频相关操作都在read_thread
方法中进行.
4.read_thread
操作: 在读取方法中,进行了基本的ffmpeg 解码操作。
- avformat_open_input 初始化avformatcontext
- avformat_find_stream_info 解码得到stream的信息
- 根据codec_type区别音频视频流数据
- stream_componet_open()
stream_componet_open
操作,进行了解码器部分的操作
avcodec_alloc_context3
进行AVCodecContext
初始化avcodec_find_decoder
查找对应解码器avcodec_open2
为AVCodecContext
实例化赋值,在源码中可以看到其本身的解析,open2 操作需要遵从一系列的方法。decoder_init
初始化解码线程ffpipeline_open_video_decoder