1# native_avmemory.h 2 3## 概述 4 5声明了媒体数据结构AVMemory的定义。 6 7**引用文件:** <multimedia/player_framework/native_avmemory.h> 8 9**库:** libnative_media_core.so 10 11**系统能力:** SystemCapability.Multimedia.Media.Core 12 13**起始版本:** 9 14 15**相关模块:** [Core](capi-core.md) 16 17## 汇总 18 19### 结构体 20 21| 名称 | typedef关键字 | 描述 | 22| -- | -- | -- | 23| [OH_AVMemory](capi-core-oh-avmemory.md) | OH_AVMemory | 为音视频内存接口定义native层对象。 | 24 25### 函数 26 27| 名称 | 描述 | 28| -- | -- | 29| [OH_AVMemory *OH_AVMemory_Create(int32_t size)](#oh_avmemory_create) | 创建OH_AVMemory实例的指针。 | 30| [uint8_t *OH_AVMemory_GetAddr(struct OH_AVMemory *mem)](#oh_avmemory_getaddr) | 获取内存虚拟地址。 | 31| [int32_t OH_AVMemory_GetSize(struct OH_AVMemory *mem)](#oh_avmemory_getsize) | 获取内存长度。 | 32| [OH_AVErrCode OH_AVMemory_Destroy(struct OH_AVMemory *mem)](#oh_avmemory_destroy) | 释放OH_AVMemory实例指针的资源。 | 33 34## 函数说明 35 36### OH_AVMemory_Create() 37 38``` 39OH_AVMemory *OH_AVMemory_Create(int32_t size) 40``` 41 42**描述** 43 44创建OH_AVMemory实例的指针。 45 46**系统能力:** SystemCapability.Multimedia.Media.Core 47 48**起始版本:** 10 49 50**废弃版本:** 11 51 52**替代接口:** [OH_AVBuffer_Create](capi-native-avbuffer-h.md#oh_avbuffer_create) 53 54 55**参数:** 56 57| 参数项 | 描述 | 58| -- | -- | 59| int32_t size | 创建内存的大小,单位字节。 | 60 61**返回:** 62 63| 类型 | 说明 | 64| -- | -- | 65| [OH_AVMemory](capi-core-oh-avmemory.md) * | 如果创建成功,返回OH_AVMemory实例的指针,如果失败,返回NULL。<br> 使用结束后需要通过OH_AVMemory_Destroy释放内存。<br> 可能的失败原因:<br>1. size <= 0。<br>2. 创建OH_AVMemory失败。<br>3. OH_AVMemory内存分配失败。 | 66 67### OH_AVMemory_GetAddr() 68 69``` 70uint8_t *OH_AVMemory_GetAddr(struct OH_AVMemory *mem) 71``` 72 73**描述** 74 75获取内存虚拟地址。 76 77**系统能力:** SystemCapability.Multimedia.Media.Core 78 79**起始版本:** 9 80 81**废弃版本:** 11 82 83**替代接口:** [OH_AVBuffer_GetAddr](capi-native-avbuffer-h.md#oh_avbuffer_getaddr) 84 85 86**参数:** 87 88| 参数项 | 描述 | 89| -- | -- | 90| [struct OH_AVMemory](capi-core-oh-avmemory.md) *mem | 指向OH_AVMemory实例的指针。 | 91 92**返回:** 93 94| 类型 | 说明 | 95| -- | -- | 96| uint8_t * | 如果内存有效,返回内存的虚拟地址,如果内存无效,返回NULL。<br> 可能的失败原因:<br>1. 输入mem为空指针。<br>2. 输入mem参数结构校验失败。<br>3. 输入mem中内存为空指针。 | 97 98### OH_AVMemory_GetSize() 99 100``` 101int32_t OH_AVMemory_GetSize(struct OH_AVMemory *mem) 102``` 103 104**描述** 105 106获取内存长度。 107 108**系统能力:** SystemCapability.Multimedia.Media.Core 109 110**起始版本:** 9 111 112**废弃版本:** 11 113 114**替代接口:** [OH_AVBuffer_GetCapacity](capi-native-avbuffer-h.md#oh_avbuffer_getcapacity) 115 116 117**参数:** 118 119| 参数项 | 描述 | 120| -- | -- | 121| [struct OH_AVMemory](capi-core-oh-avmemory.md) *mem | 指向OH_AVMemory实例的指针。 | 122 123**返回:** 124 125| 类型 | 说明 | 126| -- | -- | 127| int32_t | 如果内存有效,返回内存长度,如果内存无效,返回-1。<br> 可能的失败原因:<br>1.输入mem为空指针。<br>2. 输入mem参数结构校验失败。<br>3. 输入mem中内存为空指针。 | 128 129### OH_AVMemory_Destroy() 130 131``` 132OH_AVErrCode OH_AVMemory_Destroy(struct OH_AVMemory *mem) 133``` 134 135**描述** 136 137释放OH_AVMemory实例指针的资源。 138 139**系统能力:** SystemCapability.Multimedia.Media.Core 140 141**起始版本:** 10 142 143**废弃版本:** 11 144 145**替代接口:** [OH_AVBuffer_Destroy](capi-native-avbuffer-h.md#oh_avbuffer_destroy) 146 147 148**参数:** 149 150| 参数项 | 描述 | 151| -- | -- | 152| [struct OH_AVMemory](capi-core-oh-avmemory.md) *mem | 指向OH_AVMemory实例的指针。 | 153 154**返回:** 155 156| 类型 | 说明 | 157| -- | -- | 158| [OH_AVErrCode](capi-native-averrors-h.md#oh_averrcode) | AV_ERR_OK:释放成功。<br> AV_ERR_INVALID_VAL:<br>1. 输入mem为空指针。<br>2. 输入mem参数结构校验失败。<br>3. 输入mem不是开发者创建的。 | 159 160 161