本讲是android camera性能分析专题的第21讲,我们介绍录像buffer path详解,包括如下内容:
- android codec2 简介
- video codec mediarecorder.getsurface 录像buffer path
- video codec2 mediarecorder.getsurface 录像buffer path
- video codec2 mediarecorder.setinputsurface 录像buffer path
资源 | 描述 |
---|---|
在线课程 | |
知识星球 | 星球名称:深入浅出android camera 星球id: 17296815 |
极客笔记圈 |
android codec2 简介
在android q之前,android实现硬件编解码的多媒体框架是mediacodec->acodec-> openmax il
,芯片厂商实现openmax il。
谷歌在android q上推出了codec2.0,旨在取代acodec openmax,它可以看作是一套新的对接mediacodec的中间件,往上对接mediacodec native层,往下提供新的api标准供编解码使用。
codec2.0 是android系统为vendor提供的⽤于实现 video/audio/filter 模块的hal层接⼝api。芯片厂商可⽤这个api实现他们⾃⼰的hal层。
video codec mediarecorder.getsurface 录像buffer path
使用videocodec和mediarecorder.getsurface的方式录像的buffer path如下图所示:
camera app不会参与到录像buffer的轮转流程中,video buffer从cameraserver直接送到mediacodec进程,mediacodec进程encode好video buffer后交给mediaserver进程通过mpeg4writer写到storage,详情流程介绍点击阅读原文,参考视频讲解。
video codec2 mediarecorder.getsurface 录像buffer path
使用videocodec2和mediarecorder.getsurface的方式录像的buffer path如下图所示:
camera app不会参与到录像buffer的轮转流程中,video buffer从cameraserver送到mediaserver进程再给mediacodec进程,mediacodec进程encode好video buffer后交给mediaserver进程通过mpeg4writer写到storage,详情流程介绍点击阅读原文,参考视频讲解。
video codec2 mediarecorder.setinputsurface 录像buffer path
使用videocodec2和mediarecorder.setinputsurface 的方式录像的buffer path如下图所示:
camera app会参与到录像buffer的轮转流程中,video buffer从cameraserver送到camera app, camera app进程将buffer acquire到后送给mediaserver进程,mediaserver进程再给mediacodec进程,mediacodec进程encode好video buffer后交给mediaserver进程通过mpeg4writer写到storage,详情流程介绍点击阅读原文,参考视频讲解。