Core


Core

概述

Core模块提供用于播放框架的基础骨干能力,包含内存、错误码、格式载体等相关函数。

@syscap SystemCapability.Multimedia.Media.Core

Since: 9 Version: 1.0

汇总

文件

名称 描述
native_averrors.h 声明了媒体播放框架的错误码。
native_avformat.h 声明了格式相关的函数和枚举。
native_avmemory.h 声明了AVMemory的函数接口。

类型定义

名称 描述
OH_AVErrCode typedef enum OH_AVErrCode
音视频错误码。
OH_AVFormat typedef struct OH_AVFormat
OH_AVPixelFormat typedef enum OH_AVPixelFormat
AVPixel 格式的枚举。
OH_AVMemory typedef struct OH_AVMemory

枚举

名称 描述
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_EXTEND_START = 100
}
音视频错误码。
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
}
AVPixel 格式的枚举。

函数

名称 描述
OH_AVFormat_Create (void) struct OH_AVFormat *
创建一个OH_AVFormat句柄指针,用以读写数据。
OH_AVFormat_Destroy (struct OH_AVFormat *format) void
销毁指定OH_AVFormat句柄资源。
OH_AVFormat_Copy (struct OH_AVFormat *to, struct OH_AVFormat *from) bool
拷贝OH_AVFormat句柄资源.
OH_AVFormat_SetIntValue (struct OH_AVFormat *format, const char *key, int32_t value) bool
向OH_AVFormat写入Int数据.
OH_AVFormat_SetLongValue (struct OH_AVFormat *format, const char *key, int64_t value) bool
向OH_AVFormat写入Long数据。
OH_AVFormat_SetFloatValue (struct OH_AVFormat *format, const char *key, float value) bool
向OH_AVFormat写入Float数据。
OH_AVFormat_SetDoubleValue (struct OH_AVFormat *format, const char *key, double value) bool
向OH_AVFormat写入Double数据。
OH_AVFormat_SetStringValue (struct OH_AVFormat *format, const char *key, const char *value) bool
向OH_AVFormat写入String数据。
OH_AVFormat_SetBuffer (struct OH_AVFormat *format, const char *key, const uint8_t *addr, size_t size) bool
向OH_AVFormat写入一块指定长度的数据。
OH_AVFormat_GetIntValue (struct OH_AVFormat *format, const char *key, int32_t *out) bool
从OH_AVFormat读取Int数据。
OH_AVFormat_GetLongValue (struct OH_AVFormat *format, const char *key, int64_t *out) bool
从OH_AVFormat读取Long数据。
OH_AVFormat_GetFloatValue (struct OH_AVFormat *format, const char *key, float *out) bool
从OH_AVFormat读取Float数据。
OH_AVFormat_GetDoubleValue (struct OH_AVFormat *format, const char *key, double *out) bool
从OH_AVFormat读取Double数据。
OH_AVFormat_GetStringValue (struct OH_AVFormat *format, const char *key, const char **out) bool
从OH_AVFormat读取Double数据。
OH_AVFormat_GetBuffer (struct OH_AVFormat *format, const char *key, uint8_t **addr, size_t *size) bool
从OH_AVFormat读取一块指定长度的数据。
OH_AVFormat_DumpInfo (struct OH_AVFormat *format) const char *
以字符串的形式输出OH_AVFormat所包含的信息。
OH_AVMemory_GetAddr (struct OH_AVMemory *mem) uint8_t *
获取入参的内存虚拟地址。
OH_AVMemory_GetSize (struct OH_AVMemory *mem) int32_t
获取入参的内存长度。

类型定义说明

OH_AVErrCode

typedef enum OH_AVErrCodeOH_AVErrCode
1

描述: 音视频错误码。

@syscap SystemCapability.Multimedia.Media.Core

OH_AVPixelFormat

typedef enum OH_AVPixelFormatOH_AVPixelFormat
1

描述: AVPixel 格式的枚举。

@syscap SystemCapability.Multimedia.Media.Core

枚举类型说明

OH_AVErrCode

enum OH_AVErrCode
1

描述: 音视频错误码。

@syscap SystemCapability.Multimedia.Media.Core

枚举值 描述
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_EXTEND_START 扩展错误码初始值

OH_AVPixelFormat

enum OH_AVPixelFormat
1

描述: AVPixel 格式的枚举。

@syscap SystemCapability.Multimedia.Media.Core

枚举值 描述
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格式
AV_PIXEL_FORMAT_RGBA RGBA8888

函数说明

OH_AVFormat_Copy()

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

描述: 拷贝OH_AVFormat句柄资源.

@syscap SystemCapability.Multimedia.Media.Core

参数:

名称 描述
to 接收数据的OH_AVFormat句柄指针
from 被拷贝数据的OH_AVFormat句柄指针

返回:

返回值为TRUE表示成功

返回值为FALSE表示失败

OH_AVFormat_Create()

struct OH_AVFormat* OH_AVFormat_Create (void )
1

