harmony 鸿蒙Core

  • 2025-06-12
  • 浏览 (4)

Core

概述

Core模块提供用于媒体系统的基础骨干能力,包含内存、错误码、媒体数据结构等相关函数。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 9

汇总

文件

名称 描述
media_types.h 声明了常见媒体类型的定义。
native_audio_channel_layout.h 在录制和播放时的扬声器布局。
native_avbuffer.h 声明了媒体数据结构AVBuffer的函数接口。
native_avbuffer_info.h 声明了媒体数据结构AVBuffer属性的定义。
native_averrors.h 媒体系统错误码。
native_avformat.h 声明了OH_AVFormat相关的函数和枚举。
native_avmemory.h 声明了媒体数据结构AVMemory的定义。

结构体

名称 描述
struct OH_AVCodecBufferAttr 定义OH_AVCodec的缓冲区描述信息。

类型定义

名称 描述
typedef enum OH_Core_HdrType OH_Core_HdrType HDR类型枚举。
typedef enum OH_AudioChannelSet OH_AudioChannelSet 音频声道集合。
typedef enum OH_AmbAttributeSet OH_AmbAttributeSet 高保真立体声混响设置。
typedef enum OH_AudioChannelLayout OH_AudioChannelLayout 音频声道布局。
typedef struct OH_AVBuffer OH_AVBuffer 为媒体内存接口定义native层对象。
typedef struct OH_NativeBuffer OH_NativeBuffer 为图形内存接口定义native层对象。
typedef enum OH_AVCodecBufferFlags OH_AVCodecBufferFlags 枚举OH_AVCodec缓冲区标记的类别。
typedef struct OH_AVCodecBufferAttr OH_AVCodecBufferAttr 定义OH_AVCodec的缓冲区描述信息。
typedef enum OH_AVErrCode OH_AVErrCode 媒体系统错误码。
typedef struct OH_AVFormat OH_AVFormat 为OH_AVFormat接口定义native层对象。
typedef enum OH_AVPixelFormat OH_AVPixelFormat 视频像素格式的枚举类。
typedef struct OH_AVMemory OH_AVMemory 为音视频内存接口定义native层对象。

枚举

