下载
中文
注册

MemoryData

功能

内存管理结构体。

结构定义

struct MemoryData {
    enum MemoryType {
        MEMORY_HOST = 0,
        MEMORY_DEVICE,
        MEMORY_DVPP,
        MEMORY_HOST_MALLOC,
        MEMORY_HOST_NEW,
    };
    MemoryData() = default;
    MemoryData(size_t size, MemoryType type = MEMORY_HOST, int32_t deviceId = 0)
        : size(size), deviceId(deviceId), type(type) {}
    MemoryData(void* ptrData, size_t size, MemoryType type = MEMORY_HOST, int32_t deviceId = 0)
        : ptrData(ptrData), size(size), deviceId(deviceId), type(type) {}
    void* ptrData;
    size_t size;
    int32_t deviceId;
    MemoryType type;
    APP_ERROR (*free)(void*) = nullptr;
};

参数说明

参数名

输入/输出

说明

ptrData

输出

存放数据的内存地址。

size

输入

内存大小,单位为Byte。

size值应与实际内存大小一致,否则可能导致出现coredump情况。

deviceId

输入

设备编号。

type

输入

申请的内存类型:

  • “MEMORY_HOST”对应Host侧。
  • “MEMORY_DEVICE”对应Device侧。
  • “MEMORY_DVPP”对应DVPP侧。
  • “MEMORY_HOST_MALLOC”对应malloc申请内存。
  • “MEMORY_HOST_NEW”对应new申请内存。

free

输出

ptrData指针释放函数。

MemoryData(size_t size, MemoryType type = MEMORY_HOST, size_t deviceId = 0)

-

定义结构体的形式一。

MemoryData(void* ptrData, size_t size, MemoryType type = MEMORY_HOST, size_t deviceId = 0)

-

定义结构体的形式二。