harmony 鸿蒙Codec

2022-08-09 浏览 (1411)

Codec

概述

Codec模块接口定义。

Codec模块涉及自定义类型、音视频编解码组件初始化、参数设置、数据的轮转和控制等。

Since:

3.1

Version:

2.0

汇总

文件

名称描述
codec_callback_if.h主要包括回调函数接口定义。
codec_common_type.hCodec模块接口定义中使用的自定义数据类型。
codec_component_if.h主要包括Codec组件接口定义。
codec_component_manager.h主要包括Codec组件管理类接口。
codec_component_type.hCodec模块接口定义中使用的自定义数据类型。

名称描述
CodecCallbackTypestruct
Codec回调接口定义。
Alignmentstruct
对齐结构定义,包含宽高的对齐值。
Rectstruct
矩形的定义。
RangeValuestruct
取值范围的定义。
CodecComponentTypestruct
Codec组件接口定义。
CodecComponentManagerstruct
Codec组件管理类接口定义。
VideoPortCapstruct
定义视频编解码能力。
AudioPortCapstruct
定义音频编解码能力。
PortCapunion
定义音视频编解码能力。
CodecCompCapabilitystruct
定义Codec编解码能力。
OmxCodecBufferstruct
Codec buffer信息的定义。
CompVerInfostruct
定义组件版本信息。
EventInfostruct
定义事件上报信息。
SupportBufferTypestruct
SupportBuffer类型定义。
UseBufferTypestruct
UseBuffer类型定义。
GetBufferHandleUsageParamsstruct
BufferHandleUsage类型定义。

宏定义

名称描述
SAMPLE_FMT_NUM   32采样格式最大值。
UUID_LENGTH   128定义UUID长度。
PIX_FORMAT_NUM   16支持的像素格式数组大小。
SAMPLE_FORMAT_NUM   12支持的音频采样格式数组大小。
SAMPLE_RATE_NUM   16支持的音频采样率数组大小。
CHANNEL_NUM   16支持的音频通道数组大小。
NAME_LENGTH   32组件名称大小。
PROFILE_NUM   256支持的profile数组大小。

枚举