名称 描述
OH_Core_HdrType {
OH_CORE_HDR_TYPE_NONE = 0,
OH_CORE_HDR_TYPE_VIVID = 1 }
HDR类型枚举。
OH_AudioChannelSet {
CH_SET_FRONT_LEFT = 1ULL << 0U,
CH_SET_FRONT_RIGHT = 1ULL << 1U,
CH_SET_FRONT_CENTER = 1ULL << 2U,
CH_SET_LOW_FREQUENCY = 1ULL << 3U,
CH_SET_BACK_LEFT = 1ULL << 4U,
CH_SET_BACK_RIGHT = 1ULL << 5U,
CH_SET_FRONT_LEFT_OF_CENTER = 1ULL << 6U,
CH_SET_FRONT_RIGHT_OF_CENTER = 1ULL << 7U,
CH_SET_BACK_CENTER = 1ULL << 8U,
CH_SET_SIDE_LEFT = 1ULL << 9U,
CH_SET_SIDE_RIGHT = 1ULL << 10U,
CH_SET_TOP_CENTER = 1ULL << 11U,
CH_SET_TOP_FRONT_LEFT = 1ULL << 12U,
CH_SET_TOP_FRONT_CENTER = 1ULL << 13U,
CH_SET_TOP_FRONT_RIGHT = 1ULL << 14U,
CH_SET_TOP_BACK_LEFT = 1ULL << 15U,
CH_SET_TOP_BACK_CENTER = 1ULL << 16U,
CH_SET_TOP_BACK_RIGHT = 1ULL << 17U,
CH_SET_STEREO_LEFT = 1ULL << 29U,
CH_SET_STEREO_RIGHT = 1ULL << 30U,
CH_SET_WIDE_LEFT = 1ULL << 31U,
CH_SET_WIDE_RIGHT = 1ULL << 32U,
CH_SET_SURROUND_DIRECT_LEFT = 1ULL << 33U,
CH_SET_SURROUND_DIRECT_RIGHT = 1ULL << 34U,
CH_SET_LOW_FREQUENCY_2 = 1ULL << 35U,
CH_SET_TOP_SIDE_LEFT = 1ULL << 36U,
CH_SET_TOP_SIDE_RIGHT = 1ULL << 37U,
CH_SET_BOTTOM_FRONT_CENTER = 1ULL << 38U,
CH_SET_BOTTOM_FRONT_LEFT = 1ULL << 39U,
CH_SET_BOTTOM_FRONT_RIGHT = 1ULL << 40U
}
音频声道集合。
OH_AmbAttributeSet {
AMB_ORD_1 = 1ULL << 0U,
AMB_ORD_2 = 2ULL << 0U,
AMB_ORD_3 = 3ULL << 0U,
AMB_COM_ACN = 0ULL << 8U,
AMB_COM_FUMA = 1ULL << 8U,
AMB_NOR_N3D = 0ULL << 12U,
AMB_NOR_SN3D = 1ULL << 12U,
AMB_MODE = 1ULL << 44U
}
高保真立体声混响设置。
OH_AudioChannelLayout {
CH_LAYOUT_UNKNOWN = 0ULL,
CH_LAYOUT_MONO = CH_SET_FRONT_CENTER,
CH_LAYOUT_STEREO = CH_SET_FRONT_LEFT |CH_SET_FRONT_RIGHT,
CH_LAYOUT_STEREO_DOWNMIX = CH_SET_STEREO_LEFT |CH_SET_STEREO_RIGHT,
CH_LAYOUT_2POINT1 = CH_LAYOUT_STEREO |CH_SET_LOW_FREQUENCY,
CH_LAYOUT_3POINT0 = CH_LAYOUT_STEREO |CH_SET_BACK_CENTER,
CH_LAYOUT_SURROUND = CH_LAYOUT_STEREO |CH_SET_FRONT_CENTER,
CH_LAYOUT_3POINT1 = CH_LAYOUT_SURROUND |CH_SET_LOW_FREQUENCY,
CH_LAYOUT_4POINT0 = CH_LAYOUT_SURROUND |CH_SET_BACK_CENTER,
CH_LAYOUT_QUAD_SIDE = CH_LAYOUT_STEREO |CH_SET_SIDE_LEFT |CH_SET_SIDE_RIGHT,
CH_LAYOUT_QUAD = CH_LAYOUT_STEREO |CH_SET_BACK_LEFT |CH_SET_BACK_RIGHT,
CH_LAYOUT_2POINT0POINT2 = CH_LAYOUT_STEREO |CH_SET_TOP_SIDE_LEFT |CH_SET_TOP_SIDE_RIGHT,
CH_LAYOUT_AMB_ORDER1_ACN_N3D = AMB_MODE |AMB_ORD_1 |AMB_COM_ACN |AMB_NOR_N3D, CH_LAYOUT_AMB_ORDER1_ACN_SN3D = AMB_MODE |AMB_ORD_1 |AMB_COM_ACN |AMB_NOR_SN3D,
CH_LAYOUT_AMB_ORDER1_FUMA = AMB_MODE |AMB_ORD_1 |AMB_COM_FUMA,
CH_LAYOUT_4POINT1 = CH_LAYOUT_4POINT0 |CH_SET_LOW_FREQUENCY,
CH_LAYOUT_5POINT0 = CH_LAYOUT_SURROUND |CH_SET_SIDE_LEFT |CH_SET_SIDE_RIGHT,
CH_LAYOUT_5POINT0_BACK = CH_LAYOUT_SURROUND |CH_SET_BACK_LEFT |CH_SET_BACK_RIGHT,
CH_LAYOUT_2POINT1POINT2 = CH_LAYOUT_2POINT0POINT2 |CH_SET_LOW_FREQUENCY,
CH_LAYOUT_3POINT0POINT2 = CH_LAYOUT_2POINT0POINT2 |CH_SET_FRONT_CENTER,
CH_LAYOUT_5POINT1 = CH_LAYOUT_5POINT0 |CH_SET_LOW_FREQUENCY,
CH_LAYOUT_5POINT1_BACK = CH_LAYOUT_5POINT0_BACK |CH_SET_LOW_FREQUENCY,
CH_LAYOUT_6POINT0 = CH_LAYOUT_5POINT0 |CH_SET_BACK_CENTER,
CH_LAYOUT_3POINT1POINT2 = CH_LAYOUT_3POINT1 |CH_SET_TOP_FRONT_LEFT |CH_SET_TOP_FRONT_RIGHT,
CH_LAYOUT_6POINT0_FRONT = CH_LAYOUT_QUAD_SIDE |CH_SET_FRONT_LEFT_OF_CENTER |CH_SET_FRONT_RIGHT_OF_CENTER,
CH_LAYOUT_HEXAGONAL = CH_LAYOUT_5POINT0_BACK |CH_SET_BACK_CENTER,
CH_LAYOUT_6POINT1 = CH_LAYOUT_5POINT1 |CH_SET_BACK_CENTER,
CH_LAYOUT_6POINT1_BACK = CH_LAYOUT_5POINT1_BACK |CH_SET_BACK_CENTER,
CH_LAYOUT_6POINT1_FRONT = CH_LAYOUT_6POINT0_FRONT |CH_SET_LOW_FREQUENCY,
CH_LAYOUT_7POINT0 = CH_LAYOUT_5POINT0 |CH_SET_BACK_LEFT |CH_SET_BACK_RIGHT,
CH_LAYOUT_7POINT0_FRONT = CH_LAYOUT_5POINT0 |CH_SET_FRONT_LEFT_OF_CENTER |CH_SET_FRONT_RIGHT_OF_CENTER,
CH_LAYOUT_7POINT1 = CH_LAYOUT_5POINT1 |CH_SET_BACK_LEFT |CH_SET_BACK_RIGHT,
CH_LAYOUT_OCTAGONAL = CH_LAYOUT_5POINT0 |CH_SET_BACK_LEFT |CH_SET_BACK_CENTER |CH_SET_BACK_RIGHT,
CH_LAYOUT_5POINT1POINT2 = CH_LAYOUT_5POINT1 |CH_SET_TOP_SIDE_LEFT |CH_SET_TOP_SIDE_RIGHT,
CH_LAYOUT_7POINT1_WIDE = CH_LAYOUT_5POINT1 |CH_SET_FRONT_LEFT_OF_CENTER |CH_SET_FRONT_RIGHT_OF_CENTER,
CH_LAYOUT_7POINT1_WIDE_BACK = CH_LAYOUT_5POINT1_BACK |CH_SET_FRONT_LEFT_OF_CENTER |CH_SET_FRONT_RIGHT_OF_CENTER,
CH_LAYOUT_AMB_ORDER2_ACN_N3D = AMB_MODE |AMB_ORD_2 |AMB_COM_ACN |AMB_NOR_N3D,
CH_LAYOUT_AMB_ORDER2_ACN_SN3D = AMB_MODE |AMB_ORD_2 |AMB_COM_ACN |AMB_NOR_SN3D,
CH_LAYOUT_AMB_ORDER2_FUMA = AMB_MODE |AMB_ORD_2 |AMB_COM_FUMA,
CH_LAYOUT_5POINT1POINT4,
CH_LAYOUT_7POINT1POINT2 = CH_LAYOUT_7POINT1 |CH_SET_TOP_SIDE_LEFT |CH_SET_TOP_SIDE_RIGHT,
CH_LAYOUT_7POINT1POINT4,
CH_LAYOUT_10POINT2,
CH_LAYOUT_9POINT1POINT4 = CH_LAYOUT_7POINT1POINT4 |CH_SET_WIDE_LEFT |CH_SET_WIDE_RIGHT,
CH_LAYOUT_9POINT1POINT6 = CH_LAYOUT_9POINT1POINT4 |CH_SET_TOP_SIDE_LEFT |CH_SET_TOP_SIDE_RIGHT,
CH_LAYOUT_HEXADECAGONAL,
CH_LAYOUT_AMB_ORDER3_ACN_N3D = AMB_MODE |AMB_ORD_3 |AMB_COM_ACN |AMB_NOR_N3D,
CH_LAYOUT_AMB_ORDER3_ACN_SN3D = AMB_MODE |AMB_ORD_3 |AMB_COM_ACN |AMB_NOR_SN3D,
CH_LAYOUT_AMB_ORDER3_FUMA = AMB_MODE |AMB_ORD_3 |AMB_COM_FUMA,
CH_LAYOUT_22POINT2
}
音频声道布局。
OH_AVCodecBufferFlags {
AVCODEC_BUFFER_FLAGS_NONE = 0,
AVCODEC_BUFFER_FLAGS_EOS = 1 << 0, AVCODEC_BUFFER_FLAGS_SYNC_FRAME = 1 << 1, AVCODEC_BUFFER_FLAGS_INCOMPLETE_FRAME = 1 << 2,
AVCODEC_BUFFER_FLAGS_CODEC_DATA = 1 << 3,
AVCODEC_BUFFER_FLAGS_DISCARD = 1 << 4,
AVCODEC_BUFFER_FLAGS_DISPOSABLE = 1 << 5
}
枚举OH_AVCodec缓冲区标记的类别。
OH_AVErrCode {
AV_ERR_OK = 0,
AV_ERR_NO_MEMORY = 1,
AV_ERR_OPERATE_NOT_PERMIT = 2,
AV_ERR_INVALID_VAL = 3,
AV_ERR_IO = 4,
AV_ERR_TIMEOUT = 5,
AV_ERR_UNKNOWN = 6,
AV_ERR_SERVICE_DIED = 7,
AV_ERR_INVALID_STATE = 8,
AV_ERR_UNSUPPORT = 9,
AV_ERR_UNSUPPORTED_FORMAT = 11,
AV_ERR_EXTEND_START = 100,
AV_ERR_DRM_BASE = 200,
AV_ERR_DRM_DECRYPT_FAILED = 201,
AV_ERR_VIDEO_BASE = 300,
AV_ERR_VIDEO_UNSUPPORTED_COLOR_SPACE_CONVERSION = 301
}
媒体系统错误码。
OH_AVPixelFormat {
AV_PIXEL_FORMAT_YUVI420 = 1,
AV_PIXEL_FORMAT_NV12 = 2,
AV_PIXEL_FORMAT_NV21 = 3,
AV_PIXEL_FORMAT_SURFACE_FORMAT = 4,
AV_PIXEL_FORMAT_RGBA = 5
}
视频像素格式的枚举类。

