目录
1、C2Work的基本数据结构分析
众所周知,野生的CCodec的架构采用了C2Work这个对象进行和底层硬件解码数据轮转。但是CCodec的架构比较大,往往一入源码深似海,就云里雾里的不知道怎么分析。所以整理阅读笔记是一个好习惯。那我们就开始吧。首先看下C2Work的定义,它究竟是个什么东西?
C2Work定义的头文件:
/frameworks/av/media/codec2/core/include/C2Work.h
具体的定义如下:
struct C2Work {
//public:
std::shared_ptr<C2WorkChainInfo> chainInfo;
C2FrameData input;
std::list<std::unique_ptr<C2Worklet>> worklets;
uint32_t workletsProcessed;
c2_status_t result;
};
上面的C2Work定义中,chainInfo是用作以后拓展用的,暂时是这么理解的,不过后续怎么修改还不一定。C2FramwData input是C2Work中关于input解码数据的定义,后面再详细分析它。std::list<std::unique_ptr> w