Codec
概述
Codec模块接口定义。
Codec模块涉及自定义类型、音视频编解码组件初始化、参数设置、数据的轮转和控制等。
Since:
3.1
Version:
2.0
汇总
文件
名称 | 描述 |
---|---|
codec_callback_if.h | 主要包括回调函数接口定义。 |
codec_common_type.h | Codec模块接口定义中使用的自定义数据类型。 |
codec_component_if.h | 主要包括Codec组件接口定义。 |
codec_component_manager.h | 主要包括Codec组件管理类接口。 |
codec_component_type.h | Codec模块接口定义中使用的自定义数据类型。 |
类
名称 | 描述 |
---|---|
CodecCallbackType | struct Codec回调接口定义。 |
Alignment | struct 对齐结构定义,包含宽高的对齐值。 |
Rect | struct 矩形的定义。 |
RangeValue | struct 取值范围的定义。 |
CodecComponentType | struct Codec组件接口定义。 |
CodecComponentManager | struct Codec组件管理类接口定义。 |
VideoPortCap | struct 定义视频编解码能力。 |
AudioPortCap | struct 定义音频编解码能力。 |
PortCap | union 定义音视频编解码能力。 |
CodecCompCapability | struct 定义Codec编解码能力。 |
OmxCodecBuffer | struct Codec buffer信息的定义。 |
CompVerInfo | struct 定义组件版本信息。 |
EventInfo | struct 定义事件上报信息。 |
SupportBufferType | struct SupportBuffer类型定义。 |
UseBufferType | struct UseBuffer类型定义。 |
GetBufferHandleUsageParams | struct 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_8000 | 8K采样率。 |
AUD_SAMPLE_RATE_12000 | 12K采样率。 |
AUD_SAMPLE_RATE_11025 | 11.025K采样率。 |
AUD_SAMPLE_RATE_16000 | 16K采样率。 |
AUD_SAMPLE_RATE_22050 | 22.050K采样率。 |
AUD_SAMPLE_RATE_24000 | 24K采样率。 |
AUD_SAMPLE_RATE_32000 | 32K采样率。 |
AUD_SAMPLE_RATE_44100 | 44.1K采样率。 |
AUD_SAMPLE_RATE_48000 | 48K采样率。 |
AUD_SAMPLE_RATE_64000 | 64K采样率。 |
AUD_SAMPLE_RATE_96000 | 96K采样率。 |
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_HANDLE | handle类型。 |
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_IndexExtBufferTypeStartUnused | BufferType 扩展index。 |
OMX_IndexParamSupportBufferType | SupportBuffer类型。 |
OMX_IndexParamUseBufferType | UseBuffer类型。 |
OMX_IndexParamGetBufferHandleUsage | GetBufferHandleUsage类型。 |
OmxVideoExType
enum OmxVideoExType
描述:
枚举Codec扩展编码类型。
枚举值 | 描述 |
---|---|
OMX_VIDEO_CodingHEVC | HEVC编码类型。 |
Profile
enum Profile
描述:
枚举Codec规格。
枚举值 | 描述 |
---|---|
INVALID_PROFILE | 无效的规格。 |
AAC_LC_PROFILE | AAC低复杂度规格。 |
AAC_MAIN_PROFILE | AAC主规格。 |
AAC_HE_V1_PROFILE | AAC高效率和频带重现规格,又称为HEAAC,AAC+,或者AACPlusV1。 |
AAC_HE_V2_PROFILE | AAC高效率和频带重现以及变量立体声规格,又称为AAC++或者AACPlusV2。 |
AAC_LD_PROFILE | AAC低延迟规格。 |
AAC_ELD_PROFILE | AAC增强型低延迟规格。 |
AVC_BASELINE_PROFILE | H.264低规格。 |
AVC_MAIN_PROFILE | H.264主规格。 |
AVC_HIGH_PROFILE | H.264高规格。 |
HEVC_MAIN_PROFILE | H.265主规格。 |
HEVC_MAIN_10_PROFILE | H.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对象。