函数

名称 描述
OH_AVBuffer * OH_AVBuffer_Create (int32_t capacity) 创建OH_AVBuffer实例。 需要注意的是,返回值指向的创建OH_AVBuffer的实例需要开发者主动调用接口释放,请参阅OH_AVBuffer_Destroy
OH_AVErrCode OH_AVBuffer_Destroy (OH_AVBuffer *buffer) 释放OH_AVBuffer实例指针的资源。
OH_AVErrCode OH_AVBuffer_GetBufferAttr (OH_AVBuffer *buffer, OH_AVCodecBufferAttr *attr) 获取数据缓冲区的pts、size、offset、flags高频属性参数。
OH_AVErrCode OH_AVBuffer_SetBufferAttr (OH_AVBuffer *buffer, const OH_AVCodecBufferAttr *attr) 设置数据缓冲区的pts、size、offset、flags高频属性参数。
OH_AVFormat * OH_AVBuffer_GetParameter (OH_AVBuffer *buffer) 获取除基础属性外的其他参数,信息在OH_AVFormat中承载。
OH_AVErrCode OH_AVBuffer_SetParameter (OH_AVBuffer *buffer, const OH_AVFormat *format) 设置除基础属性外的其他参数,信息在OH_AVFormat中承载。
uint8_t * OH_AVBuffer_GetAddr (OH_AVBuffer *buffer) 获取数据缓冲区的虚拟地址。
int32_t OH_AVBuffer_GetCapacity (OH_AVBuffer *buffer) 获取数据缓冲区的容量(字节数)。
OH_NativeBuffer * OH_AVBuffer_GetNativeBuffer (OH_AVBuffer *buffer) 获取OH_NativeBuffer实例的指针。
struct OH_AVFormat * OH_AVFormat_Create (void) 创建OH_AVFormat实例,用于读写数据。
struct OH_AVFormat * OH_AVFormat_CreateAudioFormat (const char *mimeType, int32_t sampleRate, int32_t channelCount) 创建音频OH_AVFormat实例指针并预设置指定参数,用于读写数据。
struct OH_AVFormat * OH_AVFormat_CreateVideoFormat (const char *mimeType, int32_t width, int32_t height) 创建视频OH_AVFormat实例指针并预设置指定参数,用于读写数据。
void OH_AVFormat_Destroy (struct OH_AVFormat *format) 销毁OH_AVFormat实例。
bool OH_AVFormat_Copy (struct OH_AVFormat *to, struct OH_AVFormat *from) 复制OH_AVFormat实例。
bool OH_AVFormat_SetIntValue (struct OH_AVFormat *format, const char *key, int32_t value) 对OH_AVFormat的key赋int类型的值。
bool OH_AVFormat_SetLongValue (struct OH_AVFormat *format, const char *key, int64_t value) 对OH_AVFormat的key赋long类型的值。
bool OH_AVFormat_SetFloatValue (struct OH_AVFormat *format, const char *key, float value) 对OH_AVFormat的key赋float类型的值。
bool OH_AVFormat_SetDoubleValue (struct OH_AVFormat *format, const char *key, double value) 对OH_AVFormat的key赋double类型的值。
bool OH_AVFormat_SetStringValue (struct OH_AVFormat *format, const char *key, const char *value) 对OH_AVFormat的key赋string类型的值。
bool OH_AVFormat_SetBuffer (struct OH_AVFormat *format, const char *key, const uint8_t *addr, size_t size) 将指定长度的数据块写入OH_AVFormat。
bool OH_AVFormat_GetIntValue (struct OH_AVFormat *format, const char *key, int32_t *out) 从OH_AVFormat的key获取int类型的值。
bool OH_AVFormat_GetLongValue (struct OH_AVFormat *format, const char *key, int64_t *out) 从OH_AVFormat的key获取long类型的值。
bool OH_AVFormat_GetFloatValue (struct OH_AVFormat *format, const char *key, float *out) 从OH_AVFormat的key获取float类型的值。
bool OH_AVFormat_GetDoubleValue (struct OH_AVFormat *format, const char *key, double *out) 从OH_AVFormat的key获取double类型的值。
bool OH_AVFormat_GetStringValue (struct OH_AVFormat *format, const char *key, const char **out) 从OH_AVFormat的key获取string类型的值。
bool OH_AVFormat_GetBuffer (struct OH_AVFormat *format, const char *key, uint8_t **addr, size_t *size) 从OH_AVFormat中读取指定长度的数据块。
const char * OH_AVFormat_DumpInfo (struct OH_AVFormat *format) 返回OH_AVFormat中包含的key-value组成的字符串。
OH_AVMemory * OH_AVMemory_Create (int32_t size) 创建OH_AVMemory实例的指针。(API11废弃)
uint8_t * OH_AVMemory_GetAddr (struct OH_AVMemory *mem) 获取内存虚拟地址。 (API11废弃)
int32_t OH_AVMemory_GetSize (struct OH_AVMemory *mem) 获取内存长度。(API11废弃)
OH_AVErrCode OH_AVMemory_Destroy (struct OH_AVMemory *mem) 释放OH_AVMemory实例指针的资源。(API11废弃)

