前言
我是一名打算长期走音视频路线的Android开发者。从此系列文章开始,记录我的音视频开发学习之路
ijkplayer播放器系列文章列表:
理解ijkplayer(一):开始
理解ijkplayer(二)项目结构分析
理解ijkplayer(三)从Java层开始初始化
理解ijkplayer(四)拉流
理解ijkplayer(五)解码、播放
理解ijkplayer(六)从ijkplayer看ffmpeg源码
理解ijkplayer(七)动态切换分辨率
这块软解和硬解应该是不一样的,硬解可以参考这个option:
mediacodec-handle-resolution-change
对应的处理是在:
ffpipenode_android_mediacodec_vdec.c文件中的feed_input_buffer
和feed_input_buffer2
函数中。
他的操作大致步骤是,如果打开了这个开关,会检查每次拿到的sps和pps信息,然后会将里面的宽高信息拿出来,并判断,如果宽高变了,说明分辨率改变了。那么就要重建解码器和重新设置渲染器。