CreateBuffer
函数功能
创建一个buffer。
约束说明
NA
函数原型
int32_t CreateBuffer(FrameFormat format, MemType type, GpuEncoderBufferT &buffer) = 0
参数说明
字段名称 |
输入/输出 |
字段类型 |
字段描述 |
|---|---|---|---|
format |
输入 |
FrameFormat |
要创建的buffer对应的格式。 |
FrameFormat定义如下。
enum FrameFormat : uint32_t {
FRAME_FORMAT_NONE,
FRAME_FORMAT_RGBA,
FRAME_FORMAT_BGRA,
FRAME_FORMAT_YUV,
FRAME_FORMAT_NV12,
FRAME_FORMAT_H264,
FRAME_FORMAT_HEVC,
FRAME_FORMAT_COUNT
};
字段名称 |
输入/输出 |
字段类型 |
字段描述 |
|---|---|---|---|
type |
输入 |
MemType |
需要为buffer分配空间的位置。 |
MemType定义如下。
enum MemType : uint32_t {
MEM_TYPE_NONE,
MEM_TYPE_HOST, //分配在主机内存中
MEM_TYPE_DEVICE, //分配在设备内存中
MEM_TYPE_COUNT
};
字段名称 |
输入/输出 |
字段类型 |
字段描述 |
|---|---|---|---|
buffer |
输出 |
GpuEncoderBufferT & |
分配完成后用于挂载buffer的指针 |
GpuEncoderBufferT定义如下,开发者或厂商实现该接口时需要使用new为GpuEncoderBuffer分配内存,并在ReleaseBuffer接口中进行内存释放。
struct GpuEncoderBuffer {
FrameFormat format = FRAME_FORMAT_NONE;
MemType memType = MEM_TYPE_NONE;
FrameSize size = {};
GpuType gpuType = GPU_NONE;
uint8_t *data = nullptr;
uint32_t dataLen = 0;
};
using GpuEncoderBufferT = GpuEncoderBuffer *;
返回值说明
数据类型:GpuEncoderErrorCode
取值如下:
- OK:创建buffer成功。
- 其他:创建buffer失败。