类型定义说明

OH_AmbAttributeSet

typedef enum OH_AmbAttributeSet OH_AmbAttributeSet

描述

高保真立体声混响设置。

用int64_t整数来表示高保真立体声混响属性。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 11

OH_AudioChannelLayout

typedef enum OH_AudioChannelLayout OH_AudioChannelLayout

描述

音频声道布局。

用int64_t整数来表示在录制或播放时扬声器的外观和顺序。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 11

OH_AudioChannelSet

typedef enum OH_AudioChannelSet OH_AudioChannelSet

描述

音频声道集合。

将每一个声道映射为int64_t的变量。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 11

OH_AVBuffer

typedef struct OH_AVBuffer OH_AVBuffer

描述

为媒体内存接口定义native层对象。

起始版本: 11

OH_AVCodecBufferAttr

typedef struct OH_AVCodecBufferAttr OH_AVCodecBufferAttr

描述

定义OH_AVCodec的缓冲区描述信息。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 9

OH_AVCodecBufferFlags

typedef enum OH_AVCodecBufferFlags OH_AVCodecBufferFlags

描述

枚举OH_AVCodec缓冲区标记的类别。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 9

OH_AVErrCode

typedef enum OH_AVErrCode OH_AVErrCode

描述

媒体系统错误码。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 9

OH_AVFormat

typedef struct OH_AVFormat OH_AVFormat

描述

为OH_AVFormat接口定义native层对象。

起始版本: 9

OH_AVMemory

typedef struct OH_AVMemory OH_AVMemory

描述

为音视频内存接口定义native层对象。

起始版本: 9

OH_AVPixelFormat

typedef enum OH_AVPixelFormat OH_AVPixelFormat

描述

视频像素格式的枚举类。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 9

OH_NativeBuffer

typedef struct OH_NativeBuffer OH_NativeBuffer

描述

为图形内存接口定义native层对象。

起始版本: 11

OH_Core_HdrType

typedef enum OH_Core_HdrType OH_Core_HdrType

描述

HDR类型枚举。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 18

枚举类型说明

OH_AmbAttributeSet

enum OH_AmbAttributeSet

描述

高保真立体声混响设置。

用int64_t整数来表示高保真立体声混响属性。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 11

枚举值 描述
AMB_ORD_1 一阶高保真立体声混响
AMB_ORD_2 二阶高保真立体声混响
AMB_ORD_3 三阶高保真立体声混响
AMB_COM_ACN ACN通道排序的高保真立体声混响
AMB_COM_FUMA FUMA通道排序的高保真立体声混响
AMB_NOR_N3D N3D归一化的高保真立体声混响
AMB_NOR_SN3D SN3D归一化的高保真立体声混响
AMB_MODE 高保真立体声混响的声道布局

OH_AudioChannelLayout

enum OH_AudioChannelLayout

描述

音频声道布局。

用int64_t整数来表示在录制或播放时扬声器的外观和顺序。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 11

枚举值 描述
CH_LAYOUT_UNKNOWN 未知声道布局
CH_LAYOUT_MONO 单声道布局, 共1个声道
CH_LAYOUT_STEREO 立体声布局,共2个声道
CH_LAYOUT_STEREO_DOWNMIX 立体声下混布局,共2个声道
CH_LAYOUT_2POINT1 2.1布局,共3个声道
CH_LAYOUT_3POINT0 3.0布局,共3个声道
CH_LAYOUT_SURROUND 环绕布局,共3个声道
CH_LAYOUT_3POINT1 3.1布局,共4个声道
CH_LAYOUT_4POINT0 4.0布局,共4个声道
CH_LAYOUT_QUAD_SIDE QUAD_SIDE布局,共4个声道
CH_LAYOUT_QUAD QUAD布局,共4个声道
CH_LAYOUT_2POINT0POINT2 2.0.2布局,共4个声道
CH_LAYOUT_AMB_ORDER1_ACN_N3D ACN_N3D(根据ITU标准)的一阶FOA布局,共4个声道
CH_LAYOUT_AMB_ORDER1_ACN_SN3D ACN_SN3D(根据ITU标准)的一阶FOA布局,共4个声道
CH_LAYOUT_AMB_ORDER1_FUMA FUMA(根据ITU标准)的一阶FOA布局,共4个声道
CH_LAYOUT_4POINT1 4.1布局,共5个声道
CH_LAYOUT_5POINT0 5.0布局,共5个声道
CH_LAYOUT_5POINT0_BACK 5.0-后置布局,共5个声道
CH_LAYOUT_2POINT1POINT2 2.1.2布局,共5个声道
CH_LAYOUT_3POINT0POINT2 3.0.2布局,共5个声道
CH_LAYOUT_5POINT1 5.1布局,共6个声道
CH_LAYOUT_5POINT1_BACK 5.1-后置布局,共6个声道
CH_LAYOUT_6POINT0 6.0布局,共6个声道
CH_LAYOUT_3POINT1POINT2 3.1.2布局,共6个声道
CH_LAYOUT_6POINT0_FRONT 6.0-Front布局,共6个声道
CH_LAYOUT_HEXAGONAL HEXAGONAL布局,共6个声道
CH_LAYOUT_6POINT1 6.1布局,共7个声道
CH_LAYOUT_6POINT1_BACK 6.1-后置布局,共7个声道
CH_LAYOUT_6POINT1_FRONT 6.1-前置布局,共7个声道
CH_LAYOUT_7POINT0 7.0布局,共7个声道
CH_LAYOUT_7POINT0_FRONT 7.0-前置布局,共7个声道
CH_LAYOUT_7POINT1 7.1布局,共8个声道
CH_LAYOUT_OCTAGONAL OCTAGONAL布局,共8个声道
CH_LAYOUT_5POINT1POINT2 5.1.2布局,共8个声道
CH_LAYOUT_7POINT1_WIDE 7.1-宽布局,共8个声道
CH_LAYOUT_7POINT1_WIDE_BACK 7.1-后置宽布局,共8个声道
CH_LAYOUT_AMB_ORDER2_ACN_N3D ACN_N3D(根据ITU标准)的二阶HOA布局,共9个声道
CH_LAYOUT_AMB_ORDER2_ACN_SN3D ACN_SN3D(根据ITU标准)的二阶HOA布局,共9个声道
CH_LAYOUT_AMB_ORDER2_FUMA FUMA(根据ITU标准)的二阶HOA布局,共9个声道
CH_LAYOUT_5POINT1POINT4 5.1.4布局,共10个声道
CH_LAYOUT_7POINT1POINT2 7.1.2布局,共10个声道
CH_LAYOUT_7POINT1POINT4 7.1.4布局,共12个声道
CH_LAYOUT_10POINT2 10.2布局,共12个声道
CH_LAYOUT_9POINT1POINT4 9.1.4布局,共14个声道
CH_LAYOUT_9POINT1POINT6 9.1.6布局,共16个声道
CH_LAYOUT_HEXADECAGONAL HEXADECAGONAL布局,共16个声道
CH_LAYOUT_AMB_ORDER3_ACN_N3D ACN_N3D(根据ITU标准)的三阶HOA布局,共16个声道
CH_LAYOUT_AMB_ORDER3_ACN_SN3D ACN_SN3D(根据ITU标准)的三阶HOA布局,共16个声道
CH_LAYOUT_AMB_ORDER3_FUMA FUMA(根据ITU标准)的三阶HOA布局,共16个声道
CH_LAYOUT_22POINT2 22.2布局,共24个声道

