【文件属性】:
文件名称:接口结构概述-蓝牙模块at指令集
文件大小:2.02MB
文件格式:PDF
更新时间:2021-06-17 10:07:43
参考
第二章接口设计说明
本章节描述了用户在使用 MPP 过程中会直接接触到的数据结构,以及这些数据结构的使用说明。
由于视频编解码与视频处理过程需要处理大量的数据交互,包括码流数据,图像数据以及内存数据,
同时还要处理与上层应用以及内核驱动的交叉关系,所以 MPP 设计了 MPI 接口,用于与上层交互。
本章节说明了 MPI 接口使用的数据结构,以及设计思路。
2.1 接口结构概述
下图为 MPI 接口使用的主要数据结构:
图表 2 MPI 接口使用的数据结构
MppMem 为 C 库 malloc 内存的封装。
MppBuffer 为硬件用的 dmabuf 内存的封装。
MppPacket 为一维缓存封装,可以从 MppMem 和 MppBuffer 生成,主要用于表示码流数据。
MppFrame 为二维帧数据封装,可以从 MppMem 和 MppBuffer 生成,主要用于表示图像数据。
使用 MppPacket 和 MppFrame 就可以简单有效的完成一般的视频编解码工作。
以视频解码为例,码流输入端把地址和大小赋值给 MppPacket,通过 put_packet 接口输入,在输出
端通过 get_frame 接口得到输入图像 MppFrame,即可完成最简单的视频解码过程。
图表 3 使用简单接口实现视频解码
MppMeta 和 MppTask 为输入输出用任务的高级组合接口,可以支持指定输入输出方式等复杂使用方
式,较少使用。