二、Android CCodec C2Work数据结构分析

本文深入分析了Android CCodec中的C2Work数据结构,包括C2Work的基本结构、Input C2FrameData的详细组成,如C2WorkOrdinalStruct、C2Buffer及其子类C2BufferData,以及C2Param和C2InfoBuffer的作用。C2Work用于在硬件解码数据中传递,C2FrameData中的flags标记数据状态,C2Buffer作为Buffer基类维护信息映射。C2WorkLets链表结构则用于存储解码后的数据。
摘要由CSDN通过智能技术生成

目录

1、C2Work的基本数据结构分析

2、C2Work Input C2FrameData的分析

2.1 C2WorkOrdinalStruct分析

2.2 C2Buffer的分析

2.2.1 C2BufferData的分析

2.3 C2Param的分析

2.4 C2InfoBuffer分析

3、C2Work 输出数据 C2WorkLets的分析

4、总结


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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

2024高教社杯思路代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值