OH_AudioChannelSet

enum OH_AudioChannelSet

描述

音频声道集合。

将每一个声道映射为int64_t的变量。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 11

枚举值 描述
CH_SET_FRONT_LEFT 左前声道
CH_SET_FRONT_RIGHT 右前声道
CH_SET_FRONT_CENTER 中前声道
CH_SET_LOW_FREQUENCY 低频声道
CH_SET_BACK_LEFT 左后声道
CH_SET_BACK_RIGHT 右后声道
CH_SET_FRONT_LEFT_OF_CENTER 左前中置声道
CH_SET_FRONT_RIGHT_OF_CENTER 右前中置声道
CH_SET_BACK_CENTER 后方中置声道
CH_SET_SIDE_LEFT 左侧声道
CH_SET_SIDE_RIGHT 右侧声道
CH_SET_TOP_CENTER 上方中置声道
CH_SET_TOP_FRONT_LEFT 上方左前声道
CH_SET_TOP_FRONT_CENTER 上方中前声道
CH_SET_TOP_FRONT_RIGHT 上方右前声道
CH_SET_TOP_BACK_LEFT 上方左后声道
CH_SET_TOP_BACK_CENTER 上方中后声道
CH_SET_TOP_BACK_RIGHT 上方右后声道
CH_SET_STEREO_LEFT 立体声左声道
CH_SET_STEREO_RIGHT 立体声右声道
CH_SET_WIDE_LEFT 宽左声道
CH_SET_WIDE_RIGHT 宽右声道
CH_SET_SURROUND_DIRECT_LEFT 左环绕声道
CH_SET_SURROUND_DIRECT_RIGHT 右环绕声道
CH_SET_LOW_FREQUENCY_2 低频声道2
CH_SET_TOP_SIDE_LEFT 上方左侧声道
CH_SET_TOP_SIDE_RIGHT 上方右侧声道
CH_SET_BOTTOM_FRONT_CENTER 下方中前声道
CH_SET_BOTTOM_FRONT_LEFT 下方左前声道
CH_SET_BOTTOM_FRONT_RIGHT 下方右前声道

OH_AVCodecBufferFlags

enum OH_AVCodecBufferFlags

描述

枚举OH_AVCodec缓冲区标记的类别。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 9

枚举值 描述
AVCODEC_BUFFER_FLAGS_NONE 表示为普通帧。
AVCODEC_BUFFER_FLAGS_EOS 表示缓冲区是流结束帧。
AVCODEC_BUFFER_FLAGS_SYNC_FRAME 表示缓冲区包含关键帧。
AVCODEC_BUFFER_FLAGS_INCOMPLETE_FRAME 表示缓冲区中的数据只是帧的一部分。
AVCODEC_BUFFER_FLAGS_CODEC_DATA 表示缓冲区包含编解码特定数据。
AVCODEC_BUFFER_FLAGS_DISCARD 表示缓冲区被解码依赖,解码之后的数据可丢弃。
起始版本: 12
AVCODEC_BUFFER_FLAGS_DISPOSABLE 表示缓冲区不被参考可直接丢弃。
起始版本: 12

OH_AVErrCode

enum OH_AVErrCode

描述

媒体系统错误码。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 9

枚举值 描述
AV_ERR_OK 操作成功。
AV_ERR_NO_MEMORY 无内存。
AV_ERR_OPERATE_NOT_PERMIT 操作不允许。
AV_ERR_INVALID_VAL 无效值。
AV_ERR_IO IO错误。
AV_ERR_TIMEOUT 超时错误。
AV_ERR_UNKNOWN 未知错误。
AV_ERR_SERVICE_DIED 服务死亡。
AV_ERR_INVALID_STATE 当前状态不支持此操作。
AV_ERR_UNSUPPORT 未支持的功能。
AV_ERR_UNSUPPORTED_FORMAT 不支持的格式。
起始版本: 18
AV_ERR_EXTEND_START 扩展错误码初始值。
AV_ERR_DRM_BASE DRM起始错误码。
起始版本: 12
AV_ERR_DRM_DECRYPT_FAILED DRM解密失败。
起始版本: 12
AV_ERR_VIDEO_BASE 视频起始错误码。
起始版本: 12
AV_ERR_VIDEO_UNSUPPORTED_COLOR_SPACE_CONVERSION 视频不支持色彩空间转换。
起始版本: 12

OH_AVPixelFormat

enum OH_AVPixelFormat

描述

视频像素格式的枚举类。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 9

枚举值 描述
AV_PIXEL_FORMAT_YUVI420 yuv 420 planar。
AV_PIXEL_FORMAT_NV12 NV12. yuv 420 semiplanar。
AV_PIXEL_FORMAT_NV21 NV21. yvu 420 semiplanar。
AV_PIXEL_FORMAT_SURFACE_FORMAT 像素格式从surface获取。只作用于Surface模式,Buffer模式不生效。
AV_PIXEL_FORMAT_RGBA RGBA8888。

OH_Core_HdrType

enum OH_Core_HdrType

描述

HDR类型枚举。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 18

枚举值 描述
OH_CORE_HDR_TYPE_NONE 此选项用于标记非HDR类型。
OH_CORE_HDR_TYPE_VIVID 此选项用于标记HDR Vivid类型。

函数说明

OH_AVBuffer_Create()

OH_AVBuffer* OH_AVBuffer_Create (int32_t capacity)

描述

创建OH_AVBuffer实例。 需要注意的是,返回值指向的创建OH_AVBuffer的实例需要开发者主动调用接口释放,请参阅OH_AVBuffer_Destroy

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 11