名称描述
CodecType { VIDEO_DECODER, VIDEO_ENCODER, AUDIO_DECODER, AUDIO_ENCODER,   INVALID_TYPE }枚举编解码的类型。
Profile { INVALID_PROFILE = 0, AAC_LC_PROFILE = 0x1000, AAC_MAIN_PROFILE, AAC_HE_V1_PROFILE,   AAC_HE_V2_PROFILE, AAC_LD_PROFILE, AAC_ELD_PROFILE, AVC_BASELINE_PROFILE = 0x2000,   AVC_MAIN_PROFILE, AVC_HIGH_PROFILE, HEVC_MAIN_PROFILE = 0x3000, HEVC_MAIN_10_PROFILE }枚举Codec规格。
AudioSampleRate { AUD_SAMPLE_RATE_8000 = 8000, AUD_SAMPLE_RATE_12000 = 12000, AUD_SAMPLE_RATE_11025 = 11025, AUD_SAMPLE_RATE_16000 = 16000,   AUD_SAMPLE_RATE_22050 = 22050, AUD_SAMPLE_RATE_24000 = 24000, AUD_SAMPLE_RATE_32000 = 32000, AUD_SAMPLE_RATE_44100 = 44100,   AUD_SAMPLE_RATE_48000 = 48000, AUD_SAMPLE_RATE_64000 = 64000, AUD_SAMPLE_RATE_96000 = 96000, AUD_SAMPLE_RATE_INVALID }枚举音频采样率。
CodecCapsMask { CODEC_CAP_ADAPTIVE_PLAYBACK = 0x1, CODEC_CAP_SECURE_PLAYBACK = 0x2, CODEC_CAP_TUNNEL_PLAYBACK = 0x4, CODEC_CAP_MULTI_PLANE = 0x10000 }枚举播放能力。
CodecProcessMode { PROCESS_BLOCKING_INPUT_BUFFER = 0X1, PROCESS_BLOCKING_OUTPUT_BUFFER = 0X2, PROCESS_BLOCKING_CONTROL_FLOW = 0X4, PROCESS_NONBLOCKING_INPUT_BUFFER = 0X100,   PROCESS_NONBLOCKING_OUTPUT_BUFFER = 0X200, PROCESS_NONBLOCKING_CONTROL_FLOW = 0X400 }枚举编解码处理模式。
AvCodecRole { MEDIA_ROLETYPE_IMAGE_JPEG = 0, MEDIA_ROLETYPE_VIDEO_AVC, MEDIA_ROLETYPE_VIDEO_HEVC, MEDIA_ROLETYPE_AUDIO_FIRST = 0x10000,   MEDIA_ROLETYPE_AUDIO_AAC = 0x10000, MEDIA_ROLETYPE_AUDIO_G711A, MEDIA_ROLETYPE_AUDIO_G711U, MEDIA_ROLETYPE_AUDIO_G726,   MEDIA_ROLETYPE_AUDIO_PCM, MEDIA_ROLETYPE_AUDIO_MP3, MEDIA_ROLETYPE_INVALID }枚举音视频编解码组件类型。
AudioSampleFormat {
AUDIO_SAMPLE_FMT_U8 , AUDIO_SAMPLE_FMT_S16 , AUDIO_SAMPLE_FMT_S32 , AUDIO_SAMPLE_FMT_FLOAT ,
AUDIO_SAMPLE_FMT_DOUBLE , AUDIO_SAMPLE_FMT_U8P , AUDIO_SAMPLE_FMT_S16P , AUDIO_SAMPLE_FMT_S32P ,
AUDIO_SAMPLE_FMT_FLOATP , AUDIO_SAMPLE_FMT_DOUBLEP , AUDIO_SAMPLE_FMT_INVALID
}
枚举音频采样格式。
CodecBufferType { CODEC_BUFFER_TYPE_INVALID = 0, CODEC_BUFFER_TYPE_VIRTUAL_ADDR = 0x1, CODEC_BUFFER_TYPE_AVSHARE_MEM_FD = 0x2, CODEC_BUFFER_TYPE_HANDLE = 0x4,   CODEC_BUFFER_TYPE_DYNAMIC_HANDLE = 0x8 }定义buffer类型。
ShareMemTypes { READ_WRITE_TYPE = 0x1, READ_ONLY_TYPE = 0x2 }枚举共享内存类型。
OmxIndexCodecExType { OMX_IndexExtBufferTypeStartUnused = OMX_IndexKhronosExtensions + 0x00a00000, OMX_IndexParamSupportBufferType, OMX_IndexParamUseBufferType, OMX_IndexParamGetBufferHandleUsage }枚举Codec扩展index。
OmxVideoExType { OMX_VIDEO_CodingHEVC = 11 }枚举Codec扩展编码类型。

函数

名称描述
CodecCallbackTypeGet (struct HdfRemoteService *remote)struct CodecCallbackType *
实例化CodecCallbackType对象。
CodecCallbackTypeRelease (struct CodecCallbackType *instance)void
释放CodecCallbackType对象。
CodecComponentTypeGet (struct HdfRemoteService *remote)struct CodecComponentType *
实例化CodecComponentType对象。
CodecComponentTypeRelease (struct CodecComponentType *instance)void
释放CodecComponentType对象。
GetCodecComponentManager (void)struct CodecComponentManager *
实例化CodecComponentManager对象。
CodecComponentManagerRelease (void)void
释放CodecComponentManager对象。

宏定义说明

CHANNEL_NUM

#define CHANNEL_NUM   16

描述:

支持的音频通道数组大小。

NAME_LENGTH

#define NAME_LENGTH   32

描述:

组件名称大小。

PIX_FORMAT_NUM

#define PIX_FORMAT_NUM   16

描述:

支持的像素格式数组大小。

PROFILE_NUM

#define PROFILE_NUM   256

描述:

支持的profile数组大小。

SAMPLE_FMT_NUM

#define SAMPLE_FMT_NUM   32

描述:

采样格式最大值。

SAMPLE_FORMAT_NUM

#define SAMPLE_FORMAT_NUM   12

描述:

支持的音频采样格式数组大小。

SAMPLE_RATE_NUM

#define SAMPLE_RATE_NUM   16

描述:

支持的音频采样率数组大小。

UUID_LENGTH

#define UUID_LENGTH   128

描述:

定义UUID长度。

枚举类型说明

AudioSampleFormat

enum AudioSampleFormat

描述:

枚举音频采样格式。

对于planar的采样格式,每个声道的数据是独立存储在data中; 对于packed的采样格式,只使用第一个data,每个声道的数据是交错存储的。

