概述
在上一节,我们已经定义了统一的错误码和数据结构,用于屏蔽不同君正芯片的实现细节。准备工作已经做好了,接下来,我们需要定义君正底层API接口的公共基类。在公共基类中给出的接口都是纯虚函数,不同的IPC芯片方案,如T31、T40、T41,则从公共基类中派生,并实现这些虚函数。
公共基类
首先,我们需要思考一下,按照什么粒度来定义公共基类的接口?粒度太细,用起来比较麻烦,完成一个功能需要调用比较多的接口。粒度太粗,上层使用不够灵活,有些接口可能没有提供。因此,我们在设计公共基类的接口时,需要通盘考虑,既提供足够的灵活性,又满足调用的便捷性。
ISVP-SDK中提供了用于应用层开发的应用库,包括:imp库和sysutils库。imp库按功能模块进行了划分,不同的模块定义在不同的头文件中。比如:数据绑定和系统控制功能在imp_system.h中,H264、H265、JPEG的编码功能在imp_encoder.h中。我们也可以基于这些模块定义接口,这样接口的使用比较清晰明了。同时,我们还需要考虑上层如何使用接口,封装的接口可以满足上层调用的便捷性。文章来源:https://www.toymoban.com/news/detail-498802.html
MPP_API_Base.h文件中定义的公共基类如下。文章来源地址https://www.toymoban.com/news/detail-498802.html
#pragma once
#include "MPP_API_Types.h"
class CMppApi_Base
{
public:
CMppApi_Base() {}
virtual ~CMppApi_Base() {}
virtual int Sys_Init(const TMppSystemParam
到了这里,关于3 君正底层API接口的封装2的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!