参数:

名称 描述
capacity 创建内存的大小,单位字节。

返回:

如果创建成功,则返回OH_AVBuffer实例的指针,如果失败,则返回NULL。

可能失败的原因:

  1. capacity <=0;
  2. 出现内部错误,系统没有资源等。

OH_AVBuffer_Destroy()

OH_AVErrCode OH_AVBuffer_Destroy (OH_AVBuffer *buffer)

描述

释放OH_AVBuffer实例指针的资源,同一个buffer不允许重复销毁。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 11

参数:

名称 描述
buffer 指向OH_AVBuffer实例的指针。

返回:

返回函数结果:

AV_ERR_OK:操作成功。

AV_ERR_INVALID_VAL:输入的buffer为空指针或者buffer结构校验失败。

AV_ERR_OPERATE_NOT_PERMIT:输入的buffer不是用户创建的。

OH_AVBuffer_GetAddr()

uint8_t* OH_AVBuffer_GetAddr (OH_AVBuffer *buffer)

描述

获取数据缓冲区的虚拟地址。

不同场景下,对是否可以获取虚拟地址的支持情况不同,请见表格:

编码: |模式|填充数据的方式| 是否可以获取虚拟地址| |—————|——–|——–| |Surface模式|OnNeedInputBuffer输入|×| |Surface模式|OnNewOutputBuffer输出|√| |Buffer模式|OnNeedInputBuffer输入|√| |Buffer模式|OnNewOutputBuffer输出|√|

解码: |模式|填充数据的方式| 是否可以获取虚拟地址| |—————|——–|——–| |Surface模式|OnNeedInputBuffer输入|√| |Surface模式|OnNewOutputBuffer输出|×| |Buffer模式|OnNeedInputBuffer输入|√| |Buffer模式|OnNewOutputBuffer输出|√|

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 11

参数:

名称 描述
buffer 指向OH_AVBuffer实例的指针。

返回:

如果成功,则返回数据缓冲区的虚拟地址,如果失败,则返回NULL。

可能失败的原因:

  1. 输入的buffer为空指针;
  2. OH_AVBuffer结构校验失败;
  3. 出现内部错误。

OH_AVBuffer_GetBufferAttr()

OH_AVErrCode OH_AVBuffer_GetBufferAttr (OH_AVBuffer *buffer, OH_AVCodecBufferAttr *attr)

描述

获取数据缓冲区的pts、size、offset、flags高频属性参数。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 11

参数:

名称 描述
buffer 指向OH_AVBuffer实例的指针。
attr 指向OH_AVCodecBufferAttr实例的指针。

返回:

返回函数结果:

AV_ERR_OK:操作成功。

AV_ERR_INVALID_VAL:

可能的原因:
1. 输入的buffer或attr为空指针;
2. buffer结构校验失败。

OH_AVBuffer_GetCapacity()

int32_t OH_AVBuffer_GetCapacity (OH_AVBuffer *buffer)

描述

获取数据缓冲区的容量(字节数)。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 11

参数:

名称 描述
buffer 指向OH_AVBuffer实例的指针。

返回:

如果成功,则返回数据缓冲区的容量,如果失败,则返回-1。

可能失败的原因:

  1. 输入的buffer为空指针;
  2. OH_AVBuffer结构校验失败;
  3. 出现内部错误。

OH_AVBuffer_GetNativeBuffer()

OH_NativeBuffer* OH_AVBuffer_GetNativeBuffer (OH_AVBuffer *buffer)

描述

获取OH_NativeBuffer实例的指针。 需要注意的是,返回值指向的创建OH_NativeBuffer的实例需要开发者主动调用接口释放,请参阅OH_NativeBuffer_Unreference

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 11

参数:

名称 描述
buffer 指向OH_AVBuffer实例的指针。

返回:

如果成功,则返回OH_NativeBuffer实例的指针,如果失败,则返回NULL。

可能失败的原因:

  1. 输入的buffer为空指针;
  2. OH_AVBuffer结构校验失败;
  3. 出现内部错误。

OH_AVBuffer_GetParameter()

OH_AVFormat* OH_AVBuffer_GetParameter (OH_AVBuffer *buffer)

描述

获取除基础属性外的其他参数,信息在OH_AVFormat中承载。 需要注意的是,返回值指向的创建OH_AVFormat的实例需要开发者主动释放,请参阅OH_AVFormat_Destroy

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 11

参数:

名称 描述
buffer 指向OH_AVBuffer实例的指针。

返回:

返回函数结果:

AV_ERR_OK:操作成功。

AV_ERR_INVALID_VAL:

可能的原因:
1. 输入的buffer为空指针;
2. 输入buffer的meta为空指针;
3. buffer结构校验失败。

OH_AVBuffer_SetBufferAttr()

OH_AVErrCode OH_AVBuffer_SetBufferAttr (OH_AVBuffer *buffer, const OH_AVCodecBufferAttr *attr)

描述

设置数据缓冲区的pts、size、offset、flags高频属性参数。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 11

参数:

名称 描述
buffer 指向OH_AVBuffer实例的指针。
attr 指向OH_AVCodecBufferAttr实例的指针。

返回:

返回函数结果:

AV_ERR_OK:操作成功。

AV_ERR_INVALID_VAL:

可能的原因:
1. 输入的buffer或attr为空指针;
2. buffer结构校验失败;
3. 输入buffer中内存的size或offset是无效值。

OH_AVBuffer_SetParameter()

OH_AVErrCode OH_AVBuffer_SetParameter (OH_AVBuffer *buffer, const OH_AVFormat *format)

描述

设置除基础属性外的其他参数,信息在OH_AVFormat中承载。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 11

参数:

名称 描述
buffer 指向OH_AVBuffer实例的指针。
format 指向OH_AVFormat实例的指针。

返回:

返回函数结果:

AV_ERR_OK:操作成功。

AV_ERR_INVALID_VAL:

可能的原因:
1. 输入的buffer或format为空指针;
2. 输入buffer的meta为空指针;
3. buffer结构校验失败。

OH_AVFormat_Copy()

bool OH_AVFormat_Copy (struct OH_AVFormat *to, struct OH_AVFormat *from)

描述

复制OH_AVFormat实例。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 9

参数:

名称 描述
to OH_AVFormat实例,用于接收数据。
from 指向复制数据的OH_AVFormat实例的指针。

返回:

返回值为TRUE表示成功,返回值为FALSE表示失败。

可能的失败原因:

  1. 输入参数为空指针;
  2. 输入的OH_AVFormat参数结构校验失败。