枚举值描述
AUDIO_SAMPLE_FMT_U8无符号8位整型,打包格式。
AUDIO_SAMPLE_FMT_S16带符号16位整型, 打包格式。
AUDIO_SAMPLE_FMT_S32带符号32位整型, 打包格式。
AUDIO_SAMPLE_FMT_FLOAT浮点型, 打包格式。
AUDIO_SAMPLE_FMT_DOUBLE双精度浮点型, 打包格式。
AUDIO_SAMPLE_FMT_U8P无符号8位整型, 平面格式。
AUDIO_SAMPLE_FMT_S16P带符号16位整型, 平面格式。
AUDIO_SAMPLE_FMT_S32P带符号32位整型, 平面格式。
AUDIO_SAMPLE_FMT_FLOATP浮点型, 平面格式。
AUDIO_SAMPLE_FMT_DOUBLEP双精度浮点型, 平面格式。
AUDIO_SAMPLE_FMT_INVALID无效采样格式。

AudioSampleRate

enum AudioSampleRate

描述:

枚举音频采样率。

枚举值描述
AUD_SAMPLE_RATE_80008K采样率。
AUD_SAMPLE_RATE_1200012K采样率。
AUD_SAMPLE_RATE_1102511.025K采样率。
AUD_SAMPLE_RATE_1600016K采样率。
AUD_SAMPLE_RATE_2205022.050K采样率。
AUD_SAMPLE_RATE_2400024K采样率。
AUD_SAMPLE_RATE_3200032K采样率。
AUD_SAMPLE_RATE_4410044.1K采样率。
AUD_SAMPLE_RATE_4800048K采样率。
AUD_SAMPLE_RATE_6400064K采样率。
AUD_SAMPLE_RATE_9600096K采样率。
AUD_SAMPLE_RATE_INVALID无效采样率。

AvCodecRole

enum AvCodecRole

描述:

枚举音视频编解码组件类型。

枚举值描述
MEDIA_ROLETYPE_IMAGE_JPEG图像JPEG媒体类型。
MEDIA_ROLETYPE_VIDEO_AVC视频H.264媒体类型。
MEDIA_ROLETYPE_VIDEO_HEVC视频H.265媒体类型。
MEDIA_ROLETYPE_AUDIO_FIRST音频编解码器类型。
MEDIA_ROLETYPE_AUDIO_AAC音频AAC媒体类型。
MEDIA_ROLETYPE_AUDIO_G711A音频G711A媒体类型。
MEDIA_ROLETYPE_AUDIO_G711U音频G711U媒体类型。
MEDIA_ROLETYPE_AUDIO_G726音频G726媒体类型。
MEDIA_ROLETYPE_AUDIO_PCM音频PCM媒体类型。
MEDIA_ROLETYPE_AUDIO_MP3音频MP3媒体类型。
MEDIA_ROLETYPE_INVALID无效媒体类型。

CodecBufferType

enum CodecBufferType

描述:

定义buffer类型。

枚举值描述
CODEC_BUFFER_TYPE_INVALID无效buffer类型。
CODEC_BUFFER_TYPE_VIRTUAL_ADDR虚拟地址类型。
CODEC_BUFFER_TYPE_AVSHARE_MEM_FD共享内存类型。
CODEC_BUFFER_TYPE_HANDLEhandle类型。
CODEC_BUFFER_TYPE_DYNAMIC_HANDLE动态handle类型。

CodecCapsMask

enum CodecCapsMask

描述:

枚举播放能力。

枚举值描述
CODEC_CAP_ADAPTIVE_PLAYBACK自适应播放能力。
CODEC_CAP_SECURE_PLAYBACK安全播放能力。
CODEC_CAP_TUNNEL_PLAYBACK通道播放能力。
CODEC_CAP_MULTI_PLANE视频图像平面/音频通道平面能力。

CodecProcessMode

enum CodecProcessMode

描述:

枚举编解码处理模式。

枚举值描述
PROCESS_BLOCKING_INPUT_BUFFER同步模式输入buffer。
PROCESS_BLOCKING_OUTPUT_BUFFER同步模式输出buffer。
PROCESS_BLOCKING_CONTROL_FLOW同步模式控制流。
PROCESS_NONBLOCKING_INPUT_BUFFER异步模式输入buffer。
PROCESS_NONBLOCKING_OUTPUT_BUFFER异步模式输出buffer。
PROCESS_NONBLOCKING_CONTROL_FLOW异步模式控制流。

