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失败。
父主题: GPU加速接口(C&C++)