本讲是Android Camera性能分析专题的第23讲,我们介绍录像Buffer Path实战和Trace分析,包括如下内容:
- Video Codec + MediaRecorder.getSurface录像Buffer Path Trace分析
- Video Codec2 + MediaRecorder.getSurface录像Buffer Path Trace分析
- Video Codec2 + MediaRecorder.setInputSurface录像Buffer Path Trace分析
资源 | 描述 |
---|---|
在线课程 | 极客笔记在线课程 |
知识星球 | 星球名称:深入浅出Android Camera 星球ID: 17296815 |
极客笔记圈 |
1. Video Codec + MediaRecorder.getSurface录像Buffer Path Trace分析
GraphicBufferSource是在MediaCodec进程创建的,CameraServer直接将录像的Buffer送给MediaCodec进程。
如下图所示,645是CameraServer进程,682是Media.Codec进程。
- CameraServer调用BufferQueue的queueBuffer会跨Binder调用到Media.codec进程, MediaCodec会执行acquireBuffer动作。
releaseBuffer的流程,请参考视频讲解。
2. Video Codec2 + MediaRecorder.getSurface录像Buffer Path Trace分析
GraphicBufferSource是在MediaServer进程创建的,CameraServer直接将录像的Buffer送给MediaServer进程。
如下图所示,1546是CameraServer进程,1565是MediaServer进程。
- CameraServer调用BufferQueue的queueBuffer会跨Binder调用到MediaServer进程, MediaServer会执行acquireBuffer动作。
releaseBuffer的流程,请参考视频讲解。
3. Video Codec2 + MediaRecorder.setInputSurface录像Buffer Path Trace分析
GraphicBufferSource是在Camera App进程创建的,CameraServer直接将录像的Buffer送给Camera App进程。
如下图所示,1546是CameraServer进程,16847是CameraApp进程。
- CameraServer调用BufferQueue的queueBuffer会跨Binder调用到CameraApp进程, CameraApp会执行acquireBuffer动作。
releaseBuffer的流程,请参考视频讲解。