CodecType

enum CodecType

描述:

枚举编解码的类型。

枚举值描述
VIDEO_DECODER视频解码类型。
VIDEO_ENCODER视频编码类型。
AUDIO_DECODER音频解码类型。
AUDIO_ENCODER音频编码类型。
INVALID_TYPE无效类型。

OmxIndexCodecExType

enum OmxIndexCodecExType

描述:

枚举Codec扩展index。

枚举值描述
OMX_IndexExtBufferTypeStartUnusedBufferType 扩展index。
OMX_IndexParamSupportBufferTypeSupportBuffer类型。
OMX_IndexParamUseBufferTypeUseBuffer类型。
OMX_IndexParamGetBufferHandleUsageGetBufferHandleUsage类型。

OmxVideoExType

enum OmxVideoExType

描述:

枚举Codec扩展编码类型。

枚举值描述
OMX_VIDEO_CodingHEVCHEVC编码类型。

Profile

enum Profile

描述:

枚举Codec规格。

枚举值描述
INVALID_PROFILE无效的规格。
AAC_LC_PROFILEAAC低复杂度规格。
AAC_MAIN_PROFILEAAC主规格。
AAC_HE_V1_PROFILEAAC高效率和频带重现规格,又称为HEAAC,AAC+,或者AACPlusV1。
AAC_HE_V2_PROFILEAAC高效率和频带重现以及变量立体声规格,又称为AAC++或者AACPlusV2。
AAC_LD_PROFILEAAC低延迟规格。
AAC_ELD_PROFILEAAC增强型低延迟规格。
AVC_BASELINE_PROFILEH.264低规格。
AVC_MAIN_PROFILEH.264主规格。
AVC_HIGH_PROFILEH.264高规格。
HEVC_MAIN_PROFILEH.265主规格。
HEVC_MAIN_10_PROFILEH.265 10比特主规格。

ShareMemTypes

enum ShareMemTypes

描述:

枚举共享内存类型。

枚举值描述
READ_WRITE_TYPE可读可写的共享内存类型。
READ_ONLY_TYPE可读的共享内存类型。

函数说明

CodecCallbackTypeGet()

struct CodecCallbackType * CodecCallbackTypeGet (struct HdfRemoteService * remote)

描述:

实例化CodecCallbackType对象。

参数:

名称描述
remote输入参数,指向HdfRemoteService的指针。

返回:

实例化CodecCallbackType对象。

CodecCallbackTypeRelease()

void CodecCallbackTypeRelease (struct CodecCallbackType * instance)

描述:

释放CodecCallbackType对象。

参数:

名称描述
instance输入参数,指向CodecCallbackType实例的指针。

CodecComponentManagerRelease()

void CodecComponentManagerRelease (void )

描述:

释放CodecComponentManager对象。

CodecComponentTypeGet()

struct CodecComponentType * CodecComponentTypeGet (struct HdfRemoteService * remote)

描述:

实例化CodecComponentType对象。

参数:

名称描述
remote输入参数,指向RemoteService的指针。

返回:

实例化的CodecComponentType对象。

CodecComponentTypeRelease()

void CodecComponentTypeRelease (struct CodecComponentType * instance)

描述:

释放CodecComponentType对象。

参数:

名称描述
instance输入参数,指向CodecComponentType实例的指针。

GetCodecComponentManager()

struct CodecComponentManager * GetCodecComponentManager (void )

描述:

实例化CodecComponentManager对象。

返回:

实例化的CodecComponentManager对象。

你可能感兴趣的鸿蒙文章

harmony 鸿蒙HDI 参数参考

harmony 鸿蒙ActRecognitionEvent

harmony 鸿蒙Activation

harmony 鸿蒙ActivityRecognitionTypes.idl

harmony 鸿蒙AddFusion

harmony 鸿蒙Alignment

harmony 鸿蒙AllocInfo

harmony 鸿蒙ApduSimIORequestInfo

harmony 鸿蒙ArgMaxFusion

harmony 鸿蒙Audio

  • 所属分类: 后端技术
  • 本文标签: 鸿蒙 软件
  • 版权声明: 本文链接 https://seaxiang.com/blog/2ee6188cdac2492b8a31005624fc33c4