OH_AVFormat_Create()

struct OH_AVFormat* OH_AVFormat_Create (void)

描述

创建OH_AVFormat实例,用于读写数据。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 9

返回:

返回指向OH_AVFormat实例的指针。系统资源不足时返回NULL。

OH_AVFormat_CreateAudioFormat()

struct OH_AVFormat* OH_AVFormat_CreateAudioFormat (const char *mimeType, int32_t sampleRate, int32_t channelCount)

描述

创建音频OH_AVFormat实例指针并预设置指定参数,用于读写数据。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 10

参数:

名称 描述
mimeType MIME类型描述字符串,请参阅AVCODEC_MIMETYPE
sampleRate 采样率,单位Hz。
channelCount 声道个数,如1为单声道,2为双声道。

返回:

返回指向OH_AVFormat实例的指针。传入的mimeType为NULL或系统资源不足时返回NULL。

OH_AVFormat_CreateVideoFormat()

struct OH_AVFormat* OH_AVFormat_CreateVideoFormat (const char *mimeType, int32_t width, int32_t height)

描述

创建视频OH_AVFormat实例指针并预设置指定参数,用于读写数据。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 10

参数:

名称 描述
mimeType MIME类型描述字符串,请参阅AVCODEC_MIMETYPE
width 亮度的宽度,单位为pixel。
height 亮度的高度,单位为pixel。

返回:

返回指向OH_AVFormat实例的指针。传入的mimeType为NULL或系统资源不足时返回NULL。

OH_AVFormat_Destroy()

void OH_AVFormat_Destroy (struct OH_AVFormat *format)

描述

销毁OH_AVFormat实例,不允许重复销毁。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 9

参数:

名称 描述
format 指向OH_AVFormat实例的指针。

返回:

无返回值。

OH_AVFormat_DumpInfo()

const char* OH_AVFormat_DumpInfo (struct OH_AVFormat *format)

描述

返回OH_AVFormat中包含的key-value组成的字符串。最大可返回1024字节的字符串,销毁format时释放字符串指针。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 9

参数:

名称 描述
format 指向OH_AVFormat实例的指针。

返回:

返回一个由key-value组成的字符串。传入的format为NULL或系统资源不足时返回NULL。

OH_AVFormat_GetBuffer()

bool OH_AVFormat_GetBuffer (struct OH_AVFormat *format, const char *key, uint8_t ** addr, size_t *size)

描述

从OH_AVFormat中读取指定长度的数据块。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 9

参数:

名称 描述
format 指向OH_AVFormat实例的指针。
key 要读取数据的键。
addr 生命周期与format相同,与format一同销毁。 如果开发者需要长时间保持它,必须进行内存拷贝。
size 读到数据的长度。

返回:

返回值为TRUE表示成功,返回值为FALSE表示失败。

可能的失败原因:

  1. 输入format为空指针;
  2. 输入format参数结构校验失败;
  3. 输入key为空指针;
  4. 输入addr为空指针;
  5. size为空指针;
  6. 获取的key不存在或者未设置。

OH_AVFormat_GetDoubleValue()

bool OH_AVFormat_GetDoubleValue (struct OH_AVFormat *format, const char *key, double *out)

描述

从OH_AVFormat的key获取double类型的值。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 9

参数:

名称 描述
format 指向OH_AVFormat实例的指针。
key 读取数据的键。
out 读取数据的值。

返回:

返回值为TRUE表示成功,返回值为FALSE表示失败。

可能的失败原因:

  1. 输入format为空指针;
  2. 输入format参数结构校验失败;
  3. 输入key为空指针;
  4. 输入out为空指针;
  5. 获取的key不存在或者未设置。

OH_AVFormat_GetFloatValue()

bool OH_AVFormat_GetFloatValue (struct OH_AVFormat *format, const char *key, float *out)

描述

从OH_AVFormat的key获取float类型的值。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 9

参数:

名称 描述
format 指向OH_AVFormat实例的指针。
key 读取数据的键。
out 读取数据的值。

返回:

返回值为TRUE表示成功,返回值为FALSE表示失败。

可能的失败原因:

  1. 输入format为空指针;
  2. 输入format参数结构校验失败;
  3. 输入key为空指针;
  4. 输入out为空指针;
  5. 获取的key不存在或者未设置。

OH_AVFormat_GetIntValue()

bool OH_AVFormat_GetIntValue (struct OH_AVFormat *format, const char *key, int32_t *out)

描述

从OH_AVFormat的key获取int类型的值。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 9

参数:

名称 描述
format 指向OH_AVFormat实例的指针。
key 读取数据的键。
out 读取数据的值。

返回:

返回值为TRUE表示成功,返回值为FALSE表示失败。

可能的失败原因:

  1. 输入format为空指针;
  2. 输入format参数结构校验失败;
  3. 输入key为空指针;
  4. 输入out为空指针;
  5. 获取的key不存在或者未设置。

OH_AVFormat_GetLongValue()

bool OH_AVFormat_GetLongValue (struct OH_AVFormat *format, const char *key, int64_t *out)

描述

从OH_AVFormat的key获取long类型的值。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 9

参数:

名称 描述
format 指向OH_AVFormat实例的指针。
key 读取数据的键。
out 读取数据的值。

返回:

返回值为TRUE表示成功,返回值为FALSE表示失败。

可能的失败原因:

  1. 输入format为空指针;
  2. 输入format参数结构校验失败;
  3. 输入key为空指针;
  4. 输入out为空指针;
  5. 获取的key不存在或者未设置。

OH_AVFormat_GetStringValue()

bool OH_AVFormat_GetStringValue (struct OH_AVFormat *format, const char *key, const char ** out)

描述

从OH_AVFormat的key获取string类型的值。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 9

参数:

名称 描述
format 指向OH_AVFormat实例的指针。
key 读取数据的键。
out 读取string指针,out数据的生命周期与format内string对应,如果开发者需要长时间保持它,必须进行拷贝内存。out最大输出字符串长度为256字节,如果长度超过256字节,会报false。

返回:

返回值为TRUE表示成功,返回值为FALSE表示失败。

可能的失败原因:

  1. 输入format为空指针;
  2. 输入format参数结构校验失败;
  3. 输入key为空指针;
  4. 输入out为空指针;
  5. malloc出的out字符串资源不足;
  6. 获取的key不存在或者未设置;
  7. 输出out的长度超过256字节。

OH_AVFormat_SetBuffer()

bool OH_AVFormat_SetBuffer (struct OH_AVFormat *format, const char *key, const uint8_t *addr, size_t size)

描述