描述: 创建一个OH_AVFormat句柄指针,用以读写数据。

@syscap SystemCapability.Multimedia.Media.Core

返回:

返回OH_AVFormat实例的指针

OH_AVFormat_Destroy()

void OH_AVFormat_Destroy (struct OH_AVFormat * format)
1

描述: 销毁指定OH_AVFormat句柄资源。

@syscap SystemCapability.Multimedia.Media.Core

参数:

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

返回:

void

OH_AVFormat_DumpInfo()

const char* OH_AVFormat_DumpInfo (struct OH_AVFormat * format)
1

描述: 以字符串的形式输出OH_AVFormat所包含的信息。

@syscap SystemCapability.Multimedia.Media.Core

参数:

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

返回:

返回由键值和数据组成的字符串指针

OH_AVFormat_GetBuffer()

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

描述: 从OH_AVFormat读取一块指定长度的数据。

@syscap SystemCapability.Multimedia.Media.Core

参数:

名称 描述
format 指向OH_AVFormat实例的指针
key 读写数据的键值
addr 生命周期是format持有,伴随format销毁,如果调用者需要长期持有,必须进行内存拷贝
size 读写数据的长度

返回:

返回值为TRUE表示成功

返回值为FALSE表示失败

OH_AVFormat_GetDoubleValue()

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

描述: 从OH_AVFormat读取Double数据。

@syscap SystemCapability.Multimedia.Media.Core

参数:

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

返回:

返回值为TRUE表示成功

返回值为FALSE表示失败

OH_AVFormat_GetFloatValue()

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

描述: 从OH_AVFormat读取Float数据。

@syscap SystemCapability.Multimedia.Media.Core

参数:

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

返回:

返回值为TRUE表示成功

返回值为FALSE表示失败

OH_AVFormat_GetIntValue()

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

描述: 从OH_AVFormat读取Int数据。

@syscap SystemCapability.Multimedia.Media.Core

参数:

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

返回:

返回值为TRUE表示成功

返回值为FALSE表示失败

OH_AVFormat_GetLongValue()

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

描述: 从OH_AVFormat读取Long数据。

@syscap SystemCapability.Multimedia.Media.Core

参数:

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

返回:

返回值为TRUE表示成功

返回值为FALSE表示失败

OH_AVFormat_GetStringValue()

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

描述: 从OH_AVFormat读取Double数据。

@syscap SystemCapability.Multimedia.Media.Core

参数:

名称 描述
format 指向OH_AVFormat实例的指针
key 读取数据的键值
out 读取的字符串指针,指向的数据生命周期伴随GetString更新,伴随format销毁,如果调用者需要长期持有,必须进行内存拷贝

返回:

返回值为TRUE表示成功

返回值为FALSE表示失败

OH_AVFormat_SetBuffer()

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

描述: 向OH_AVFormat写入一块指定长度的数据。

@syscap SystemCapability.Multimedia.Media.Core

参数:

名称 描述
format 指向OH_AVFormat实例的指针
key 写入数据的键值
addr 写入的数据地址
size 写入的数据长度

返回:

返回值为TRUE表示成功

返回值为FALSE表示失败

OH_AVFormat_SetDoubleValue()

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

描述: 向OH_AVFormat写入Double数据。

@syscap SystemCapability.Multimedia.Media.Core

参数:

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

返回:

返回值为TRUE表示成功

返回值为FALSE表示失败

OH_AVFormat_SetFloatValue()

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

描述: 向OH_AVFormat写入Float数据。

@syscap SystemCapability.Multimedia.Media.Core

参数:

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

返回:

返回值为TRUE表示成功

返回值为FALSE表示失败

OH_AVFormat_SetIntValue()

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

描述: 向OH_AVFormat写入Int数据.

@syscap SystemCapability.Multimedia.Media.Core

参数:

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

返回:

返回值为TRUE表示成功

返回值为FALSE表示失败

OH_AVFormat_SetLongValue()

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

描述: 向OH_AVFormat写入Long数据。

@syscap SystemCapability.Multimedia.Media.Core

参数:

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

返回:

返回值为TRUE表示成功

返回值为FALSE表示失败

OH_AVFormat_SetStringValue()

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

描述: 向OH_AVFormat写入String数据。

@syscap SystemCapability.Multimedia.Media.Core

参数:

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

返回:

返回值为TRUE表示成功

返回值为FALSE表示失败

OH_AVMemory_GetAddr()

uint8_t* OH_AVMemory_GetAddr (struct OH_AVMemory * mem)
1

描述: 获取入参的内存虚拟地址。

@syscap SystemCapability.Multimedia.Media.Core

参数:

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

返回:

如果内存有效,返回内存的虚拟地址

如果内存无效,返回nullptr

OH_AVMemory_GetSize()

int32_t OH_AVMemory_GetSize (struct OH_AVMemory * mem)
1

描述: 获取入参的内存长度。

@syscap SystemCapability.Multimedia.Media.Core

参数:

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

返回:

如果内存有效,返回内存长度

如果内存无效,返回-1