1# Codec(V2_0)
2
3
4## 概述
5
6Codec模块接口定义。
7
8Codec模块涉及自定义类型、音视频编解码组件初始化、参数设置、数据的轮转和控制等。
9
10**起始版本:** 4.1
11
12
13## 汇总
14
15
16### 文件
17
18| 名称 | 描述 |
19| -------- | -------- |
20| [CodecExtTypes.idl](_codec_ext_types_8idl_v20.md) | Codec模块接口定义中使用的扩展数据类型。 |
21| [CodecImageType.idl](_codec_image_type_8idl_v20.md) | 定义图像编解码器模块API中使用的自定义数据类型,包括编解码器图像参数、类型和缓冲区。 |
22| [CodecTypes.idl](_codec_types_8idl_v20.md) | Codec模块接口定义中使用的自定义数据类型。 |
23| [ICodecCallback.idl](_i_codec_callback_8idl_v20.md) | 主要包括回调函数接口定义。 |
24| [ICodecComponent.idl](_i_codec_component_8idl_v20.md) | 主要包括Codec组件接口定义。 |
25| [ICodecComponentManager.idl](_i_codec_component_manager_8idl_v20.md) | 主要包括Codec组件管理类接口。 |
26| [ICodecImage.idl](_i_codec_image_8idl_v20.md) | 定义图像编解码器的API。 |
27
28
29### 类
30
31| 名称 | 描述 |
32| -------- | -------- |
33| struct  [SupportBufferType](_support_buffer_type_v20.md) | 查询vendor层支持buffer类型信息。 |
34| struct  [UseBufferType](_use_buffer_type_v20.md) | 设置输入输出端口对应的buffer类型。 |
35| struct  [GetBufferHandleUsageParams](_get_buffer_handle_usage_params_v20.md) | 查询vendor层BufferHandle的默认usage配置。 |
36| struct  [CodecVideoPortFormatParam](_codec_video_port_format_param_v20.md) | 设置输入输出端口的编解码格式。 |
37| struct  [ControlRateConstantQuality](_control_rate_constant_quality_v20.md) | 控制编码画面质量参数。 |
38| struct  [WorkingFrequencyParam](_working_frequency_param_v20.md) | 查询/设置vendor层编解码器工作频率。 |
39| struct  [ProcessNameParam](_process_name_param_v20.md) | 设置调用者进程名。 |
40| struct  [CodecVideoParamHevc](_codec_video_param_hevc_v20.md) | 定义HEVC视频编码格式信息。 |
41| struct  [ColorAspects](_color_aspects_v20.md) | 色彩空间相关枚举 |
42| struct  [CodecVideoColorspace](_codec_video_colorspace_v20.md) | 定义色彩空间参数信息 |
43| struct  [CodecImageRegion](_codec_image_region_v20.md) | 定义图像区域信息。 |
44| struct  [CodecImageBuffer](_codec_image_buffer_v20.md) | 定义编解码图像缓冲区信息。 |
45| struct  [CodecImageCapability](_codec_image_capability_v20.md) | 定义图像编解码器功能。 |
46| struct  [CodecJpegQuantTable](_codec_jpeg_quant_table_v20.md) | 定义jpeg图像量化表信息。 |
47| struct  [CodecJpegHuffTable](_codec_jpeg_huff_table_v20.md) | 定义jpeg图像Huffman表信息。 |
48| struct  [CodecJpegCompInfo](_codec_jpeg_comp_info_v20.md) | 定义jpeg图像的颜色分量信息。 |
49| struct  [CodecJpegDecInfo](_codec_jpeg_dec_info_v20.md) | 定义jpeg图像解码信息。 |
50| struct  [Alignment](_alignment_v20.md) | 对齐结构定义。 |
51| struct  [Rect](_rect_v20.md) | 矩形的定义。 |
52| struct  [RangeValue](_range_value_v20.md) | 取值范围的定义。 |
53| struct  [CodecVideoPortCap](_codec_video_port_cap_v20.md) | 定义视频编解码能力。 |
54| struct  [CodecAudioPortCap](_codec_audio_port_cap_v20.md) | 定义音频编解码能力。 |
55| struct  [PortCap](_port_cap_v20.md) | 定义音视频编解码能力。 |
56| struct  [OmxVerType](_omx_ver_type_v20.md) | 定义组件的版本信息。 |
57| union  [OMX_VERSIONTYPE](union_o_m_x___v_e_r_s_i_o_n_t_y_p_e_v20.md) | 定义组件的版本信息。 |
58| struct  [CodecCompCapability](_codec_comp_capability_v20.md) | 定义Codec编解码能力。 |
59| struct  [OmxCodecBuffer](_omx_codec_buffer_v20.md) | Codec buffer信息的定义。 |
60| struct  [OMX_TUNNELSETUPTYPE](_o_m_x___t_u_n_n_e_l_s_e_t_u_p_t_y_p_e_v20.md) | 用于将数据从输出端口传递到输入端口。 |
61| struct  [CompVerInfo](_comp_ver_info_v20.md) | 定义了组件信息,包含组件名,UUID, 组件版本以及spec版本。 |
62| struct  [EventInfo](_event_info_v20.md) | 定义事件上报信息。 |
63| interface  [ICodecCallback](interface_i_codec_callback_v20.md) | Codec回调接口定义。 |
64| interface  [ICodecComponent](interface_i_codec_component_v20.md) | Codec组件接口定义。 |
65| interface  [ICodecComponentManager](interface_i_codec_component_manager_v20.md) | Codec组件管理类接口定义。 |
66| interface  [ICodecImage](interface_i_codec_image_v20.md) | 图像编解码器模块接口。 |
67
68
69### 枚举
70
71| 名称 | 描述 |
72| -------- | -------- |
73| [CodecVideoExType](#codecvideoextype) { CODEC_VIDEO_CodingVP9 = 10 , CODEC_VIDEO_CodingHEVC = 11 } | 视频编码格式枚举,对OMX原生枚举OMX_VIDEO_CODINGTYPE的补充。 |
74| [CodecHevcProfile](#codechevcprofile) {<br/>CODEC_HEVC_PROFILE_INVALID = 0x0 , CODEC_HEVC_PROFILE_MAIN = 0x1 , CODEC_HEVC_PROFILE_MAIN10 = 0x2 , CODEC_HEVC_PROFILE_MAIN_STILL = 0x3 , CODEC_HEVC_PROFILE_MAIN10_HDR10 = 0x1000 , CODEC_HEVC_PROFILE_MAIN10_HDR10_PLUS = 0x2000 , CODEC_HEVC_PROFILE_MAX = 0x7FFFFFFF<br/>} | HEVC的profile枚举。 |
75| [CodecHevcLevel](#codechevclevel) {<br/>CODEC_HEVC_LEVEL_INVALID = 0x0 , CODEC_HEVC_MAIN_TIER_LEVEL1 = 0x1 , CODEC_HEVC_HIGH_TIER_LEVEL1 = 0x2 , CODEC_HEVC_MAIN_TIER_LEVEL2 = 0x4 , CODEC_HEVC_HIGH_TIER_LEVEL2 = 0x8 , CODEC_HEVC_MAIN_TIER_LEVEL21 = 0x10 , CODEC_HEVC_HIGH_TIER_LEVEL21 = 0x20 , CODEC_HEVC_MAIN_TIER_LEVEL3 = 0x40 , CODEC_HEVC_HIGH_TIER_LEVEL3 = 0x80 , CODEC_HEVC_MAIN_TIER_LEVEL31 = 0x100 , CODEC_HEVC_HIGH_TIER_LEVEL31 = 0x200 , CODEC_HEVC_MAIN_TIER_LEVEL4 = 0x400 , CODEC_HEVC_HIGH_TIER_LEVEL4 = 0x800 , CODEC_HEVC_MAIN_TIER_LEVEL41 = 0x1000 , CODEC_HEVC_HIGH_TIER_LEVEL41 = 0x2000 , CODEC_HEVC_MAIN_TIER_LEVEL5 = 0x4000 , CODEC_HEVC_HIGH_TIER_LEVEL5 = 0x8000 , CODEC_HEVC_MAIN_TIER_LEVEL51 = 0x10000 , CODEC_HEVC_HIGH_TIER_LEVEL51 = 0x20000 , CODEC_HEVC_MAIN_TIER_LEVEL52 = 0x40000 , CODEC_HEVC_HIGH_TIER_LEVEL52 = 0x80000 , CODEC_HEVC_MAIN_TIER_LEVEL6 = 0x100000 , CODEC_HEVC_HIGH_TIER_LEVEL6 = 0x200000 , CODEC_HEVC_MAIN_TIER_LEVEL61 = 0x400000 , CODEC_HEVC_HIGH_TIER_LEVEL61 = 0x800000 , CODEC_HEVC_MAIN_TIER_LEVEL62 = 0x1000000 , CODEC_HEVC_HIGH_TIER_LEVEL62 = 0x2000000 , CODEC_HEVC_HIGH_TIER_MAX = 0x7FFFFFFF<br/>} | HEVC的level枚举。 |
76| [CodecBufferType](#codecbuffertype) {<br/>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 , CODEC_BUFFER_TYPE_DMA_MEM_FD = 0x10<br/>} | 用于存储编解码视频帧的buffer类型。 |
77| [CodecIndexExType](#codecindexextype) {<br/>Codec_IndexExtBufferTypeStartUnused = 0x6F000000 + 0x00a00000 , Codec_IndexParamSupportBufferType , Codec_IndexParamUseBufferType , Codec_IndexParamGetBufferHandleUsage ,<br/>Codec_IndexCodecVideoPortFormat , Codec_IndexParamControlRateConstantQuality , Codec_IndexParamVideoHevc = 0x6F000000 + 0x00a00007 , Codec_IndexColorAspects ,<br/>Codec_IndexParamWorkingFrequency , Codec_IndexParamProcessName<br/>} | 编解码器参数索引,对OMX原生枚举OMX_INDEXTYPE的扩展。 |
78| [RangeType](#rangetype) { RANGE_UNSPECIFIED , RANGE_FULL , RANGE_LIMITED , RANGE_MAX = 0xff } | 视频像素值范围。 |
79| [Primaries](#primaries) {<br/>PRIMARIES_UNSPECIFIED , PRIMARIES_BT709 , PRIMARIES_BT470_6M , PRIMARIES_BT601_625 , PRIMARIES_BT601_525 , PRIMARIES_GENERICFILM , PRIMARIES_BT2020 , PRIMARIES_MAX = 0xff<br/>} | 设置视频色域。 |
80| [Transfer](#transfer) {<br/>TRANSFER_UNSPECIFIED , TRANSFER_LINEAR , TRANSFER_SRGB , TRANSFER_SMPTE170 , TRANSFER_GAMMA22 , TRANSFER_GAMMA28 , TRANSFER_PQ , TRANSFER_HLG , TRANSFER_SMPTE240 = 0x40 , TRANSFER_XVYCC , TRANSFER_BT1361 , TRANSFER_ST428 , TRANSFER_MAX = 0xff<br/>} | 设置视频传递函数。 |
81| [MatrixCoeffs](#matrixcoeffs) {<br/>MATRIX_UNSPECIFED , MATRIX_BT709 , MATRIX_FCC , MATRIX_BT601 ,<br/>MATRIX_SMPTE240 , MATRIX_BT2020 , MATRIX_BT2020CONSTANT , MATRIX_MAX = 0xff<br/>} | 设置视频矩阵系数。 |
82| [CodecImageRole](#codecimagerole) { CODEC_IMAGE_JPEG = 0 , CODEC_IMAGE_HEIF , CODEC_IMAGE_INVALID } | 编解码的图像格式枚举。 |
83| [CodecImageType](#codecimagetype) { CODEC_IMAGE_TYPE_DECODER = 0 , CODEC_IMAGE_TYPE_ENCODER , CODEC_IMAGE_TYPE_INVALID } | 定义图像编解码器类型。 |
84| [CodecType](#codectype) {<br/>VIDEO_DECODER , VIDEO_ENCODER , AUDIO_DECODER , AUDIO_ENCODER , INVALID_TYPE<br/>} | 枚举编解码的类型。 |
85| [AvCodecRole](#avcodecrole) {<br/>MEDIA_ROLETYPE_IMAGE_JPEG = 0, MEDIA_ROLETYPE_VIDEO_AVC, MEDIA_ROLETYPE_VIDEO_HEVC, MEDIA_ROLETYPE_AUDIO_FIRST = 0x10000,&nbsp;&nbsp;&nbsp;MEDIA_ROLETYPE_AUDIO_AAC = 0x10000, MEDIA_ROLETYPE_AUDIO_G711A, MEDIA_ROLETYPE_AUDIO_G711U, MEDIA_ROLETYPE_AUDIO_G726,&nbsp;&nbsp;&nbsp;MEDIA_ROLETYPE_AUDIO_PCM, MEDIA_ROLETYPE_AUDIO_MP3, MEDIA_ROLETYPE_INVALID<br/>} | 枚举音视频编解码组件类型。 |
86| [Profile](#profile) {<br/>INVALID_PROFILE = 0, AAC_LC_PROFILE = 0x1000, AAC_MAIN_PROFILE, AAC_HE_V1_PROFILE,&nbsp;&nbsp;&nbsp;AAC_HE_V2_PROFILE, AAC_LD_PROFILE, AAC_ELD_PROFILE, AVC_BASELINE_PROFILE = 0x2000,&nbsp;&nbsp;&nbsp;AVC_MAIN_PROFILE, AVC_HIGH_PROFILE, HEVC_MAIN_PROFILE = 0x3000, HEVC_MAIN_10_PROFILE<br/>} | 枚举Codec规格。 |
87| [CodecCapsMask](#codeccapsmask) {<br/>CODEC_CAP_ADAPTIVE_PLAYBACK = 0x1, CODEC_CAP_SECURE_PLAYBACK = 0x2, CODEC_CAP_TUNNEL_PLAYBACK = 0x4, CODEC_CAP_MULTI_PLANE = 0x10000<br/>} | 枚举播放能力。 |
88| [AudioSampleRate](#audiosamplerate) {<br/>AUD_SAMPLE_RATE_8000 = 8000, AUD_SAMPLE_RATE_12000 = 12000, AUD_SAMPLE_RATE_11025 = 11025, AUD_SAMPLE_RATE_16000 = 16000,&nbsp;&nbsp;&nbsp;AUD_SAMPLE_RATE_22050 = 22050, AUD_SAMPLE_RATE_24000 = 24000, AUD_SAMPLE_RATE_32000 = 32000, AUD_SAMPLE_RATE_44100 = 44100,&nbsp;&nbsp;&nbsp;AUD_SAMPLE_RATE_48000 = 48000, AUD_SAMPLE_RATE_64000 = 64000, AUD_SAMPLE_RATE_96000 = 96000, AUD_SAMPLE_RATE_INVALID<br/>} | 枚举音频采样率。 |
89| [AudioSampleFormat](#audiosampleformat) {<br/>AUDIO_SAMPLE_FMT_U8&nbsp;&nbsp;= 0 , 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<br/>} | 枚举音频采样格式。 |
90| [CodecProcessMode](#codecprocessmode) {<br/>PROCESS_BLOCKING_INPUT_BUFFER = 0X1, PROCESS_BLOCKING_OUTPUT_BUFFER = 0X2, PROCESS_BLOCKING_CONTROL_FLOW = 0X4, PROCESS_NONBLOCKING_INPUT_BUFFER = 0X100,&nbsp;&nbsp;&nbsp;PROCESS_NONBLOCKING_OUTPUT_BUFFER = 0X200, PROCESS_NONBLOCKING_CONTROL_FLOW = 0X400<br/>} | 枚举编解码处理模式。 |
91| [ShareMemTypes](#sharememtypes) { READ_WRITE_TYPE = 0x1 , READ_ONLY_TYPE = 0x2 } | 枚举共享内存类型。 |
92| [BitRateMode](#bitratemode) {<br/>BIT_RATE_MODE_INVALID , BIT_RATE_MODE_VBR , BIT_RATE_MODE_CBR , BIT_RATE_MODE_CQ , BIT_RATE_MODE_VCBR , BIT_RATE_MODE_ABR<br/>} | 枚举比特率类型。 |
93| [CodecEventType](#codeceventtype) {<br/>CODEC_EVENT_CMD_COMPLETE , CODEC_EVENT_ERROR , CODEC_EVENT_MARK , CODEC_EVENT_PORT_SETTINGS_CHANGED , CODEC_EVENT_BUFFER_FLAG , CODEC_EVENT_RESOURCES_ACQUIRED , CODEC_EVENT_COMPONENT_RESUMED , CODEC_EVENT_DYNAMIC_RESOURCES_AVAILABLE , CODEC_EVENT_PORT_FORMAT_DETECTED , CODEC_EVENT_KHRONOS_EXTENSIONS = 0x6F000000 , CODEC_EVENT_VENDOR_START_UNUSED = 0x7F000000 , CODEC_EVENT_MAX = 0x7FFFFFFF<br/>} | 枚举组件状态。 |
94| [CodecCommandType](#codeccommandtype) {<br/>CODEC_COMMAND_STATE_SET , CODEC_COMMAND_FLUSH , CODEC_COMMAND_PORT_DISABLE , CODEC_COMMAND_PORT_ENABLE ,<br/>CODEC_COMMAND_MARK_BUFFER , CODEC_COMMAND_KHRONOS_EXTENSIONS = 0x6F000000 , CODEC_COMMAND_VENDOR_START_UNUSED = 0x7F000000 , CODEC_COMMAND_MAX = 0x7FFFFFFF<br/>} | 枚举ICodecComponent中SendCommand接口的cmd参数。 |
95| [CodecStateType](#codecstatetype) {<br/>CODEC_STATE_INVALID , CODEC_STATE_LOADED , CODEC_STATE_IDLE , CODEC_STATE_EXECUTING , CODEC_STATE_PAUSE , CODEC_STATE_WAIT_FOR_RESOURCES , CODEC_STATE_KHRONOS_EXTENSIONS = 0x6F000000 , CODEC_STATE_VENDOR_START_UNUSED = 0x7F000000 , CODEC_STATE_MAX = 0x7FFFFFFF<br/>} | 更改组件状态。 |
96| [CodecBufferSupplierType](#codecbuffersuppliertype) {<br/>CODEC_BUFFER_SUPPLY_UNSPECIFIED = 0 , CODEC_BUFFER_SUPPLY_INPUT , CODEC_BUFFER_SUPPLY_OUTPUT , CODEC_BUFFER_SUPPLY_KHRONOS_EXTENSIONS = 0x6F000000 , CODEC_BUFFER_SUPPLY_VENDOR_START_UNUSED = 0x7F000000 , CODEC_BUFFER_SUPPLY_MAX = 0x7FFFFFFF<br/>} | 表示端口供应商在两个端口之间建立隧道时的首选项。 |
97
98
99## 枚举类型说明
100
101
102### AudioSampleFormat
103
104```
105enum AudioSampleFormat
106```
107
108**描述**
109
110
111枚举音频采样格式。
112
113对于平面格式的采样格式,每个声道的数据是独立存储在data中; 对于打包格式的采样格式,只使用第一个data,每个声道的数据是交错存储的。
114
115**起始版本:** 4.1
116
117| 枚举值 | 描述 |
118| -------- | -------- |
119| AUDIO_SAMPLE_FMT_U8 | 无符号8位整型,打包格式。 |
120| AUDIO_SAMPLE_FMT_S16 | 带符号16位整型, 打包格式。 |
121| AUDIO_SAMPLE_FMT_S32 | 带符号32位整型, 打包格式。 |
122| AUDIO_SAMPLE_FMT_FLOAT | 浮点型, 打包格式。 |
123| AUDIO_SAMPLE_FMT_DOUBLE | 双精度浮点型, 打包格式。 |
124| AUDIO_SAMPLE_FMT_U8P | 无符号8位整型, 平面格式。 |
125| AUDIO_SAMPLE_FMT_S16P | 带符号16位整型, 平面格式。 |
126| AUDIO_SAMPLE_FMT_S32P | 带符号32位整型, 平面格式。 |
127| AUDIO_SAMPLE_FMT_FLOATP | 浮点型, 平面格式。 |
128| AUDIO_SAMPLE_FMT_DOUBLEP | 双精度浮点型, 平面格式。 |
129| AUDIO_SAMPLE_FMT_INVALID | 无效采样格式。 |
130
131
132### AudioSampleRate
133
134```
135enum AudioSampleRate
136```
137
138**描述**
139
140
141枚举音频采样率。
142
143**起始版本:** 4.1
144
145| 枚举值 | 描述 |
146| -------- | -------- |
147| AUD_SAMPLE_RATE_8000 | 8K采样率。 |
148| AUD_SAMPLE_RATE_12000 | 12K采样率。 |
149| AUD_SAMPLE_RATE_11025 | 11.025K采样率。 |
150| AUD_SAMPLE_RATE_16000 | 16K采样率。 |
151| AUD_SAMPLE_RATE_22050 | 22.050K采样率。 |
152| AUD_SAMPLE_RATE_24000 | 24K采样率。 |
153| AUD_SAMPLE_RATE_32000 | 32K采样率。 |
154| AUD_SAMPLE_RATE_44100 | 44.1K采样率。 |
155| AUD_SAMPLE_RATE_48000 | 48K采样率。 |
156| AUD_SAMPLE_RATE_64000 | 64K采样率。 |
157| AUD_SAMPLE_RATE_96000 | 96K采样率。 |
158| AUD_SAMPLE_RATE_INVALID | 无效采样率。 |
159
160
161### AvCodecRole
162
163```
164enum AvCodecRole
165```
166
167**描述**
168
169
170枚举音视频编解码组件类型。
171
172**起始版本:** 4.1
173
174| 枚举值 | 描述 |
175| -------- | -------- |
176| MEDIA_ROLETYPE_IMAGE_JPEG | 图像JPEG媒体类型。 |
177| MEDIA_ROLETYPE_VIDEO_AVC | 视频H.264媒体类型。 |
178| MEDIA_ROLETYPE_VIDEO_HEVC | 视频H.265媒体类型。 |
179| MEDIA_ROLETYPE_AUDIO_FIRST | 音频编解码器类型。 |
180| MEDIA_ROLETYPE_AUDIO_AAC | 音频AAC媒体类型。 |
181| MEDIA_ROLETYPE_AUDIO_G711A | 音频G711A媒体类型。 |
182| MEDIA_ROLETYPE_AUDIO_G711U | 音频G711U媒体类型。 |
183| MEDIA_ROLETYPE_AUDIO_G726 | 音频G726媒体类型。 |
184| MEDIA_ROLETYPE_AUDIO_PCM | 音频PCM媒体类型。 |
185| MEDIA_ROLETYPE_AUDIO_MP3 | 音频MP3媒体类型。 |
186| MEDIA_ROLETYPE_INVALID | 无效媒体类型。 |
187
188
189### BitRateMode
190
191```
192enum BitRateMode
193```
194
195**描述**
196
197
198枚举比特率类型。
199
200**起始版本:** 4.1
201
202| 枚举值 | 描述 |
203| -------- | -------- |
204| BIT_RATE_MODE_INVALID | 定义的一个无效值。 |
205| BIT_RATE_MODE_VBR | 可变比特率。 |
206| BIT_RATE_MODE_CBR | 恒定比特率。 |
207| BIT_RATE_MODE_CQ | 恒定质量。 |
208| BIT_RATE_MODE_VCBR | 受约束的可变位速率。 |
209| BIT_RATE_MODE_ABR | 平均比特率。 |
210
211
212### CodecBufferSupplierType
213
214```
215enum CodecBufferSupplierType
216```
217
218**描述**
219
220
221表示端口供应商在两个端口之间建立隧道时的首选项。
222
223**起始版本:** 4.1
224
225| 枚举值 | 描述 |
226| -------- | -------- |
227| CODEC_BUFFER_SUPPLY_UNSPECIFIED | 提供缓冲区的端口未指定,或不指定 |
228| CODEC_BUFFER_SUPPLY_INPUT | 为输入端口提供缓冲区 |
229| CODEC_BUFFER_SUPPLY_OUTPUT | 为输出端口提供缓冲区 |
230| CODEC_BUFFER_SUPPLY_KHRONOS_EXTENSIONS | 用于引入Khronos标准扩展的保留区域 |
231| CODEC_BUFFER_SUPPLY_VENDOR_START_UNUSED | 用于引入供应商扩展的预留区域 |
232| CODEC_BUFFER_SUPPLY_MAX | 枚举的最大值 |
233
234
235### CodecBufferType
236
237```
238enum CodecBufferType
239```
240
241**描述**
242
243
244用于存储编解码视频帧的buffer类型。
245
246**起始版本:** 4.1
247
248| 枚举值 | 描述 |
249| -------- | -------- |
250| CODEC_BUFFER_TYPE_INVALID | 无效的buffer类型 |
251| CODEC_BUFFER_TYPE_VIRTUAL_ADDR | Virtual address type |
252| CODEC_BUFFER_TYPE_AVSHARE_MEM_FD | 共享内存 |
253| CODEC_BUFFER_TYPE_HANDLE | Handle. |
254| CODEC_BUFFER_TYPE_DYNAMIC_HANDLE | Dynamic handle. |
255| CODEC_BUFFER_TYPE_DMA_MEM_FD | DMA内存 |
256
257
258### CodecCapsMask
259
260```
261enum CodecCapsMask
262```
263
264**描述**
265
266
267枚举播放能力。
268
269**起始版本:** 4.1
270
271| 枚举值 | 描述 |
272| -------- | -------- |
273| CODEC_CAP_ADAPTIVE_PLAYBACK | 自适应播放能力。 |
274| CODEC_CAP_SECURE_PLAYBACK | 安全播放能力。 |
275| CODEC_CAP_TUNNEL_PLAYBACK | 通道播放能力。 |
276| CODEC_CAP_MULTI_PLANE | 视频图像平面/音频通道平面能力。 |
277
278
279### CodecCommandType
280
281```
282enum CodecCommandType
283```
284
285**描述**
286
287
288枚举ICodecComponent中SendCommand接口的cmd参数。
289
290**起始版本:** 4.1
291
292| 枚举值 | 描述 |
293| -------- | -------- |
294| CODEC_COMMAND_STATE_SET | 更改组件状态 |
295| CODEC_COMMAND_FLUSH | 刷新组件的数据队列 |
296| CODEC_COMMAND_PORT_DISABLE | 禁用组件上的端口 |
297| CODEC_COMMAND_PORT_ENABLE | 启用组件上的端口 |
298| CODEC_COMMAND_MARK_BUFFER | 标记组件/缓冲区以进行观察 |
299| CODEC_COMMAND_KHRONOS_EXTENSIONS | 用于引入Khronos标准扩展的保留区域 |
300| CODEC_COMMAND_VENDOR_START_UNUSED | 用于引入供应商扩展的预留区域 |
301| CODEC_COMMAND_MAX | 枚举的最大值 |
302
303
304### CodecEventType
305
306```
307enum CodecEventType
308```
309
310**描述**
311
312
313枚举组件状态。
314
315**起始版本:** 4.1
316
317| 枚举值 | 描述 |
318| -------- | -------- |
319| CODEC_EVENT_CMD_COMPLETE | 组件已成功完成命令 |
320| CODEC_EVENT_ERROR | 组件已检测到错误情况 |
321| CODEC_EVENT_MARK | 组件已检测到缓冲区标记 |
322| CODEC_EVENT_PORT_SETTINGS_CHANGED | 组件报告端口设置更改 |
323| CODEC_EVENT_BUFFER_FLAG | 组件已检测到EOS |
324| CODEC_EVENT_RESOURCES_ACQUIRED | 组件已被授予资源,并正在自动启动从OMX_StateWaitForResources状态更改为OMX_StateIdle |
325| CODEC_EVENT_COMPONENT_RESUMED | 组件回收由于重新占用的资源 |
326| CODEC_EVENT_DYNAMIC_RESOURCES_AVAILABLE | 组件已获取此前不可用的动态资源 |
327| CODEC_EVENT_PORT_FORMAT_DETECTED | 组件已经检测出数据格式 |
328| CODEC_EVENT_KHRONOS_EXTENSIONS | 用于引入Khronos标准扩展的保留区域 |
329| CODEC_EVENT_VENDOR_START_UNUSED | 用于引入供应商扩展的预留区域 |
330| CODEC_EVENT_MAX | 枚举的最大值 |
331
332
333### CodecHevcLevel
334
335```
336enum CodecHevcLevel
337```
338
339**描述**
340
341
342HEVC的level枚举。
343
344**起始版本:** 4.1
345
346| 枚举值 | 描述 |
347| -------- | -------- |
348| CODEC_HEVC_LEVEL_INVALID | 无效的level |
349| CODEC_HEVC_MAIN_TIER_LEVEL1 | main tier level1 |
350| CODEC_HEVC_HIGH_TIER_LEVEL1 | high tier level1 |
351| CODEC_HEVC_MAIN_TIER_LEVEL2 | main tier level2 |
352| CODEC_HEVC_HIGH_TIER_LEVEL2 | high tier level2 |
353| CODEC_HEVC_MAIN_TIER_LEVEL21 | main tier level2.1 |
354| CODEC_HEVC_HIGH_TIER_LEVEL21 | high tier level2.1 |
355| CODEC_HEVC_MAIN_TIER_LEVEL3 | main tier level3 |
356| CODEC_HEVC_HIGH_TIER_LEVEL3 | high tier level3 |
357| CODEC_HEVC_MAIN_TIER_LEVEL31 | main tier level3.1 |
358| CODEC_HEVC_HIGH_TIER_LEVEL31 | high tier level3.1 |
359| CODEC_HEVC_MAIN_TIER_LEVEL4 | main tier level4 |
360| CODEC_HEVC_HIGH_TIER_LEVEL4 | high tier level4 |
361| CODEC_HEVC_MAIN_TIER_LEVEL41 | main tier level4.1 |
362| CODEC_HEVC_HIGH_TIER_LEVEL41 | high tier level4.1 |
363| CODEC_HEVC_MAIN_TIER_LEVEL5 | main tier level5 |
364| CODEC_HEVC_HIGH_TIER_LEVEL5 | high tier level5 |
365| CODEC_HEVC_MAIN_TIER_LEVEL51 | main tier level5.1 |
366| CODEC_HEVC_HIGH_TIER_LEVEL51 | high tier level5.1 |
367| CODEC_HEVC_MAIN_TIER_LEVEL52 | main tier level5.2 |
368| CODEC_HEVC_HIGH_TIER_LEVEL52 | high tier level5.2 |
369| CODEC_HEVC_MAIN_TIER_LEVEL6 | main tier level6 |
370| CODEC_HEVC_HIGH_TIER_LEVEL6 | high tier level6 |
371| CODEC_HEVC_MAIN_TIER_LEVEL61 | main tier level6.1 |
372| CODEC_HEVC_HIGH_TIER_LEVEL61 | high tier level6.1 |
373| CODEC_HEVC_MAIN_TIER_LEVEL62 | main tier level6.2 |
374| CODEC_HEVC_HIGH_TIER_LEVEL62 | high tier level6.2 |
375| CODEC_HEVC_HIGH_TIER_MAX | 最大值 |
376
377
378### CodecHevcProfile
379
380```
381enum CodecHevcProfile
382```
383
384**描述**
385
386
387HEVC的profile枚举。
388
389**起始版本:** 4.1
390
391| 枚举值 | 描述 |
392| -------- | -------- |
393| CODEC_HEVC_PROFILE_INVALID | 无效的profile |
394| CODEC_HEVC_PROFILE_MAIN | main profile |
395| CODEC_HEVC_PROFILE_MAIN10 | main10 profile |
396| CODEC_HEVC_PROFILE_MAIN_STILL | main still profile |
397| CODEC_HEVC_PROFILE_MAIN10_HDR10 | main10 hdr10 profile |
398| CODEC_HEVC_PROFILE_MAIN10_HDR10_PLUS | main10 hdr10 plus profile |
399| CODEC_HEVC_PROFILE_MAX | 最大值 |
400
401
402### CodecImageRole
403
404```
405enum CodecImageRole
406```
407
408**描述**
409
410
411编解码的图像格式枚举。
412
413**起始版本:** 4.0
414
415| 枚举值 | 描述 |
416| -------- | -------- |
417| CODEC_IMAGE_JPEG | Jpeg格式. |
418| CODEC_IMAGE_HEIF | Heif格式. |
419| CODEC_IMAGE_INVALID | 无效的格式 |
420
421
422### CodecImageType
423
424```
425enum CodecImageType
426```
427
428**描述**
429
430
431定义图像编解码器类型。
432
433**起始版本:** 4.0
434
435| 枚举值 | 描述 |
436| -------- | -------- |
437| CODEC_IMAGE_TYPE_DECODER | 图像解码器。 |
438| CODEC_IMAGE_TYPE_ENCODER | 图像编码器。 |
439| CODEC_IMAGE_TYPE_INVALID | 无效类型 |
440
441
442### CodecIndexExType
443
444```
445enum CodecIndexExType
446```
447
448**描述**
449
450
451编解码器参数索引,对OMX原生枚举OMX_INDEXTYPE的扩展。
452
453**起始版本:** 4.1
454
455| 枚举值 | 描述 |
456| -------- | -------- |
457| Codec_IndexExtBufferTypeStartUnused | 扩展BufferType索引,value = Codec_IndexExtBufferTypeStartUnused + 0x00a00000 |
458| Codec_IndexParamSupportBufferType | 支持的Buffer类型 |
459| Codec_IndexParamUseBufferType | 可用的Buffer类型 |
460| Codec_IndexParamGetBufferHandleUsage | 获取Buffer使用率 |
461| Codec_IndexCodecVideoPortFormat | [CodecVideoPortFormatParam](_codec_video_port_format_param_v20.md) |
462| Codec_IndexParamControlRateConstantQuality | [ControlRateConstantQuality](_control_rate_constant_quality_v20.md) |
463| Codec_IndexParamVideoHevc | Codec_IndexParamVideoHevc |
464| Codec_IndexColorAspects | range/primary/transfer/matrix |
465| Codec_IndexParamWorkingFrequency | [WorkingFrequencyParam](_working_frequency_param_v20.md) |
466| Codec_IndexParamProcessName | [ProcessNameParam](_process_name_param_v20.md) |
467
468
469### CodecProcessMode
470
471```
472enum CodecProcessMode
473```
474
475**描述**
476
477
478枚举编解码处理模式。
479
480**起始版本:** 4.1
481
482| 枚举值 | 描述 |
483| -------- | -------- |
484| PROCESS_BLOCKING_INPUT_BUFFER | 同步模式输入buffer。 |
485| PROCESS_BLOCKING_OUTPUT_BUFFER | 同步模式输出buffer。 |
486| PROCESS_BLOCKING_CONTROL_FLOW | 同步模式控制流。 |
487| PROCESS_NONBLOCKING_INPUT_BUFFER | 异步模式输入buffer。 |
488| PROCESS_NONBLOCKING_OUTPUT_BUFFER | 异步模式输出buffer。 |
489| PROCESS_NONBLOCKING_CONTROL_FLOW | 异步模式控制流。 |
490
491
492### CodecStateType
493
494```
495enum CodecStateType
496```
497
498**描述**
499
500
501更改组件状态。
502
503**起始版本:** 4.1
504
505| 枚举值 | 描述 |
506| -------- | -------- |
507| CODEC_STATE_INVALID | 组件已检测到其内部数据结构已损坏,以至于无法正确确定其状态 |
508| CODEC_STATE_LOADED | 组件已加载,但尚未完成初始化。ICodecComponent.SetParameterICodecComponent.GetParameter是允许发送到处于此状态的组件的唯一有效函数 |
509| CODEC_STATE_IDLE | 组件初始化已成功完成,组件已准备好启动 |
510| CODEC_STATE_EXECUTING | 组件已接受启动命令并正在处理数据(如果数据可用) |
511| CODEC_STATE_PAUSE | 组件已收到暂停命令 |
512| CODEC_STATE_WAIT_FOR_RESOURCES | 组件正在等待资源,无论是在抢占之后还是在获得请求的资源之前 |
513| CODEC_STATE_KHRONOS_EXTENSIONS | 用于引入Khronos标准扩展的保留区域 |
514| CODEC_STATE_VENDOR_START_UNUSED | 用于引入供应商扩展的预留区域 |
515| CODEC_STATE_MAX | 枚举最大值 |
516
517
518### CodecType
519
520```
521enum CodecType
522```
523
524**描述**
525
526
527枚举编解码的类型。
528
529**起始版本:** 4.1
530
531| 枚举值 | 描述 |
532| -------- | -------- |
533| VIDEO_DECODER | 视频解码类型。 |
534| VIDEO_ENCODER | 视频编码类型。 |
535| AUDIO_DECODER | 音频解码类型。 |
536| AUDIO_ENCODER | 音频编码类型。 |
537| INVALID_TYPE | 无效类型。 |
538
539
540### CodecVideoExType
541
542```
543enum CodecVideoExType
544```
545
546**描述**
547
548
549视频编码格式枚举,对OMX原生枚举OMX_VIDEO_CODINGTYPE的补充。
550
551**起始版本:** 4.1
552
553| 枚举值 | 描述 |
554| -------- | -------- |
555| CODEC_VIDEO_CodingVP9 | VP9格式 |
556| CODEC_VIDEO_CodingHEVC | HEVC格式 |
557
558
559### MatrixCoeffs
560
561```
562enum MatrixCoeffs
563```
564
565**描述**
566
567
568设置视频矩阵系数。
569
570**起始版本:** 4.1
571
572| 枚举值 | 描述 |
573| -------- | -------- |
574| MATRIX_UNSPECIFED | 未指定的矩阵 |
575| MATRIX_BT709 | Rec. ITU-R BT.709-6 |
576| MATRIX_FCC | United States Federal Communications Commission |
577| MATRIX_BT601 | Rec. ITU-R BT.601-7 or Rec. ITU-R BT.470-6 System B,G |
578| MATRIX_SMPTE240 | SMPTE ST 240 |
579| MATRIX_BT2020 | Rec. ITU-R BT.2100-2 (非恒定亮度) |
580| MATRIX_BT2020CONSTANT | Rec. ITU-R BT.2100-2 (恒定亮度) |
581| MATRIX_MAX | 最大值 |
582
583
584### Primaries
585
586```
587enum Primaries
588```
589
590**描述**
591
592
593设置视频色域。
594
595**起始版本:** 4.1
596
597| 枚举值 | 描述 |
598| -------- | -------- |
599| PRIMARIES_UNSPECIFIED | 未指定的色域 |
600| PRIMARIES_BT709 | Rec. ITU-R BT.709-6 |
601| PRIMARIES_BT470_6M | Rec. ITU-R BT.470-6 System M |
602| PRIMARIES_BT601_625 | Rec. ITU-R BT.601-7 625 or Rec. ITU-R BT.470-6 System B,G |
603| PRIMARIES_BT601_525 | Rec. ITU-R BT.601-7 525 or SMPTE ST 170 or SMPTE ST 240 |
604| PRIMARIES_GENERICFILM | Generic Film |
605| PRIMARIES_BT2020 | Rec. ITU-R BT.2020-2 or Rec. ITU-R BT.2100-2 |
606| PRIMARIES_MAX | 最大值 |
607
608
609### Profile
610
611```
612enum Profile
613```
614
615**描述**
616
617
618枚举Codec规格。
619
620**起始版本:** 4.1
621
622| 枚举值 | 描述 |
623| -------- | -------- |
624| INVALID_PROFILE | 无效的规格。 |
625| AAC_LC_PROFILE | AAC低复杂度规格。 |
626| AAC_MAIN_PROFILE | AAC主规格。 |
627| AAC_HE_V1_PROFILE | AAC高效率和频带重现规格,又称为HEAAC、AAC+、或者AACPlusV1。 |
628| AAC_HE_V2_PROFILE | AAC高效率和频带重现以及变量立体声规格,又称为AAC++或者AACPlusV2。 |
629| AAC_LD_PROFILE | AAC低延迟规格。 |
630| AAC_ELD_PROFILE | AAC增强型低延迟规格。 |
631| AVC_BASELINE_PROFILE | H.264低规格。 |
632| AVC_MAIN_PROFILE | H.264主规格。 |
633| AVC_HIGH_PROFILE | H.264高规格。 |
634| HEVC_MAIN_PROFILE | H.265主规格。 |
635| HEVC_MAIN_10_PROFILE | H.265 10比特主规格。 |
636
637
638### RangeType
639
640```
641enum RangeType
642```
643
644**描述**
645
646
647视频像素值范围。
648
649**起始版本:** 4.1
650
651| 枚举值 | 描述 |
652| -------- | -------- |
653| RANGE_UNSPECIFIED | 未指定的range类型 |
654| RANGE_FULL | full range |
655| RANGE_LIMITED | limited range |
656| RANGE_MAX | 最大值 |
657
658
659### ShareMemTypes
660
661```
662enum ShareMemTypes
663```
664
665**描述**
666
667
668枚举共享内存类型。
669
670**起始版本:** 4.1
671
672| 枚举值 | 描述 |
673| -------- | -------- |
674| READ_WRITE_TYPE | 可读可写的共享内存类型。 |
675| READ_ONLY_TYPE | 只读的共享内存类型。 |
676
677
678### Transfer
679
680```
681enum Transfer
682```
683
684**描述**
685
686
687设置视频传递函数。
688
689**起始版本:** 4.1
690
691| 枚举值 | 描述 |
692| -------- | -------- |
693| TRANSFER_UNSPECIFIED | 未指定的类型 |
694| TRANSFER_LINEAR | 线性传递特性 |
695| TRANSFER_SRGB | IEC 61966-2-1 sRGB |
696| TRANSFER_SMPTE170 | SMPTE ST 170 or Rec. ITU-R BT.709-6 or BT.601-7 or BT.2020-2 |
697| TRANSFER_GAMMA22 | Rec. ITU-R BT.470-6 System M |
698| TRANSFER_GAMMA28 | Rec. ITU-R BT.470-6 System B,G |
699| TRANSFER_PQ | Rec. ITU-R BT.2100-2 perceptual quantization (PQ) system |
700| TRANSFER_HLG | Rec. ITU-R BT.2100-2 hybrid log gamma (HLG) system |
701| TRANSFER_SMPTE240 | SMPTE ST 240 |
702| TRANSFER_XVYCC | IEC 61966-2-4 |
703| TRANSFER_BT1361 | Rec. ITU-R BT.1361-0 extended colour gamut system |
704| TRANSFER_ST428 | SMPTE ST 428-1 |
705| TRANSFER_MAX | 最大值 |
706