将指定长度的数据块写入OH_AVFormat。该接口仅能设置buffer类型的参数,参数类型定义详见CodecBase

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 9

参数:

名称 描述
format 指向OH_AVFormat实例的指针。
key 写入数据的键。
addr 写入数据的地址,生命周期由开发者管理。
size 写入数据的长度,范围为(0, 1]MB。

返回:

返回值为TRUE表示成功,返回值为FALSE表示失败。

可能的失败原因:

  1. 输入format为空指针;
  2. 输入format参数结构校验失败;
  3. 输入key为空指针;
  4. 输入addr为空指针;
  5. size为0或超过上限,上限为1MB;
  6. 设置的key对应的value类型错误。

OH_AVFormat_SetDoubleValue()

bool OH_AVFormat_SetDoubleValue (struct OH_AVFormat *format, const char *key, double value)

描述

对OH_AVFormat的key赋double类型的值。该接口仅能设置double类型的参数,参数类型定义详见CodecBase

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 9

参数:

名称 描述
format 指向OH_AVFormat实例的指针。
key 写入数据的键。
value 写入数据的值。

返回:

返回值为TRUE表示成功,返回值为FALSE表示失败。

可能的失败原因:

  1. 输入format为空指针;
  2. 输入format参数结构校验失败;
  3. 输入key为空指针;
  4. 设置的key对应的value类型错误。

OH_AVFormat_SetFloatValue()

bool OH_AVFormat_SetFloatValue (struct OH_AVFormat *format, const char *key, float value)

描述

对OH_AVFormat的key赋float类型的值。该接口仅能设置float类型的参数,参数类型定义详见CodecBase

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 9

参数:

名称 描述
format 指向OH_AVFormat实例的指针。
key 写入数据的键。
value 写入数据的值。

返回:

返回值为TRUE表示成功,返回值为FALSE表示失败。

可能的失败原因:

  1. 输入format为空指针;
  2. 输入format参数结构校验失败;
  3. 输入key为空指针;
  4. 设置的key对应的value类型错误。

OH_AVFormat_SetIntValue()

bool OH_AVFormat_SetIntValue (struct OH_AVFormat *format, const char *key, int32_t value)

描述

对OH_AVFormat的key赋int类型的值。该接口仅能设置int类型的参数,参数类型定义详见CodecBase

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 9

参数:

名称 描述
format 指向OH_AVFormat实例的指针。
key 写入数据的键。
value 写入数据的值。

返回:

返回值为TRUE表示成功,返回值为FALSE表示失败。

可能的失败原因:

  1. 输入format为空指针;
  2. 输入format参数结构校验失败;
  3. 输入key为空指针;
  4. 设置的key对应的value类型错误。

OH_AVFormat_SetLongValue()

bool OH_AVFormat_SetLongValue (struct OH_AVFormat *format, const char *key, int64_t value)

描述

对OH_AVFormat的key赋long类型的值。该接口仅能设置long类型的参数,参数类型定义详见CodecBase

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 9

参数:

名称 描述
format 指向OH_AVFormat实例的指针。
key 写入数据的键。
value 写入数据的值。

返回:

返回值为TRUE表示成功,返回值为FALSE表示失败。

可能的失败原因:

  1. 输入format为空指针;
  2. 输入format参数结构校验失败;
  3. 输入key为空指针;
  4. 设置的key对应的value类型错误。

OH_AVFormat_SetStringValue()

bool OH_AVFormat_SetStringValue (struct OH_AVFormat *format, const char *key, const char *value)

描述

对OH_AVFormat的key赋string类型的值。该接口仅能设置string类型的参数,参数类型定义详见CodecBase

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 9

参数:

名称 描述
format 指向OH_AVFormat实例的指针。
key 写入数据的键。
value 写入字符串数据(使用建议:设置字符长度不超过256字节)。

返回:

返回值为TRUE表示成功,返回值为FALSE表示失败。

可能的失败原因:

  1. 输入format为空指针;
  2. 输入format参数结构校验失败;
  3. 输入key为空指针;
  4. 输入value为空指针;
  5. 设置的key对应的value类型错误。

OH_AVMemory_Create()

OH_AVMemory* OH_AVMemory_Create (int32_t size)

描述

创建OH_AVMemory实例的指针。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 10

废弃版本: 11

替代接口:OH_AVBuffer_Create

参数:

名称 描述
size 创建内存的大小,单位字节。

返回:

如果创建成功,返回OH_AVMemory实例的指针,如果失败,返回NULL。 使用结束后需要通过OH_AVMemory_Destroy释放内存。

OH_AVMemory_Destroy()

OH_AVErrCode OH_AVMemory_Destroy (struct OH_AVMemory *mem)

描述

释放OH_AVMemory实例指针的资源。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 10

废弃版本: 11

替代接口:OH_AVBuffer_Destroy

参数:

名称 描述
mem 指向OH_AVMemory实例的指针。

返回:

如果释放成功返回AV_ERR_OK,如果失败返回具体错误码, 参考OH_AVErrCode

OH_AVMemory_GetAddr()

uint8_t* OH_AVMemory_GetAddr (struct OH_AVMemory *mem)

描述

获取内存虚拟地址。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 9

废弃版本: 11

替代接口:OH_AVBuffer_GetAddr

参数:

名称 描述
mem 指向OH_AVMemory实例的指针。

返回:

如果内存有效,返回内存的虚拟地址;如果内存无效,返回NULL。

可能的失败原因:

  1. 输入mem为空指针;
  2. 输入mem参数结构校验失败;
  3. 输入mem中内存为空指针。

OH_AVMemory_GetSize()

int32_t OH_AVMemory_GetSize (struct OH_AVMemory *mem)

描述

获取内存长度。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 9

废弃版本: 11

替代接口:OH_AVBuffer_GetCapacity

参数:

名称 描述
mem 指向OH_AVMemory实例的指针。

返回:

如果内存有效,返回内存长度;如果内存无效,返回-1。

可能的失败原因:

  1. 输入mem为空指针;
  2. 输入mem参数结构校验失败;
  3. 输入mem中内存为空指针。

你可能感兴趣的鸿蒙文章

harmony 鸿蒙AVCodec Kit(音视频编解码服务)

harmony 鸿蒙AVCapability

harmony 鸿蒙AVDemuxer

harmony 鸿蒙AVMuxer

harmony 鸿蒙AVSource

harmony 鸿蒙AudioCodec

harmony 鸿蒙AudioDecoder

harmony 鸿蒙AudioEncoder

harmony 鸿蒙CodecBase

harmony 鸿蒙DrmSubsample

0  赞