Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
dc2cd5e0
D
Docs
项目概览
OpenHarmony
/
Docs
大约 2 年 前同步成功
通知
161
Star
293
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
dc2cd5e0
编写于
6月 19, 2023
作者:
O
openharmony_ci
提交者:
Gitee
6月 19, 2023
浏览文件
操作
浏览文件
下载
差异文件
!19905 add AVCodec native API reference
Merge pull request !19905 from zengyawen/avcodec
上级
9a84bdba
78887436
变更
25
隐藏空白更改
内联
并排
Showing
25 changed file
with
4518 addition
and
1243 deletion
+4518
-1243
zh-cn/application-dev/reference/native-apis/Readme-CN.md
zh-cn/application-dev/reference/native-apis/Readme-CN.md
+9
-1
zh-cn/application-dev/reference/native-apis/_a_v_capability.md
.../application-dev/reference/native-apis/_a_v_capability.md
+933
-0
zh-cn/application-dev/reference/native-apis/_a_v_demuxer.md
zh-cn/application-dev/reference/native-apis/_a_v_demuxer.md
+224
-0
zh-cn/application-dev/reference/native-apis/_a_v_source.md
zh-cn/application-dev/reference/native-apis/_a_v_source.md
+187
-0
zh-cn/application-dev/reference/native-apis/_audio_decoder.md
...n/application-dev/reference/native-apis/_audio_decoder.md
+341
-163
zh-cn/application-dev/reference/native-apis/_audio_encoder.md
...n/application-dev/reference/native-apis/_audio_encoder.md
+267
-163
zh-cn/application-dev/reference/native-apis/_codec_base.md
zh-cn/application-dev/reference/native-apis/_codec_base.md
+877
-189
zh-cn/application-dev/reference/native-apis/_core.md
zh-cn/application-dev/reference/native-apis/_core.md
+454
-238
zh-cn/application-dev/reference/native-apis/_o_h___a_v_codec_async_callback.md
.../reference/native-apis/_o_h___a_v_codec_async_callback.md
+77
-9
zh-cn/application-dev/reference/native-apis/_o_h___a_v_codec_buffer_attr.md
...dev/reference/native-apis/_o_h___a_v_codec_buffer_attr.md
+76
-8
zh-cn/application-dev/reference/native-apis/_o_h___a_v_range.md
...application-dev/reference/native-apis/_o_h___a_v_range.md
+62
-0
zh-cn/application-dev/reference/native-apis/_video_decoder.md
...n/application-dev/reference/native-apis/_video_decoder.md
+293
-170
zh-cn/application-dev/reference/native-apis/_video_encoder.md
...n/application-dev/reference/native-apis/_video_encoder.md
+359
-171
zh-cn/application-dev/reference/native-apis/avcodec__audio__channel__layout_8h.md
...ference/native-apis/avcodec__audio__channel__layout_8h.md
+25
-0
zh-cn/application-dev/reference/native-apis/native__avcapability_8h.md
...tion-dev/reference/native-apis/native__avcapability_8h.md
+72
-0
zh-cn/application-dev/reference/native-apis/native__avcodec__audiodecoder_8h.md
...reference/native-apis/native__avcodec__audiodecoder_8h.md
+18
-16
zh-cn/application-dev/reference/native-apis/native__avcodec__audioencoder_8h.md
...reference/native-apis/native__avcodec__audioencoder_8h.md
+18
-16
zh-cn/application-dev/reference/native-apis/native__avcodec__base_8h.md
...ion-dev/reference/native-apis/native__avcodec__base_8h.md
+93
-36
zh-cn/application-dev/reference/native-apis/native__avcodec__videodecoder_8h.md
...reference/native-apis/native__avcodec__videodecoder_8h.md
+19
-17
zh-cn/application-dev/reference/native-apis/native__avcodec__videoencoder_8h.md
...reference/native-apis/native__avcodec__videoencoder_8h.md
+22
-18
zh-cn/application-dev/reference/native-apis/native__avdemuxer_8h.md
...ication-dev/reference/native-apis/native__avdemuxer_8h.md
+29
-0
zh-cn/application-dev/reference/native-apis/native__averrors_8h.md
...lication-dev/reference/native-apis/native__averrors_8h.md
+6
-5
zh-cn/application-dev/reference/native-apis/native__avformat_8h.md
...lication-dev/reference/native-apis/native__avformat_8h.md
+22
-19
zh-cn/application-dev/reference/native-apis/native__avmemory_8h.md
...lication-dev/reference/native-apis/native__avmemory_8h.md
+7
-4
zh-cn/application-dev/reference/native-apis/native__avsource_8h.md
...lication-dev/reference/native-apis/native__avsource_8h.md
+28
-0
未找到文件。
zh-cn/application-dev/reference/native-apis/Readme-CN.md
浏览文件 @
dc2cd5e0
...
...
@@ -13,12 +13,15 @@
-
[
RDB
](
_r_d_b.md
)
-
[
MindSpore
](
_mind_spore.md
)
-
[
NeuralNeworkRuntime
](
_neural_nework_runtime.md
)
-
[
AVCapability
](
_a_v_capability.md
)
-
[
AudioDecoder
](
_audio_decoder.md
)
-
[
AudioEncoder
](
_audio_encoder.md
)
-
[
CodecBase
](
_codec_base.md
)
-
[
Core
](
_core.md
)
-
[
VideoDecoder
](
_video_decoder.md
)
-
[
VideoEncoder
](
_video_encoder.md
)
-
[
Core
](
_core.md
)
-
[
AVDemuxer
](
_a_v_demuxer.md
)
-
[
AVSource
](
_a_v_source.md
)
-
[
HuksKeyApi
](
_huks_key_api.md
)
-
[
HuksParamSetApi
](
_huks_param_set_api.md
)
-
[
HuksTypeApi
](
_huks_type_api.md
)
...
...
@@ -56,14 +59,18 @@
-
[
types.h
](
types_8h.md
)
-
[
neural_network_runtime_type.h
](
neural__network__runtime__type_8h.md
)
-
[
neural_network_runtime.h
](
neural__network__runtime_8h.md
)
-
[
avcodec_audio_channel_layout.h
](
avcodec__audio__channel__layout_8h.md
)
-
[
native_avcapability.h
](
native__avcapability_8h.md
)
-
[
native_avcodec_audiodecoder.h
](
native__avcodec__audiodecoder_8h.md
)
-
[
native_avcodec_audioencoder.h
](
native__avcodec__audioencoder_8h.md
)
-
[
native_avcodec_base.h
](
native__avcodec__base_8h.md
)
-
[
native_avcodec_videodecoder.h
](
native__avcodec__videodecoder_8h.md
)
-
[
native_avcodec_videoencoder.h
](
native__avcodec__videoencoder_8h.md
)
-
[
native_avdemuxer.h
](
native__avdemuxer_8h.md
)
-
[
native_averrors.h
](
native__averrors_8h.md
)
-
[
native_avformat.h
](
native__avformat_8h.md
)
-
[
native_avmemory.h
](
native__avmemory_8h.md
)
-
[
native_avsource.h
](
native__avsource_8h.md
)
-
[
native_huks_api.h
](
native__huks__api_8h.md
)
-
[
native_huks_param.h
](
native__huks__param_8h.md
)
-
[
native_huks_type.h
](
native__huks__type_8h.md
)
...
...
@@ -102,6 +109,7 @@
-
[
OH_NN_UInt32Array
](
_o_h___n_n___u_int32_array.md
)
-
[
OH_AVCodecAsyncCallback
](
_o_h___a_v_codec_async_callback.md
)
-
[
OH_AVCodecBufferAttr
](
_o_h___a_v_codec_buffer_attr.md
)
-
[
OH_AVRange
](
_o_h___a_v_range.md
)
-
[
OH_Huks_Blob
](
_o_h___huks___blob.md
)
-
[
OH_Huks_CertChain
](
_o_h___huks___cert_chain.md
)
-
[
OH_Huks_KeyInfo
](
_o_h___huks___key_info.md
)
...
...
zh-cn/application-dev/reference/native-apis/_a_v_capability.md
0 → 100644
浏览文件 @
dc2cd5e0
# AVCapability
## 概述
AVCapability模块提供用于编解码能力查询的函数。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
**起始版本:**
10
## 汇总
### 文件
| 名称 | 描述 |
| -------- | -------- |
|
[
native_avcapability.h
](
native__avcapability_8h.md
)
| 声明用于编解码能力查询到的Native API。
<br>
引用文件:
<multimedia
/
native_avcapability.h
>
|
### 结构体
| 名称 | 描述 |
| -------- | -------- |
|
[
OH_AVRange
](
_o_h___a_v_range.md
)
| 范围包含最小值和最大值。 |
### 类型定义
| 名称 | 描述 |
| -------- | -------- |
|
[
OH_BitrateMode
](
#oh_bitratemode
)
| 编码器的比特率模式。 |
|
[
OH_AVRange
](
#oh_avrange
)
| 范围包含最小值和最大值。 |
|
[
OH_AVCodecCategory
](
#oh_avcodeccategory
)
| 编解码器类别。 |
### 枚举
| 名称 | 描述 |
| -------- | -------- |
|
[
OH_BitrateMode
](
#oh_bitratemode
)
{
**BITRATE_MODE_CBR**
= 0,
**BITRATE_MODE_VBR**
= 1,
**BITRATE_MODE_CQ**
= 2 } | 编码器的比特率模式。 |
|
[
OH_AVCodecCategory
](
#oh_avcodeccategory
)
{
**HARDWARE**
= 0,
**SOFTWARE**
} | 编解码器类别。 |
### 函数
| 名称 | 描述 |
| -------- | -------- |
|
\*
[
OH_AVCodec_GetCapability
](
#oh_avcodec_getcapability
)
(
const
char
\*
mime, bool isEncoder) | 获取系统推荐的编解码器能力。 |
|
\*
[
OH_AVCodec_GetCapabilityByCategory
](
#oh_avcodec_getcapabilitybycategory
)
(
const
char
\*
mime, bool isEncoder,
[
OH_AVCodecCategory
](
#oh_avcodeccategory
)
category) | 获取指定类别中的编解码器能力。通过指定类别, 匹配的编解码器仅限于硬件编解码器或软件编解码器。 |
|
[
OH_AVCapability_IsHardware
](
#oh_avcapability_ishardware
)
(
OH_AVCapability
\*
capability) | 检查能力实例是否描述了硬件编解码器。 |
|
\*
[
OH_AVCapability_GetName
](
#oh_avcapability_getname
)
(
OH_AVCapability
\*
capability) | 获取编解码器名称。 |
|
[
OH_AVCapability_GetMaxSupportedInstances
](
#oh_avcapability_getmaxsupportedinstances
)
(
OH_AVCapability
\*
capability) | 获取编解码器支持的最大实例数。 |
|
[
OH_AVCapability_GetEncoderBitrateRange
](
#oh_avcapability_getencoderbitraterange
)
(
OH_AVCapability
\*
capability,
[
OH_AVRange
](
_o_h___a_v_range.md
)
\*
bitrateRange) | 获取编码器支持的比特率范围。 |
|
[
OH_AVCapability_IsEncoderBitrateModeSupported
](
#oh_avcapability_isencoderbitratemodesupported
)
(
OH_AVCapability
\*
capability,
[
OH_BitrateMode
](
#oh_bitratemode
)
bitrateMode) | 检查编码器是否支持特定的比特率模式。 |
|
[
OH_AVCapability_GetEncoderQualityRange
](
#oh_avcapability_getencoderqualityrange
)
(
OH_AVCapability
\*
capability,
[
OH_AVRange
](
_o_h___a_v_range.md
)
\*
qualityRange) | 获取编码器支持的质量范围。 |
|
[
OH_AVCapability_GetEncoderComplexityRange
](
#oh_avcapability_getencodercomplexityrange
)
(
OH_AVCapability
\*
capability,
[
OH_AVRange
](
_o_h___a_v_range.md
)
\*
complexityRange) | 获取编码器支持的编码器复杂性范围。 |
|
[
OH_AVCapability_GetAudioSupportedSampleRates
](
#oh_avcapability_getaudiosupportedsamplerates
)
(
OH_AVCapability
\*
capability, const int32_t
\*\*
sampleRates, uint32_t
\*
sampleRateNum) | 获取音频编解码器支持的采样速率。 |
|
[
OH_AVCapability_GetAudioChannelCountRange
](
#oh_avcapability_getaudiochannelcountrange
)
(
OH_AVCapability
\*
capability,
[
OH_AVRange
](
_o_h___a_v_range.md
)
\*
channelCountRange) | 获取音频编解码器支持的音频通道计数范围。 |
|
[
OH_AVCapability_GetVideoWidthAlignment
](
#oh_avcapability_getvideowidthalignment
)
(
OH_AVCapability
\*
capability, int32_t
\*
widthAlignment) | 获取视频编解码器支持的视频宽度对齐。 |
|
[
OH_AVCapability_GetVideoHeightAlignment
](
#oh_avcapability_getvideoheightalignment
)
(
OH_AVCapability
\*
capability, int32_t
\*
heightAlignment) | 获取视频编解码器支持的视频高度对齐。 |
|
[
OH_AVCapability_GetVideoWidthRangeForHeight
](
#oh_avcapability_getvideowidthrangeforheight
)
(
OH_AVCapability
\*
capability, int32_t height,
[
OH_AVRange
](
_o_h___a_v_range.md
)
\*
widthRange) | 获取指定高度情况下视频编解码器支持的视频宽度范围。 |
|
[
OH_AVCapability_GetVideoHeightRangeForWidth
](
#oh_avcapability_getvideoheightrangeforwidth
)
(
OH_AVCapability
\*
capability, int32_t width,
[
OH_AVRange
](
_o_h___a_v_range.md
)
\*
heightRange) | 获取指定宽度情况下视频编解码器支持的视频高度范围。 |
|
[
OH_AVCapability_GetVideoWidthRange
](
#oh_avcapability_getvideowidthrange
)
(
OH_AVCapability
\*
capability,
[
OH_AVRange
](
_o_h___a_v_range.md
)
\*
widthRange) | 获取视频编解码器支持的视频宽度范围。 |
|
[
OH_AVCapability_GetVideoHeightRange
](
#oh_avcapability_getvideoheightrange
)
(
OH_AVCapability
\*
capability,
[
OH_AVRange
](
_o_h___a_v_range.md
)
\*
heightRange) | 获取视频编解码器支持的视频高度范围。 |
|
[
OH_AVCapability_IsVideoSizeSupported
](
#oh_avcapability_isvideosizesupported
)
(
OH_AVCapability
\*
capability, int32_t width, int32_t height) | 检查视频编解码器是否支持特定的视频大小。 |
|
[
OH_AVCapability_GetVideoFrameRateRange
](
#oh_avcapability_getvideoframeraterange
)
(
OH_AVCapability
\*
capability,
[
OH_AVRange
](
_o_h___a_v_range.md
)
\*
frameRateRange) | 获取视频编解码器支持的视频帧率范围。 |
|
[
OH_AVCapability_GetVideoFrameRateRangeForSize
](
#oh_avcapability_getvideoframeraterangeforsize
)
(
OH_AVCapability
\*
capability, int32_t width, int32_t height,
[
OH_AVRange
](
_o_h___a_v_range.md
)
\*
frameRateRange) | 获取指定视频大小的视频编解码器支持的视频帧率范围。 |
|
[
OH_AVCapability_AreVideoSizeAndFrameRateSupported
](
#oh_avcapability_arevideosizeandframeratesupported
)
(
OH_AVCapability
\*
capability, int32_t width, int32_t height, int32_t frameRate) | 检查视频编解码器是否支持视频大小和帧率的特定组合。 |
|
[
OH_AVCapability_GetVideoSupportedPixelFormats
](
#oh_avcapability_getvideosupportedpixelformats
)
(
OH_AVCapability
\*
capability, const int32_t
\*\*
pixelFormats, uint32_t
\*
pixelFormatNum) | 获取视频编解码器支持的视频像素格式。 |
|
[
OH_AVCapability_GetSupportedProfiles
](
#oh_avcapability_getsupportedprofiles
)
(
OH_AVCapability
\*
capability, const int32_t
\*\*
profiles, uint32_t
\*
profileNum) | 获取编解码器支持的配置文件。 |
|
[
OH_AVCapability_GetSupportedLevelsForProfile
](
#oh_avcapability_getsupportedlevelsforprofile
)
(
OH_AVCapability
\*
capability, int32_t profile, const int32_t
\*\*
levels, uint32_t
\*
levelNum) | 获取特定配置文件支持的编解码器级别。 |
|
[
OH_AVCapability_AreProfileAndLevelSupported
](
#oh_avcapability_areprofileandlevelsupported
)
(
OH_AVCapability
\*
capability, int32_t profile, int32_t level) | 检查编解码器是否支持配置文件和级别的特定组合。 |
### 变量
| 名称 | 描述 |
| -------- | -------- |
|
**OH_AVRange::minVal**
| 范围下限 |
|
**OH_AVRange::maxVal**
| 范围上限 |
## 类型定义说明
### OH_AVCodecCategory
```
typedef enum OH_AVCodecCategoryOH_AVCodecCategory
```
**描述:**
编解码器类别。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
**起始版本:**
10
### OH_AVRange
```
typedef struct OH_AVRangeOH_AVRange
```
**描述:**
范围包含最小值和最大值。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
**起始版本:**
10
### OH_BitrateMode
```
typedef enum OH_BitrateModeOH_BitrateMode
```
**描述:**
编码器的比特率模式。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
**起始版本:**
10
## 枚举类型说明
### OH_AVCodecCategory
```
enum OH_AVCodecCategory
```
**描述:**
编解码器类别。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
**起始版本:**
10
| 枚举值 | 描述 |
| -------- | -------- |
| HARDWARE | 硬件编解码。 |
| SOFTWARE | 软件编解码。 |
### OH_BitrateMode
```
enum OH_BitrateMode
```
**描述:**
编码器的比特率模式。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
**起始版本:**
10
| 枚举值 | 描述 |
| -------- | -------- |
| BITRATE_MODE_CBR | 恒定比特率模式。 |
| BITRATE_MODE_VBR | 可变比特率模式。 |
| BITRATE_MODE_CQ | 恒定质量模式。 |
## 函数说明
### OH_AVCapability_AreProfileAndLevelSupported()
```
bool OH_AVCapability_AreProfileAndLevelSupported (OH_AVCapability *capability, int32_t profile, int32_t level )
```
**描述:**
检查编解码器是否支持配置文件和级别的特定组合。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| capability | 编解码能力指针 |
| profile | 编解码器配置文件 |
| level | 编解码器级别 |
**返回:**
如果支持配置文件和级别的组合,则返回true。 如果不支持,则为false。
**起始版本:**
10
### OH_AVCapability_AreVideoSizeAndFrameRateSupported()
```
bool OH_AVCapability_AreVideoSizeAndFrameRateSupported (OH_AVCapability *capability, int32_t width, int32_t height, int32_t frameRate )
```
**描述:**
检查视频编解码器是否支持视频大小和帧率的特定组合。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| capability | 视频编解码能力指针。不能填入音频编解码器能力指针。 |
| width | 视频水平像素数。 |
| height | 视频垂直像素数。 |
| frameRate | 每秒帧数。 |
**返回:**
如果支持视频大小和帧率的组合,则返回true。 如果不支持,则为false。
**起始版本:**
10
### OH_AVCapability_GetAudioChannelCountRange()
```
OH_AVErrCode OH_AVCapability_GetAudioChannelCountRange (OH_AVCapability * capability, OH_AVRange * channelCountRange )
```
**描述:**
获取音频编解码器支持的音频通道计数范围。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| capability | 音频编解码能力指针。不能填入视频编解码器能力指针。 |
| channelCountRange | 输出参数。音频通道计数范围。 |
**返回:**
如果执行成功,则返回AV_ERR_OK, 否则返回特定错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
**起始版本:**
10
### OH_AVCapability_GetAudioSupportedSampleRates()
```
OH_AVErrCode OH_AVCapability_GetAudioSupportedSampleRates (OH_AVCapability * capability, const int32_t ** sampleRates, uint32_t * sampleRateNum )
```
**描述:**
获取音频编解码器支持的采样速率。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| capability | 音频编解码能力指针。不能填入视频编解码器能力指针。 |
| sampleRates | 输出参数。指向采样速率数组的指针。 |
| sampleRateNum | 输出参数。采样率数组的元素数目。 |
**返回:**
如果执行成功,则返回AV_ERR_OK, 否则返回特定错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
**起始版本:**
10
### OH_AVCapability_GetEncoderBitrateRange()
```
OH_AVErrCode OH_AVCapability_GetEncoderBitrateRange (OH_AVCapability * capability, OH_AVRange * bitrateRange )
```
**描述:**
获取编码器支持的比特率范围。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| capability | 编码器能力指针。不能填入解码器能力指针。 |
| bitrateRange | 输出参数。编码器码率范围。 |
**返回:**
如果执行成功,则返回AV_ERR_OK, 否则返回特定错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
**起始版本:**
10
### OH_AVCapability_GetEncoderComplexityRange()
```
OH_AVErrCode OH_AVCapability_GetEncoderComplexityRange (OH_AVCapability * capability, OH_AVRange * complexityRange )
```
**描述:**
获取编码器支持的编码器复杂性范围。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| capability | 编码器能力指针。不能填入解码器能力指针。 |
| complexityRange | 输出参数。编码器复杂度范围。 |
**返回:**
如果执行成功,则返回AV_ERR_OK, 否则返回特定错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
**起始版本:**
10
### OH_AVCapability_GetEncoderQualityRange()
```
OH_AVErrCode OH_AVCapability_GetEncoderQualityRange (OH_AVCapability * capability, OH_AVRange * qualityRange )
```
**描述:**
获取编码器支持的质量范围。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| capability | 编码器能力指针。不能填入解码器能力指针。 |
| qualityRange | 输出参数。编码器质量范围。 |
**返回:**
如果执行成功,则返回AV_ERR_OK, 否则返回特定错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
**起始版本:**
10
### OH_AVCapability_GetMaxSupportedInstances()
```
int32_t OH_AVCapability_GetMaxSupportedInstances (OH_AVCapability * capability)
```
**描述:**
获取编解码器支持的最大实例数。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| capability | 编解码能力指针。 |
**返回:**
返回支持的最大编解码器实例数。
**起始版本:**
10
### OH_AVCapability_GetName()
```
const char* OH_AVCapability_GetName (OH_AVCapability * capability)
```
**描述:**
获取编解码器名称。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| capability | 编解码能力指针。 |
**返回:**
返回编解码器名称字符串。
**起始版本:**
10
### OH_AVCapability_GetSupportedLevelsForProfile()
```
OH_AVErrCode OH_AVCapability_GetSupportedLevelsForProfile (OH_AVCapability * capability, int32_t profile, const int32_t ** levels, uint32_t * levelNum )
```
**描述:**
获取特定配置文件支持的编解码器级别。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| capability | 编解码能力指针。 |
| profile | 编解码器配置文件。 |
| levels | 输出参数。指向级别数组的指针。 |
| levelNum | 输出参数。级别数组的元素数目。 |
**返回:**
如果执行成功,则返回AV_ERR_OK, 否则返回特定错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
**起始版本:**
10
### OH_AVCapability_GetSupportedProfiles()
```
OH_AVErrCode OH_AVCapability_GetSupportedProfiles (OH_AVCapability * capability, const int32_t ** profiles, uint32_t * profileNum )
```
**描述:**
获取编解码器支持的配置文件。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| capability | 编解码能力指针。 |
| profiles | 输出参数。指向配置文件数组的指针。 |
| profileNum | 输出参数。配置文件数组的元素数目。 |
**返回:**
如果执行成功,则返回AV_ERR_OK, 否则返回特定错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
**起始版本:**
10
### OH_AVCapability_GetVideoFrameRateRange()
```
OH_AVErrCode OH_AVCapability_GetVideoFrameRateRange (OH_AVCapability * capability, OH_AVRange * frameRateRange )
```
**描述:**
获取视频编解码器支持的视频帧率范围。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| capability | 视频编解码能力指针。不能填入音频编解码器能力指针。 |
| frameRateRange | 输出参数。视频帧率范围。 |
**返回:**
如果执行成功,则返回AV_ERR_OK, 否则返回特定错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
**起始版本:**
10
### OH_AVCapability_GetVideoFrameRateRangeForSize()
```
OH_AVErrCode OH_AVCapability_GetVideoFrameRateRangeForSize (OH_AVCapability * capability, int32_t width, int32_t height, OH_AVRange * frameRateRange )
```
**描述:**
获取指定视频大小的视频编解码器支持的视频帧率范围。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| capability | 视频编解码能力指针。不能填入音频编解码器能力指针。 |
| width | 视频水平像素数。 |
| height | 视频垂直像素数。 |
| frameRateRange | 输出参数。视频帧率范围。 |
**返回:**
如果执行成功,则返回AV_ERR_OK, 否则返回特定错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
**起始版本:**
10
### OH_AVCapability_GetVideoHeightAlignment()
```
OH_AVErrCode OH_AVCapability_GetVideoHeightAlignment (OH_AVCapability * capability, int32_t * heightAlignment )
```
**描述:**
获取视频编解码器支持的视频高度对齐。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| capability | 视频编解码能力指针。不能填入音频编解码器能力指针。 |
| heightAlignment | 输出参数。视频高度对齐。 |
**返回:**
如果执行成功,则返回AV_ERR_OK, 否则返回特定错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
**起始版本:**
10
### OH_AVCapability_GetVideoHeightRange()
```
OH_AVErrCode OH_AVCapability_GetVideoHeightRange (OH_AVCapability * capability, OH_AVRange * heightRange )
```
**描述:**
获取视频编解码器支持的视频高度范围。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| capability | 视频编解码能力指针。不能填入音频编解码器能力指针。 |
| heightRange | 输出参数。视频高度范围。 |
**返回:**
如果执行成功,则返回AV_ERR_OK, 否则返回特定错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
**起始版本:**
10
### OH_AVCapability_GetVideoHeightRangeForWidth()
```
OH_AVErrCode OH_AVCapability_GetVideoHeightRangeForWidth (OH_AVCapability * capability, int32_t width, OH_AVRange * heightRange )
```
**描述:**
获取指定宽度情况下视频编解码器支持的视频高度范围。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| capability | 视频编解码能力指针。不能填入音频编解码器能力指针。 |
| width | 视频水平像素数。 |
| heightRange | 输出参数。视频高度范围。 |
**返回:**
如果执行成功,则返回AV_ERR_OK, 否则返回特定错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
**起始版本:**
10
### OH_AVCapability_GetVideoSupportedPixelFormats()
```
OH_AVErrCode OH_AVCapability_GetVideoSupportedPixelFormats (OH_AVCapability * capability, const int32_t ** pixelFormats, uint32_t * pixelFormatNum )
```
**描述:**
获取视频编解码器支持的视频像素格式。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| capability | 视频编解码能力指针。不能填入音频编解码器能力指针。 |
| pixelFormats | 输出参数。指向视频像素格式数组的指针。 |
| pixelFormatNum | 输出参数。像素格式数组的元素数目。 |
**返回:**
如果执行成功,则返回AV_ERR_OK, 否则返回特定错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
**起始版本:**
10
### OH_AVCapability_GetVideoWidthAlignment()
```
OH_AVErrCode OH_AVCapability_GetVideoWidthAlignment (OH_AVCapability * capability, int32_t * widthAlignment )
```
**描述:**
获取视频编解码器支持的视频宽度对齐。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| capability | 视频编解码能力指针。不能填入音频编解码器能力指针。 |
| widthAlignment | 输出参数。视频宽度对齐 |
**返回:**
如果执行成功,则返回AV_ERR_OK, 否则返回特定错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
**起始版本:**
10
### OH_AVCapability_GetVideoWidthRange()
```
OH_AVErrCode OH_AVCapability_GetVideoWidthRange (OH_AVCapability * capability, OH_AVRange * widthRange )
```
**描述:**
获取视频编解码器支持的视频宽度范围。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| capability | 视频编解码能力指针。不能填入音频编解码器能力指针。 |
| widthRange | 输出参数。视频宽度范围 |
**返回:**
如果执行成功,则返回AV_ERR_OK, 否则返回特定错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
**起始版本:**
10
### OH_AVCapability_GetVideoWidthRangeForHeight()
```
OH_AVErrCode OH_AVCapability_GetVideoWidthRangeForHeight (OH_AVCapability * capability, int32_t height, OH_AVRange * widthRange )
```
**描述:**
获取指定高度情况下视频编解码器支持的视频宽度范围。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| capability | 视频编解码能力指针。不能填入音频编解码器能力指针。 |
| height | 视频垂直像素数。 |
| widthRange | 输出参数。视频宽度范围。 |
**返回:**
如果执行成功,则返回AV_ERR_OK, 否则返回特定错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
**起始版本:**
10
### OH_AVCapability_IsEncoderBitrateModeSupported()
```
bool OH_AVCapability_IsEncoderBitrateModeSupported (OH_AVCapability * capability, OH_BitrateMode bitrateMode )
```
**描述:**
检查编码器是否支持特定的比特率模式。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| capability | 编码器能力指针。不能填入解码器能力指针。 |
| bitrateMode | 比特率模式。 |
**返回:**
如果支持该比特率模式,则返回true;如果不支持该比特率模式,则返回false。
**起始版本:**
10
### OH_AVCapability_IsHardware()
```
bool OH_AVCapability_IsHardware (OH_AVCapability * capability)
```
**描述:**
检查能力实例是否描述了硬件编解码器。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| capability | 编解码能力指针。 |
**返回:**
如果能力实例描述的是硬件编解码器,则返回true, 如果功能实例描述的是软件编解码器,则为false。
**起始版本:**
10
### OH_AVCapability_IsVideoSizeSupported()
```
bool OH_AVCapability_IsVideoSizeSupported (OH_AVCapability * capability, int32_t width, int32_t height )
```
**描述:**
检查视频编解码器是否支持特定的视频大小。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| capability | 视频编解码能力指针。不能填入音频编解码器能力指针。 |
| width | 视频水平像素数。 |
| height | 视频垂直像素数。 |
**返回:**
如果支持该视频大小,则返回true,如果不支持该视频大小,则返回false。
**起始版本:**
10
### OH_AVCodec_GetCapability()
```
OH_AVCapability* OH_AVCodec_GetCapability (const char * mime, bool isEncoder )
```
**描述:**
获取系统推荐的编解码器能力。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| mime | MIME类型。 |
| isEncoder | 编码器为true,解码器为false。 |
**返回:**
如果现有编解码器匹配,则返回能力实例, 如果指定的MIME类型与任何现有编解码器不匹配,则返回NULL。
**起始版本:**
10
### OH_AVCodec_GetCapabilityByCategory()
```
OH_AVCapability* OH_AVCodec_GetCapabilityByCategory (const char * mime, bool isEncoder, OH_AVCodecCategory category )
```
**描述:**
获取指定类别中的编解码器能力。
通过指定类别, 匹配的编解码器仅限于硬件编解码器或软件编解码器。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| mime | MIME类型。 |
| isEncoder | 编码器为true,解码器为false。 |
| category | 编解码器类别。 |
**返回:**
如果现有编解码器匹配,则返回能力实例, 如果指定的MIME类型与任何现有编解码器不匹配,则返回NULL。
**起始版本:**
10
zh-cn/application-dev/reference/native-apis/_a_v_demuxer.md
0 → 100644
浏览文件 @
dc2cd5e0
# AVDemuxer
## 概述
AVDemuxer模块提供用于音视频解封装功能的函数。
\@
syscap SystemCapability.Multimedia.Media.Spliter
**起始版本:**
10
## 汇总
### 文件
| 名称 | 描述 |
| -------- | -------- |
|
[
native_avdemuxer.h
](
native__avdemuxer_8h.md
)
| 声明用于音视频解封装的Native API。
<br>
引用文件:
<multimedia
/
native_avdemuxer.h
>
|
### 函数
| 名称 | 描述 |
| -------- | -------- |
|
\*
[
OH_AVDemuxer_CreateWithSource
](
#oh_avdemuxer_createwithsource
)
(
OH_AVSource
\*
source) | 通过source实例对象创建OH_AVDemuxer实例对象。 |
|
[
OH_AVDemuxer_Destroy
](
#oh_avdemuxer_destroy
)
(
OH_AVDemuxer
\*
demuxer) | 销毁OH_AVDemuxer实例并清理内部资源。 |
|
[
OH_AVDemuxer_SelectTrackByID
](
#oh_avdemuxer_selecttrackbyid
)
(
OH_AVDemuxer
\*
demuxer, uint32_t trackIndex) | 选中指定轨道,解封装器将会从该轨道中读取数据。 |
|
[
OH_AVDemuxer_UnselectTrackByID
](
#oh_avdemuxer_unselecttrackbyid
)
(
OH_AVDemuxer
\*
demuxer, uint32_t trackIndex) | 取消选择指定轨道,未选中的轨道的数据不会被解封装器读取。 |
|
[
OH_AVDemuxer_ReadSample
](
#oh_avdemuxer_readsample
)
(
OH_AVDemuxer
\*
demuxer, uint32_t trackIndex, OH_AVMemory
\*
sample, OH_AVCodecBufferAttr
\*
info) | 从选中轨道中获取当前位置压缩帧及相关信息。 |
|
[
OH_AVDemuxer_SeekToTime
](
#oh_avdemuxer_seektotime
)
(
OH_AVDemuxer
\*
demuxer, int64_t millisecond, OH_AVSeekMode mode) | 根据设定的跳转模式,将所有选中的轨道到指定时间附近。 |
## 函数说明
### OH_AVDemuxer_CreateWithSource()
```
OH_AVDemuxer* OH_AVDemuxer_CreateWithSource (OH_AVSource * source)
```
**描述:**
通过source实例对象创建OH_AVDemuxer实例对象。可以通过调用 OH_AVDemuxer_Destroy 释放实例。
\@
syscap SystemCapability.Multimedia.Media.Spliter
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| source | 指向OH_AVSource实例的指针。 |
**返回:**
返回一个指向OH_AVDemuxer实例的指针。
**起始版本:**
10
### OH_AVDemuxer_Destroy()
```
OH_AVErrCode OH_AVDemuxer_Destroy (OH_AVDemuxer * demuxer)
```
**描述:**
销毁OH_AVDemuxer实例并清理内部资源。同一实例只能被销毁一次。
销毁的实例在被重新创建之前不能再被使用.。建议实例销毁成功后将指针置为NULL。
\@
syscap SystemCapability.Multimedia.Media.Spliter
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| demuxer | 指向OH_AVDemuxer实例的指针。 |
**返回:**
执行成功返回AV_ERR_OK, 否则返回具体错误码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
**起始版本:**
10
### OH_AVDemuxer_ReadSample()
```
OH_AVErrCode OH_AVDemuxer_ReadSample (OH_AVDemuxer * demuxer, uint32_t trackIndex, OH_AVMemory * sample, OH_AVCodecBufferAttr * info )
```
**描述:**
从选中轨道中获取当前位置压缩帧及相关信息。
读取轨道帧数据前,轨道必须被选中。调用接口后解封装器 将自动前进到下一帧。
\@
syscap SystemCapability.Multimedia.Media.Spliter
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| demuxer | 指向OH_AVDemuxer实例的指针。 |
| trackIndex | 本次读取压缩帧的轨道的索引。 |
| sample | 指向OH_AVMemory实例的指针,用于储存压缩帧数据。 |
| info | 指向OH_AVCodecBufferAttr实例的指针,用于储存压缩帧的相关信息。 |
**返回:**
执行成功返回AV_ERR_OK, 否则返回具体错误码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
**起始版本:**
10
### OH_AVDemuxer_SeekToTime()
```
OH_AVErrCode OH_AVDemuxer_SeekToTime (OH_AVDemuxer * demuxer, int64_t millisecond, OH_AVSeekMode mode )
```
**描述:**
根据设定的跳转模式,将所有选中的轨道到指定时间附近。
\@
syscap SystemCapability.Multimedia.Media.Spliter
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| demuxer | 指向OH_AVDemuxer实例的指针。 |
| millisecond | 期望跳转位置对应的时间,单位为毫秒,该时间戳是相对文件开始的位置。 |
| mode | 跳转的模式,参考
**OH_AVSeekMode。**
|
**返回:**
执行成功返回AV_ERR_OK, 否则返回具体错误码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
**起始版本:**
10
### OH_AVDemuxer_SelectTrackByID()
```
OH_AVErrCode OH_AVDemuxer_SelectTrackByID (OH_AVDemuxer * demuxer, uint32_t trackIndex )
```
**描述:**
选中指定轨道,解封装器将会从该轨道中读取数据。
通过多次调用接口并传入不同轨道的索引来 选中多个轨道。
调用OH_AVDemuxer_ReadSample时只会读取被选中的轨道中数据,同一轨道被选择多次时,接口会返回AV_ERR_OK,并且只会生效一次。
\@
syscap SystemCapability.Multimedia.Media.Spliter
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| demuxer | 指向OH_AVDemuxer实例的指针。 |
| trackIndex | 需选择的轨道的索引。 |
**返回:**
执行成功返回AV_ERR_OK, 否则返回具体错误码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
**起始版本:**
10
### OH_AVDemuxer_UnselectTrackByID()
```
OH_AVErrCode OH_AVDemuxer_UnselectTrackByID (OH_AVDemuxer * demuxer, uint32_t trackIndex )
```
**描述:**
取消选择指定轨道,未选中的轨道的数据不会被解封装器读取。
通过多次调用接口并传入不同轨道的索引来取消对多个轨道的选择。
同一轨道被多次取消选择时,接口会返回AV_ERR_OK,并且只会生效一次。
\@
syscap SystemCapability.Multimedia.Media.Spliter
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| demuxer | 指向OH_AVDemuxer实例的指针。 |
| trackIndex | 需取消选择的轨道的索引。 |
**返回:**
执行成功返回AV_ERR_OK, 否则返回具体错误码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
**起始版本:**
10
zh-cn/application-dev/reference/native-apis/_a_v_source.md
0 → 100644
浏览文件 @
dc2cd5e0
# AVSource
## 概述
AVSource模块提供用于构造音视频资源对象功能的函数。
\@
syscap SystemCapability.Multimedia.Media.Spliter
**起始版本:**
10
## 汇总
### 文件
| 名称 | 描述 |
| -------- | -------- |
|
[
native_avsource.h
](
native__avsource_8h.md
)
| 声明用于构造音视频资源对象的Native API。
<br>
引用文件:
<multimedia
/
native_avsource.h
>
|
### 函数
| 名称 | 描述 |
| -------- | -------- |
|
\*
[
OH_AVSource_CreateWithURI
](
#oh_avsource_createwithuri
)
(
char
\*
uri) | 为统一资源标识符对应的的资源对象创建OH_AVSource实例对象。 |
|
\*
[
OH_AVSource_CreateWithFD
](
#oh_avsource_createwithfd
)
(
int32_t
fd, int64_t offset, int64_t size) | 为文件描述符对应的资源对象创建OH_AVSource实例对象。 |
|
[
OH_AVSource_Destroy
](
#oh_avsource_destroy
)
(
OH_AVSource
\*
source) | 销毁OH_AVSource实例并清理内部资源。同一实例只能被销毁一次。 |
|
\*
[
OH_AVSource_GetSourceFormat
](
#oh_avsource_getsourceformat
)
(
OH_AVSource
\*
source) | 获取媒体资源文件的基础信息。 |
|
\*
[
OH_AVSource_GetTrackFormat
](
#oh_avsource_gettrackformat
)
(
OH_AVSource
\*
source, uint32_t trackIndex) | 获取轨道的基础信息。 |
## 函数说明
### OH_AVSource_CreateWithFD()
```
OH_AVSource* OH_AVSource_CreateWithFD (int32_t fd, int64_t offset, int64_t size )
```
**描述:**
为文件描述符对应的资源对象创建OH_AVSource实例对象。
可以通过调用OH_AVSource_Destroy释放实例
该接口如果传入offset不为文件起始位置,或size不为文件大小时,可能会因数据获取不完整导致 OH_AVSource创建失败、后续解封装失败等未定义错误。
\@
syscap SystemCapability.Multimedia.Media.Spliter
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| fd | 数据资源的文件描述符。 |
| offset | 开始读取数据的位置。 |
| size | 文件的字节数大小。 |
**返回:**
返回一个指向OH_AVSource实例的指针。
**起始版本:**
10
### OH_AVSource_CreateWithURI()
```
OH_AVSource* OH_AVSource_CreateWithURI (char * uri)
```
**描述:**
为统一资源标识符对应的的资源对象创建OH_AVSource实例对象,可以通过调用OH_AVSource_Destroy释放实例。
\@
syscap SystemCapability.Multimedia.Media.Spliter
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| uri | 远程媒体资源的统一资源标识符。 |
**返回:**
返回一个指向OH_AVSource实例的指针。
**起始版本:**
10
### OH_AVSource_Destroy()
```
OH_AVErrCode OH_AVSource_Destroy (OH_AVSource * source)
```
**描述:**
销毁OH_AVSource实例并清理内部资源。
同一实例只能被销毁一次。
销毁的实例在被重新创建之前不能再被使用。建议实例销毁成功后将指针置为NULL。
\@
syscap SystemCapability.Multimedia.Media.Spliter
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| source | 指向OH_AVSource实例的指针。 |
**返回:**
执行成功返回AV_ERR_OK, 否则返回具体错误码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
**起始版本:**
10
### OH_AVSource_GetSourceFormat()
```
OH_AVFormat* OH_AVSource_GetSourceFormat (OH_AVSource * source)
```
**描述:**
获取媒体资源文件的基础信息。
\@
syscap SystemCapability.Multimedia.Media.Spliter
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| source | 指向OH_AVSource实例的指针。 |
**返回:**
返回媒体资源文件的基础信息。
**起始版本:**
10
### OH_AVSource_GetTrackFormat()
```
OH_AVFormat* OH_AVSource_GetTrackFormat (OH_AVSource * source, uint32_t trackIndex )
```
**描述:**
获取轨道的基础信息。
\@
syscap SystemCapability.Multimedia.Media.Spliter
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| source | 指向OH_AVSource实例的指针。 |
| trackIndex | 需要获取信息的轨道的索引。 |
**返回:**
返回轨道的基础信息。
**起始版本:**
10
zh-cn/application-dev/reference/native-apis/_audio_decoder.md
浏览文件 @
dc2cd5e0
...
...
@@ -3,41 +3,114 @@
## 概述
AudioDecoder模块提供用于音频解码
功能
的函数。该模块在部分设备上可能不支持,可以通过
[
CanIUse
](
../syscap.md
)
接口确认。
AudioDecoder模块提供用于音频解码的函数。该模块在部分设备上可能不支持,可以通过
[
CanIUse
](
../syscap.md
)
接口确认。
@syscap SystemCapability.Multimedia.Media.AudioDecoder
\
@
syscap SystemCapability.Multimedia.Media.AudioDecoder
**起始版本:**
9
## 汇总
### 文件
| 名称 | 描述 |
| 名称 | 描述 |
| -------- | -------- |
|
[
native_avcodec_audiodecoder.h
](
native__avcodec__audiodecoder_8h.md
)
| 声明用于音频解码的Native API。
<br>
引用文件:
<multimedia
/
player_framework
/
native_avcodec_audiodecoder.h
>
|
|
[
native_avcodec_audiodecoder.h
](
native__avcodec__audiodecoder_8h.md
)
| 声明用于音频解码的Native API。
<br>
引用文件:
<multimedia
/
player_framework
/
native_avcodec_audiodecoder.h
>
|
|
[
avcodec_audio_channel_layout.h
](
avcodec__audio__channel__layout_8h.md
)
| 声明用于音频编解码的枚举。
<br>
引用文件:
<multimedia
/
avcodec_audio_channel_layout.h
>
|
### 枚举
| 名称 | 描述 |
| -------- | -------- |
|
[
OHOS::Media::AudioChannelSet
](
#audiochannelset
)
: uint64_t {
<br/>
**FRONT_LEFT**
= 1ULL
<<
0U,
**FRONT_RIGHT**
= 1ULL
<<
1U,
**FRONT_CENTER**
= 1ULL
<<
2U,
**LOW_FREQUENCY**
= 1ULL
<<
3U,
<br/>
**BACK_LEFT**
= 1ULL
<<
4U,
**BACK_RIGHT**
= 1ULL
<<
5U,
**FRONT_LEFT_OF_CENTER**
= 1ULL
<<
6U,
**FRONT_RIGHT_OF_CENTER**
= 1ULL
<<
7U,
<br/>
**BACK_CENTER**
= 1ULL
<<
8U,
**SIDE_LEFT**
= 1ULL
<<
9U,
**SIDE_RIGHT**
= 1ULL
<<
10U,
**TOP_CENTER**
= 1ULL
<<
11U,
<br/>
**TOP_FRONT_LEFT**
= 1ULL
<<
12U,
**TOP_FRONT_CENTER**
= 1ULL
<<
13U,
**TOP_FRONT_RIGHT**
= 1ULL
<<
14U,
**TOP_BACK_LEFT**
= 1ULL
<<
15U,
<br/>
**TOP_BACK_CENTER**
= 1ULL
<<
16U,
**TOP_BACK_RIGHT**
= 1ULL
<<
17U,
**STEREO_LEFT**
= 1ULL
<<
29U,
**STEREO_RIGHT**
= 1ULL
<<
30U,
<br/>
**WIDE_LEFT**
= 1ULL
<<
31U,
**WIDE_RIGHT**
= 1ULL
<<
32U,
**SURROUND_DIRECT_LEFT**
= 1ULL
<<
33U,
**SURROUND_DIRECT_RIGHT**
= 1ULL
<<
34U,
<br/>
**LOW_FREQUENCY_2**
= 1ULL
<<
35U,
**TOP_SIDE_LEFT**
= 1ULL
<<
36U,
**TOP_SIDE_RIGHT**
= 1ULL
<<
37U,
**BOTTOM_FRONT_CENTER**
= 1ULL
<<
38U,
<br/>
**BOTTOM_FRONT_LEFT**
= 1ULL
<<
39U,
**BOTTOM_FRONT_RIGHT**
= 1ULL
<<
40U,
**AMBISONICS_ACN0**
= 1ULL
<<
41U, OHOS::Media::AMBISONICS_ACN1 = 1ULL
<<
42U,
<br/>
OHOS::Media::AMBISONICS_ACN2 = 1ULL
<<
43U, OHOS::Media::AMBISONICS_ACN3 = 1ULL
<<
44U, OHOS::Media::AMBISONICS_W = AMBISONICS_ACN0, OHOS::Media::AMBISONICS_Y = AMBISONICS_ACN1,
<br/>
OHOS::Media::AMBISONICS_Z = AMBISONICS_ACN2, OHOS::Media::AMBISONICS_X = AMBISONICS_ACN3, OHOS::Media::AMBISONICS_ACN4 = 1ULL
<<
45U, OHOS::Media::AMBISONICS_ACN5 = 1ULL
<<
46U,
<br/>
OHOS::Media::AMBISONICS_ACN6 = 1ULL
<<
47U, OHOS::Media::AMBISONICS_ACN7 = 1ULL
<<
48U, OHOS::Media::AMBISONICS_ACN8 = 1ULL
<<
49U, OHOS::Media::AMBISONICS_ACN9 = 1ULL
<<
50U,
<br/>
OHOS::Media::AMBISONICS_ACN10 = 1ULL
<<
51U, OHOS::Media::AMBISONICS_ACN11 = 1ULL
<<
52U, OHOS::Media::AMBISONICS_ACN12 = 1ULL
<<
53U, OHOS::Media::AMBISONICS_ACN13 = 1ULL
<<
54U,
<br/>
OHOS::Media::AMBISONICS_ACN14 = 1ULL
<<
55U, OHOS::Media::AMBISONICS_ACN15 = 1ULL
<<
56U
<br/>
} | 音频声道数集合, 将每一个声道数映射为int64的变量。 |
|
[
OHOS::Media::AudioChannelLayout
](
#audiochannellayout
)
: uint64_t {
<br/>
**UNKNOWN_CHANNEL_LAYOUT**
= 0,
**MONO**
= (AudioChannelSet::FRONT_CENTER),
**STEREO**
= (AudioChannelSet::FRONT_LEFT
\|
AudioChannelSet::FRONT_RIGHT),
**CH_2POINT1**
= (STEREO
\|
AudioChannelSet::LOW_FREQUENCY),
<br/>
**CH_2_1**
= (STEREO
\|
AudioChannelSet::BACK_CENTER),
**SURROUND**
= (STEREO
\|
AudioChannelSet::FRONT_CENTER),
**CH_3POINT1**
= (SURROUND
\|
AudioChannelSet::LOW_FREQUENCY),
**CH_4POINT0**
= (SURROUND
\|
AudioChannelSet::BACK_CENTER),
<br/>
**CH_4POINT1**
= (CH_4POINT0
\|
AudioChannelSet::LOW_FREQUENCY),
**CH_2_2**
= (STEREO
\|
AudioChannelSet::SIDE_LEFT
\|
AudioChannelSet::SIDE_RIGHT),
**QUAD**
= (STEREO
\|
AudioChannelSet::BACK_LEFT
\|
AudioChannelSet::BACK_RIGHT),
**CH_5POINT0**
= (SURROUND
\|
AudioChannelSet::SIDE_LEFT
\|
AudioChannelSet::SIDE_RIGHT),
<br/>
**CH_5POINT1**
= (CH_5POINT0
\|
AudioChannelSet::LOW_FREQUENCY),
**CH_5POINT0_BACK**
= (SURROUND
\|
AudioChannelSet::BACK_LEFT
\|
AudioChannelSet::BACK_RIGHT),
**CH_5POINT1_BACK**
= (CH_5POINT0_BACK
\|
AudioChannelSet::LOW_FREQUENCY),
**CH_6POINT0**
= (CH_5POINT0
\|
AudioChannelSet::BACK_CENTER),
<br/>
**CH_6POINT0_FRONT**
= (CH_2_2
\|
AudioChannelSet::FRONT_LEFT_OF_CENTER
\|
AudioChannelSet::FRONT_RIGHT_OF_CENTER),
**HEXAGONAL**
= (CH_5POINT0_BACK
\|
AudioChannelSet::BACK_CENTER),
**CH_6POINT1**
= (CH_5POINT1
\|
AudioChannelSet::BACK_CENTER),
**CH_6POINT1_BACK**
= (CH_5POINT1_BACK
\|
AudioChannelSet::BACK_CENTER),
<br/>
**CH_6POINT1_FRONT**
= (CH_6POINT0_FRONT
\|
AudioChannelSet::LOW_FREQUENCY),
**CH_7POINT0**
= (CH_5POINT0
\|
AudioChannelSet::BACK_LEFT
\|
AudioChannelSet::BACK_RIGHT),
**CH_7POINT0_FRONT**
= (CH_5POINT0
\|
AudioChannelSet::FRONT_LEFT_OF_CENTER
\|
AudioChannelSet::FRONT_RIGHT_OF_CENTER),
**CH_7POINT1**
= (CH_5POINT1
\|
AudioChannelSet::BACK_LEFT
\|
AudioChannelSet::BACK_RIGHT),
<br/>
**CH_7POINT1_WIDE**
= (CH_5POINT1
\|
AudioChannelSet::FRONT_LEFT_OF_CENTER
\|
AudioChannelSet::FRONT_RIGHT_OF_CENTER),
**CH_7POINT1_WIDE_BACK**
,
**CH_3POINT1POINT2**
= (CH_3POINT1
\|
AudioChannelSet::TOP_FRONT_LEFT
\|
AudioChannelSet::TOP_FRONT_RIGHT),
**CH_5POINT1POINT2**
= (CH_5POINT1
\|
AudioChannelSet::TOP_SIDE_LEFT
\|
AudioChannelSet::TOP_SIDE_RIGHT),
<br/>
**CH_5POINT1POINT4**
,
**CH_7POINT1POINT2**
= (CH_7POINT1
\|
AudioChannelSet::TOP_SIDE_LEFT
\|
AudioChannelSet::TOP_SIDE_RIGHT),
**CH_7POINT1POINT4**
,
**CH_9POINT1POINT4**
= (CH_7POINT1POINT4
\|
AudioChannelSet::WIDE_LEFT
\|
AudioChannelSet::WIDE_RIGHT),
<br/>
**CH_9POINT1POINT6**
= (CH_9POINT1POINT4
\|
AudioChannelSet::TOP_SIDE_LEFT
\|
AudioChannelSet::TOP_SIDE_RIGHT),
**CH_10POINT2**
,
**CH_22POINT2**
,
**OCTAGONAL**
= (CH_5POINT0
\|
AudioChannelSet::BACK_LEFT
\|
AudioChannelSet::BACK_CENTER
\|
AudioChannelSet::BACK_RIGHT),
<br/>
**HEXADECAGONAL**
,
**STEREO_DOWNMIX**
= (AudioChannelSet::STEREO_LEFT
\|
AudioChannelSet::STEREO_RIGHT),
**HOA_FIRST**
,
**HOA_SECOND**
,
<br/>
**HOA_THIRD**
<br/>
} | 音频声道数类型, 将用户申请的解码器输出格式表示为编解码器的声道类型。 |
### 函数
| 名称 | 描述 |
| 名称 | 描述 |
| -------- | -------- |
|
\*
[
OHOS::Media::OH_AudioDecoder_CreateByMime
](
#oh_audiodecoder_createbymime
)
(
const
char
\*
mime) | 根据MIME类型创建音频解码器实例,大多数场景下建议使用此方式。 |
|
\*
[
OHOS::Media::OH_AudioDecoder_CreateByName
](
#oh_audiodecoder_createbyname
)
(
const
char
\*
name) | 通过音频解码器名称创建音频解码器实例,使用此接口的前提是知道解码器的确切名称。 |
|
[
OHOS::Media::OH_AudioDecoder_Destroy
](
#oh_audiodecoder_destroy
)
(
OH_AVCodec
\*
codec) | 清理解码器内部资源,销毁解码器实例。 |
|
[
OHOS::Media::OH_AudioDecoder_SetCallback
](
#oh_audiodecoder_setcallback
)
(
OH_AVCodec
\*
codec, OH_AVCodecAsyncCallback callback, void
\*
userData) | 设置异步回调函数,使您的应用程序可以响应音频解码器生成的事件。 |
|
[
OHOS::Media::OH_AudioDecoder_Configure
](
#oh_audiodecoder_configure
)
(
OH_AVCodec
\*
codec, OH_AVFormat
\*
format) | 要配置音频解码器,通常需要配置从容器中提取的音频描述信息。 |
|
[
OHOS::Media::OH_AudioDecoder_Prepare
](
#oh_audiodecoder_prepare
)
(
OH_AVCodec
\*
codec) | 准备解码器的内部资源,在调用此接口之前必须调用Configure接口。 |
|
[
OHOS::Media::OH_AudioDecoder_Start
](
#oh_audiodecoder_start
)
(
OH_AVCodec
\*
codec) | Prepare成功后调用此接口启动解码器。 |
|
[
OHOS::Media::OH_AudioDecoder_Stop
](
#oh_audiodecoder_stop
)
(
OH_AVCodec
\*
codec) | 停止解码器。 |
|
[
OHOS::Media::OH_AudioDecoder_Flush
](
#oh_audiodecoder_flush
)
(
OH_AVCodec
\*
codec) | 清除解码器中缓存的输入和输出数据。 |
|
[
OHOS::Media::OH_AudioDecoder_Reset
](
#oh_audiodecoder_reset
)
(
OH_AVCodec
\*
codec) | 重置解码器。如果要继续解码,需要再次调用Configure接口配置解码器实例 。 |
|
\*
[
OHOS::Media::OH_AudioDecoder_GetOutputDescription
](
#oh_audiodecoder_getoutputdescription
)
(
OH_AVCodec
\*
codec) | 获取解码器输出数据的描述信息,详细信息请参见
**OH_AVFormat**
。 |
|
[
OHOS::Media::OH_AudioDecoder_SetParameter
](
#oh_audiodecoder_setparameter
)
(
OH_AVCodec
\*
codec, OH_AVFormat
\*
format) | 配置解码器的动态参数。注意:该接口必须在解码器启动后才能调用。另外,参数配置错误可能会导致解码失败。 |
|
[
OHOS::Media::OH_AudioDecoder_PushInputData
](
#oh_audiodecoder_pushinputdata
)
(
OH_AVCodec
\*
codec, uint32_t index, OH_AVCodecBufferAttr attr) | 将填充有数据的输入缓冲区提交给音频解码器。 |
|
[
OHOS::Media::OH_AudioDecoder_FreeOutputData
](
#oh_audiodecoder_freeoutputdata
)
(
OH_AVCodec
\*
codec, uint32_t index) | 将处理后的输出缓冲区返回给解码器。 |
|
[
OHOS::Media::OH_AudioDecoder_IsValid
](
#oh_audiodecoder_isvalid
)
(
OH_AVCodec
\*
codec, bool
\*
isValid) | 检查当前解码器实例是否有效,可用于后台故障恢复或应用程序从后台恢复时检测解码器有效状态。 |
## 枚举类型说明
### AudioChannelLayout
```
enum OHOS::Media::AudioChannelLayout : uint64_t
```
**描述:**
音频声道数类型, 将用户申请的解码器输出格式表示为编解码器的声道类型。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
**起始版本:**
10
### AudioChannelSet
```
enum OHOS::Media::AudioChannelSet : uint64_t
```
**描述:**
音频声道数集合, 将每一个声道数映射为int64的变量。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
**起始版本:**
10
| 枚举值 | 描述 |
| -------- | -------- |
|
[
OH_AudioDecoder_CreateByMime
](
#oh_audiodecoder_createbymime
)
(
const
char
\*
mime) | 通过mime类型创建一个音频解码器实例,大多数情况下推荐使用该接口。 |
|
[
OH_AudioDecoder_CreateByName
](
#oh_audiodecoder_createbyname
)
(
const
char
\*
name) | 通过音频解码器名称创建一个音频解码器实例,使用这个接口的前提是必须清楚解码器准确的名称。 |
|
[
OH_AudioDecoder_Destroy
](
#oh_audiodecoder_destroy
)
(
OH_AVCodec
\*
codec) | 清空解码器内部资源,并销毁解码器实例 |
|
[
OH_AudioDecoder_SetCallback
](
#oh_audiodecoder_setcallback
)
(
OH_AVCodec
\*
codec,
[
OH_AVCodecAsyncCallback
](
_o_h___a_v_codec_async_callback.md
)
callback, void
\*
userData) | 设置异步回调函数,使得你的应用能够响应音频解码器产生的事件,该接口被调用必须是在Prepare被调用前。 |
|
[
OH_AudioDecoder_Configure
](
#oh_audiodecoder_configure
)
(
OH_AVCodec
\*
codec, OH_AVFormat
\*
format) | 配置音频解码器,典型地,需要配置被解码音频轨道的描述信息,这些信息能够从容器中提取出来, 该接口被调用必须是在Prepare被调用前。 |
|
[
OH_AudioDecoder_Prepare
](
#oh_audiodecoder_prepare
)
(
OH_AVCodec
\*
codec) | 准备解码器内部资源,调用该接口前必须先调用Configure接口。 |
|
[
OH_AudioDecoder_Start
](
#oh_audiodecoder_start
)
(
OH_AVCodec
\*
codec) | 启动解码器,该接口必须在已经Prepare成功后调用。 在启动成功后,解码器将开始报告
[
OH_AVCodecOnNeedInputData
](
_codec_base.md#oh_avcodeconneedinputdata
)
事件。 |
|
[
OH_AudioDecoder_Stop
](
#oh_audiodecoder_stop
)
(
OH_AVCodec
\*
codec) | 停止解码器。在停止后可通过Start重新进入Started状态,但需要注意的是,若先前给解码器输入过 Codec-Specific-Data,则需要重新输入。 |
|
[
OH_AudioDecoder_Flush
](
#oh_audiodecoder_flush
)
(
OH_AVCodec
\*
codec) | 清空解码器内部缓存的输入输出数据。在该接口被调用后,所有先前通过异步回调报告的Buffer的索引都将 失效,确保不要再访问这些索引对应的Buffers。 |
|
[
OH_AudioDecoder_Reset
](
#oh_audiodecoder_reset
)
(
OH_AVCodec
\*
codec) | 重置解码器。如需继续解码工作,需要重新调用Configure接口以配置该解码器实例。 |
|
[
OH_AudioDecoder_GetOutputDescription
](
#oh_audiodecoder_getoutputdescription
)
(
OH_AVCodec
\*
codec) | 获取该解码器输出数据的描述信息,需要注意的是,返回值所指向的OH_AVFormat实例需调用者手动释放。 |
|
[
OH_AudioDecoder_SetParameter
](
#oh_audiodecoder_setparameter
)
(
OH_AVCodec
\*
codec, OH_AVFormat
\*
format) | 向解码器设置动态参数,注意:该接口仅能在解码器被启动后调用,同时错误的参数设置,可能会导致解码失败。 |
|
[
OH_AudioDecoder_PushInputData
](
#oh_audiodecoder_pushinputdata
)
(
OH_AVCodec
\*
codec, uint32_t index,
[
OH_AVCodecBufferAttr
](
_o_h___a_v_codec_buffer_attr.md
)
attr) | 将填充好数据的输入Buffer提交给音频解码器。
[
OH_AVCodecOnNeedInputData
](
_codec_base.md#oh_avcodeconneedinputdata
)
回调会报告可用的输入 Buffer及对应的索引值。一旦指定索引的Buffer被提交给解码器,直到再一次收到
[
OH_AVCodecOnNeedInputData
](
_codec_base.md#oh_avcodeconneedinputdata
)
回调报告相同索引的Buffer可用前,该Buffer都不可以再次被访问。另外,对于部分解码器,要求在最开始给解码器输入 Codec-Specific-Data,用以初始化解码器的解码过程。 |
|
[
OH_AudioDecoder_FreeOutputData
](
#oh_audiodecoder_freeoutputdata
)
(
OH_AVCodec
\*
codec, uint32_t index) | 将处理结束的输出Buffer交还给解码器。 |
| AMBISONICS_ACN1 | 零阶立体声声道数 0 |
| AMBISONICS_ACN2 | 一阶立体声声道数 1 |
| AMBISONICS_ACN3 | 一阶立体声声道数 2 |
| AMBISONICS_W | 一阶立体声声道数 3 |
| AMBISONICS_Y | 同于零阶立体声声道数 0 |
| AMBISONICS_Z | 同于一阶立体声声道数 1 |
| AMBISONICS_X | 同于一阶立体声声道数 2 |
| AMBISONICS_ACN4 | 同于一阶立体声声道数 3 |
| AMBISONICS_ACN5 | 二阶立体声声道数 4 |
| AMBISONICS_ACN6 | 二阶立体声声道数 5 |
| AMBISONICS_ACN7 | 二阶立体声声道数 6 |
| AMBISONICS_ACN8 | 二阶立体声声道数 7 |
| AMBISONICS_ACN9 | 二阶立体声声道数 8 |
| AMBISONICS_ACN10 | 三阶立体声声道数 9 |
| AMBISONICS_ACN11 | 三阶立体声声道数 10 |
| AMBISONICS_ACN12 | 三阶立体声声道数 11 |
| AMBISONICS_ACN13 | 三阶立体声声道数 12 |
| AMBISONICS_ACN14 | 三阶立体声声道数 13 |
| AMBISONICS_ACN15 | 三阶立体声声道数 14 |
## 函数说明
...
...
@@ -47,334 +120,439 @@ AudioDecoder模块提供用于音频解码功能的函数。该模块在部分
```
OH_AVErrCode OH_AudioDecoder_Configure (OH_AVCodec * codec, OH_AVFormat * format )
OH_AVErrCode OH
OS::Media::OH
_AudioDecoder_Configure (OH_AVCodec * codec, OH_AVFormat * format )
```
**描述:**
配置音频解码器,典型地,需要配置被解码音频轨道的描述信息,这些信息能够从容器中提取出来, 该接口被调用必须是在Prepare被调用前。
@syscap SystemCapability.Multimedia.Media.AudioDecoder
**描述:**
要配置音频解码器,通常需要配置从容器中提取的音频描述信息。
在调用Prepare之前,必须调用此接口。
**参数:**
\@
syscap SystemCapability.Multimedia.Media.AudioDecoder
| 名称 | 描述 |
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针
|
| format | 指向OH_AVFormat的指针,
用以给出待解码音频轨道的描述信息
|
| codec | 指向OH_AVCodec实例的指针
。
|
| format | 指向OH_AVFormat的指针,
给出要解码的音频轨道的描述。
|
**返回
:
**
**返回
:
**
执行成功返回AV_ERR_OK
如果执行成功,则返回AV_ERR_OK,否则返回特定错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
执行失败返回具体错误码,参考
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
**起始版本:**
9
### OH_AudioDecoder_CreateByMime()
```
OH_AVCodec* OH_AudioDecoder_CreateByMime (const char * mime)
OH_AVCodec* OH
OS::Media::OH
_AudioDecoder_CreateByMime (const char * mime)
```
**描述:**
通过mime类型创建一个音频解码器实例,大多数情况下推荐使用该接口。
@syscap SystemCapability.Multimedia.Media.AudioDecoder
**描述:**
根据MIME类型创建音频解码器实例,大多数场景下建议使用此方式。
\@
syscap SystemCapability.Multimedia.Media.AudioDecoder
**参数
:
**
**参数
:
**
| 名称 | 描述 |
| 名称 | 描述 |
| -------- | -------- |
| mime |
mime类型描述字符串,参考
[
OH_AVCODEC_MIMETYPE_AUDIO_AAC
](
_codec_base.md#oh_avcodec_mimetype_audio_aac
)
|
| mime |
MIME类型描述字符串,请参阅
**AVCODEC_MIME_TYPE**
。
|
**返回
:
**
**返回
:
**
返回一个指向OH_AVCodec实例的指针
返回指向OH_AVCodec实例的指针。
**起始版本:**
9
### OH_AudioDecoder_CreateByName()
```
OH_AVCodec* OH_AudioDecoder_CreateByName (const char * name)
OH_AVCodec* OH
OS::Media::OH
_AudioDecoder_CreateByName (const char * name)
```
**描述:**
通过音频解码器名称创建一个音频解码器实例,使用这个接口的前提是必须清楚解码器准确的名称。
@syscap SystemCapability.Multimedia.Media.AudioDecoder
**描述:**
**参数:**
通过音频解码器名称创建音频解码器实例,使用此接口的前提是知道解码器的确切名称。
| 名称 | 描述 |
\@
syscap SystemCapability.Multimedia.Media.AudioDecoder
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| name | 音频解码器名称
|
| name | 音频解码器名称
。
|
**返回
:
**
**返回
:
**
返回一个指向OH_AVCodec实例的指针
返回指向OH_AVCodec实例的指针。
**起始版本:**
9
### OH_AudioDecoder_Destroy()
```
OH_AVErrCode OH_AudioDecoder_Destroy (OH_AVCodec * codec)
OH_AVErrCode OH
OS::Media::OH
_AudioDecoder_Destroy (OH_AVCodec * codec)
```
**描述:**
清空解码器内部资源,并销毁解码器实例
@syscap SystemCapability.Multimedia.Media.AudioDecoder
**描述:**
清理解码器内部资源,销毁解码器实例。
\@
syscap SystemCapability.Multimedia.Media.AudioDecoder
**参数
:
**
**参数
:
**
| 名称 | 描述 |
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针
|
| codec | 指向OH_AVCodec实例的指针
。
|
**返回
:
**
**返回
:
**
执行成功返回AV_ERR_OK
如果执行成功,则返回AV_ERR_OK,否则返回特定错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
执行失败返回具体错误码,参考
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
**起始版本:**
9
### OH_AudioDecoder_Flush()
```
OH_AVErrCode OH_AudioDecoder_Flush (OH_AVCodec * codec)
OH_AVErrCode OH
OS::Media::OH
_AudioDecoder_Flush (OH_AVCodec * codec)
```
**描述:**
清空解码器内部缓存的输入输出数据。在该接口被调用后,所有先前通过异步回调报告的Buffer的索引都将 失效,确保不要再访问这些索引对应的Buffers。
@syscap SystemCapability.Multimedia.Media.AudioDecoder
**描述:**
清除解码器中缓存的输入和输出数据。
**参数:**
调用此接口后,以前通过异步回调上报的所有缓冲区索引都将失效,请确保不要访问这些索引对应的缓冲区。
| 名称 | 描述 |
\@
syscap SystemCapability.Multimedia.Media.AudioDecoder
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针
|
| codec | 指向OH_AVCodec实例的指针
。
|
**返回
:
**
**返回
:
**
执行成功返回AV_ERR_OK
如果执行成功,则返回AV_ERR_OK,否则返回特定错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
**起始版本:**
执行失败返回具体错误码,参考
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
9
### OH_AudioDecoder_FreeOutputData()
```
OH_AVErrCode OH_AudioDecoder_FreeOutputData (OH_AVCodec * codec, uint32_t index )
OH_AVErrCode OH
OS::Media::OH
_AudioDecoder_FreeOutputData (OH_AVCodec * codec, uint32_t index )
```
**描述:**
将处理结束的输出Buffer交还给解码器。
@syscap SystemCapability.Multimedia.Media.AudioDecoder
**描述:**
将处理后的输出缓冲区返回给解码器。
**参数:**
\@
syscap SystemCapability.Multimedia.Media.AudioDecoder
| 名称 | 描述 |
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针
|
| index | 输出
Buffer对应的索引值
|
| codec | 指向OH_AVCodec实例的指针
。
|
| index | 输出
缓冲区Buffer对应的索引值。
|
**返回
:
**
**返回
:
**
执行成功返回AV_ERR_OK
如果执行成功,则返回AV_ERR_OK,否则返回特定错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
执行失败返回具体错误码,参考
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
**起始版本:**
9
### OH_AudioDecoder_GetOutputDescription()
```
OH_AVFormat* OH_AudioDecoder_GetOutputDescription (OH_AVCodec * codec)
OH_AVFormat* OH
OS::Media::OH
_AudioDecoder_GetOutputDescription (OH_AVCodec * codec)
```
**描述:**
获取该解码器输出数据的描述信息,需要注意的是,返回值所指向的OH_AVFormat实例需调用者手动释放。
@syscap SystemCapability.Multimedia.Media.AudioDecoder
**描述:**
获取解码器输出数据的描述信息,详细信息请参见
**OH_AVFormat**
。 需要注意的是,返回值所指向的OH_AVFormat实例的生命周期需要调用者手动释放。
**参数:**
\@
syscap SystemCapability.Multimedia.Media.AudioDecoder
| 名称 | 描述 |
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针 |
| codec | 指向OH_AVCodec实例的指针。 |
**返回:**
返回OH_AVFormat句柄指针,生命周期将使用下一个GetOutputDescription 刷新,或使用OH_AVCodec销毁。
**起始版本:**
9
### OH_AudioDecoder_IsValid()
```
OH_AVErrCode OHOS::Media::OH_AudioDecoder_IsValid (OH_AVCodec * codec, bool * isValid )
```
**描述:**
**返回:**
检查当前解码器实例是否有效,可用于后台故障恢复或应用程序从后台恢复时检测解码器有效状态。
返回OH_AVFormat句柄指针,需调用者手动释放;
\@
syscap SystemCapability.Multimedia.Media.AudioDecoder
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针。 |
| isValid | 指向布尔实例的指针,true:解码器实例有效,false:解码器实例无效。 |
**返回:**
如果执行成功,则返回AV_ERR_OK,否则返回特定错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
**起始版本:**
10
### OH_AudioDecoder_Prepare()
```
OH_AVErrCode OH_AudioDecoder_Prepare (OH_AVCodec * codec)
OH_AVErrCode OH
OS::Media::OH
_AudioDecoder_Prepare (OH_AVCodec * codec)
```
**描述:**
准备解码器内部资源,调用该接口前必须先调用Configure接口。
@syscap SystemCapability.Multimedia.Media.AudioDecoder
**描述:**
**参数:**
准备解码器的内部资源,在调用此接口之前必须调用Configure接口。
| 名称 | 描述 |
\@
syscap SystemCapability.Multimedia.Media.AudioDecoder
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针
|
| codec | 指向OH_AVCodec实例的指针
。
|
**返回
:
**
**返回
:
**
执行成功返回AV_ERR_OK
如果执行成功,则返回AV_ERR_OK,否则返回特定错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
**起始版本:**
执行失败返回具体错误码,参考
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
9
### OH_AudioDecoder_PushInputData()
```
OH_AVErrCode OH_AudioDecoder_PushInputData (OH_AVCodec * codec, uint32_t index, OH_AVCodecBufferAttr attr )
OH_AVErrCode OH
OS::Media::OH
_AudioDecoder_PushInputData (OH_AVCodec * codec, uint32_t index, OH_AVCodecBufferAttr attr )
```
**描述:**
将填充好数据的输入Buffer提交给音频解码器。
[
OH_AVCodecOnNeedInputData
](
_codec_base.md#oh_avcodeconneedinputdata
)
回调会报告可用的输入 Buffer及对应的索引值。一旦指定索引的Buffer被提交给解码器,直到再一次收到
[
OH_AVCodecOnNeedInputData
](
_codec_base.md#oh_avcodeconneedinputdata
)
回调报告相同索引的Buffer可用前,该Buffer都不可以再次被访问。另外,对于部分解码器,要求在最开始给解码器输入 Codec-Specific-Data,用以初始化解码器的解码过程。
@syscap SystemCapability.Multimedia.Media.AudioDecoder
**描述:**
将填充有数据的输入缓冲区提交给音频解码器。
**OH_AVCodecOnNeedInputData**
回调将报告可用的输入缓冲区和相应的索引值。一旦具有指定索引的缓冲区提交到音频解码器,则无法再次访问此缓冲区, 直到再次收到
**OH_AVCodecOnNeedInputData**
回调,收到相同索引时此缓冲区才可使用。 此外,对于某些解码器,需要在开始时向解码器输入特定配置参数,以初始化解码器的解码过程。
\@
syscap SystemCapability.Multimedia.Media.AudioDecoder
**参数
:
**
**参数
:
**
| 名称 | 描述 |
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针
|
| index | 输入
Buffer对应的索引值
|
| attr | 描述
该Buffer内所包含数据的信息
|
| codec | 指向OH_AVCodec实例的指针
。
|
| index | 输入
缓冲区Buffer对应的索引值。
|
| attr | 描述
缓冲区中包含的数据的信息。
|
**返回
:
**
**返回
:
**
执行成功返回AV_ERR_OK
如果执行成功,则返回AV_ERR_OK,否则返回特定错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
执行失败返回具体错误码,参考
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
**起始版本:**
9
### OH_AudioDecoder_Reset()
```
OH_AVErrCode OH_AudioDecoder_Reset (OH_AVCodec * codec)
OH_AVErrCode OH
OS::Media::OH
_AudioDecoder_Reset (OH_AVCodec * codec)
```
**描述:**
重置解码器。如需继续解码工作,需要重新调用Configure接口以配置该解码器实例。
@syscap SystemCapability.Multimedia.Media.AudioDecoder
**描述:**
重置解码器。如果要继续解码,需要再次调用Configure接口配置解码器实例。
**参数:**
\@
syscap SystemCapability.Multimedia.Media.AudioDecoder
| 名称 | 描述 |
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针 |
| codec | 指向OH_AVCodec实例的指针。 |
**返回:**
**返回:**
如果执行成功,则返回AV_ERR_OK,否则返回特定错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。。
执行成功返回AV_ERR_OK
**起始版本:**
执行失败返回具体错误码,参考
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
9
### OH_AudioDecoder_SetCallback()
```
OH_AVErrCode OH_AudioDecoder_SetCallback (OH_AVCodec * codec, OH_AVCodecAsyncCallback callback, void * userData )
OH_AVErrCode OH
OS::Media::OH
_AudioDecoder_SetCallback (OH_AVCodec * codec, OH_AVCodecAsyncCallback callback, void * userData )
```
**描述:**
设置异步回调函数,使得你的应用能够响应音频解码器产生的事件,该接口被调用必须是在Prepare被调用前。
@syscap SystemCapability.Multimedia.Media.AudioDecoder
**描述:**
**参数:**
设置异步回调函数,使您的应用程序可以响应音频解码器生成的事件。
| 名称 | 描述 |
在调用Prepare之前,必须调用此接口。
\@
syscap SystemCapability.Multimedia.Media.AudioDecoder
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针 |
| callback | 一个包含所有回调函数的集合体,参考
[
OH_AVCodecAsyncCallback
](
_o_h___a_v_codec_async_callback.md
)
|
| userData | 用户特定数据 |
| codec | 指向OH_AVCodec实例的指针。 |
| callback | 所有回调函数的集合,请参见
**OH_AVCodecAsyncCallback**
。 |
| userData | 用户特定数据。 |
**返回:**
**返回:**
如果执行成功,则返回AV_ERR_OK,否则返回特定错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
执行成功返回AV_ERR_OK
**起始版本:**
执行失败返回具体错误码,参考
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
9
### OH_AudioDecoder_SetParameter()
```
OH_AVErrCode OH_AudioDecoder_SetParameter (OH_AVCodec * codec, OH_AVFormat * format )
OH_AVErrCode OH
OS::Media::OH
_AudioDecoder_SetParameter (OH_AVCodec * codec, OH_AVFormat * format )
```
**描述:**
向解码器设置动态参数,注意:该接口仅能在解码器被启动后调用,同时错误的参数设置,可能会导致解码失败。
@syscap SystemCapability.Multimedia.Media.AudioDecoder
**描述:**
配置解码器的动态参数。
注意,该接口必须在解码器启动后才能调用。另外,参数配置错误可能会导致解码失败。
**参数:**
\@
syscap SystemCapability.Multimedia.Media.AudioDecoder
| 名称 | 描述 |
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针 |
| format | OH_AVFormat句柄指针 |
| codec | 指向OH_AVCodec实例的指针。 |
| format | OH_AVFormat句柄指针。 |
**返回:**
**返回:**
如果执行成功,则返回AV_ERR_OK,否则返回特定错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
执行成功返回AV_ERR_OK
**起始版本:**
执行失败返回具体错误码,参考
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
9
### OH_AudioDecoder_Start()
```
OH_AVErrCode OH_AudioDecoder_Start (OH_AVCodec * codec)
OH_AVErrCode OH
OS::Media::OH
_AudioDecoder_Start (OH_AVCodec * codec)
```
**描述:**
启动解码器,该接口必须在已经Prepare成功后调用。 在启动成功后,解码器将开始报告
[
OH_AVCodecOnNeedInputData
](
_codec_base.md#oh_avcodeconneedinputdata
)
事件。
@syscap SystemCapability.Multimedia.Media.AudioDecoder
**描述:**
**参数:**
Prepare成功后调用此接口启动解码器。
| 名称 | 描述 |
启动后,解码器将开始上报OH_AVCodecOnNeedInputData事件。
\@
syscap SystemCapability.Multimedia.Media.AudioDecoder
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针 |
| codec | 指向OH_AVCodec实例的指针。 |
**返回:**
**返回:**
如果执行成功,则返回AV_ERR_OK,否则返回特定错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
执行成功返回AV_ERR_OK
**起始版本:**
执行失败返回具体错误码,参考
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
9
### OH_AudioDecoder_Stop()
```
OH_AVErrCode OH_AudioDecoder_Stop (OH_AVCodec * codec)
OH_AVErrCode OH
OS::Media::OH
_AudioDecoder_Stop (OH_AVCodec * codec)
```
**描述:**
停止解码器。在停止后可通过Start重新进入Started状态,但需要注意的是,若先前给解码器输入过 Codec-Specific-Data,则需要重新输入。
@syscap SystemCapability.Multimedia.Media.AudioDecoder
**描述:**
停止解码器。
停止后,您可以通过Start重新进入已启动状态,但需要注意的是, 如果解码器之前已输入数据,则需要重新输入解码器数据。
**参数:**
\@
syscap SystemCapability.Multimedia.Media.AudioDecoder
| 名称 | 描述 |
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针 |
| codec | 指向OH_AVCodec实例的指针。 |
**返回:**
**返回:**
如果执行成功,则返回AV_ERR_OK,否则返回特定错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
执行成功返回AV_ERR_OK
**起始版本:**
执行失败返回具体错误码,参考
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
9
zh-cn/application-dev/reference/native-apis/_audio_encoder.md
浏览文件 @
dc2cd5e0
...
...
@@ -3,41 +3,44 @@
## 概述
AudioEncoder模块提供用于音频编码
功能
的函数。该模块在部分设备上可能不支持,可以通过
[
CanIUse
](
../syscap.md
)
接口确认。
AudioEncoder模块提供用于音频编码的函数。该模块在部分设备上可能不支持,可以通过
[
CanIUse
](
../syscap.md
)
接口确认。
@syscap SystemCapability.Multimedia.Media.AudioEncoder
\
@
syscap SystemCapability.Multimedia.Media.AudioEncoder
**起始版本:**
9
## 汇总
### 文件
| 名称 | 描述 |
| 名称 | 描述 |
| -------- | -------- |
|
[
native_avcodec_audioencoder.h
](
native__avcodec__audioencoder_8h.md
)
| 声明用于音频编码的Native API。
<br>
引用文件:
<multimedia
/
player_framework
/
native_avcodec_audioencoder.h
>
|
### 函数
| 名称 | 描述 |
| 名称 | 描述 |
| -------- | -------- |
|
[
OH_AudioEncoder_CreateByMime
](
#oh_audioencoder_createbymime
)
(
const
char
\*
mime) | 通过mime类型创建一个音频编码器实例,大多数情况下推荐使用该接口。 |
|
[
OH_AudioEncoder_CreateByName
](
#oh_audioencoder_createbyname
)
(
const
char
\*
name) | 通过音频编码器名称创建一个音频编码器实例,使用这个接口的前提是必须清楚编码器准确的名称。 |
|
[
OH_AudioEncoder_Destroy
](
#oh_audioencoder_destroy
)
(
OH_AVCodec
\*
codec) | 清空编码器内部资源,并销毁编码器实例。 |
|
[
OH_AudioEncoder_SetCallback
](
#oh_audioencoder_setcallback
)
(
OH_AVCodec
\*
codec,
[
OH_AVCodecAsyncCallback
](
_o_h___a_v_codec_async_callback.md
)
callback, void
\*
userData) | 设置异步回调函数,使得你的应用能够响应音频编码器产生的事件,该接口被调用必须是在Prepare被调用前。 |
|
[
OH_AudioEncoder_Configure
](
#oh_audioencoder_configure
)
(
OH_AVCodec
\*
codec, OH_AVFormat
\*
format) | 配置音频编码器,典型地,需要配置被编码音频轨道的描述信息,该接口被调用必须是在Prepare被调用前。 |
|
[
OH_AudioEncoder_Prepare
](
#oh_audioencoder_prepare
)
(
OH_AVCodec
\*
codec) | 准备编码器内部资源,调用该接口前必须先调用Configure接口。 |
|
[
OH_AudioEncoder_Start
](
#oh_audioencoder_start
)
(
OH_AVCodec
\*
codec) | 启动编码器,该接口必须在已经Prepare成功后调用。 在启动成功后,编码器将开始报告
[
OH_AVCodecOnNeedInputData
](
_codec_base.md#oh_avcodeconneedinputdata
)
事件。 |
|
[
OH_AudioEncoder_Stop
](
#oh_audioencoder_stop
)
(
OH_AVCodec
\*
codec) | 停止编码器。在停止后可通过Start重新进入Started状态。 |
|
[
OH_AudioEncoder_Flush
](
#oh_audioencoder_flush
)
(
OH_AVCodec
\*
codec) | 清空编码器内部缓存的输入输出数据。在该接口被调用后,所有先前通过异步回调报告的Buffer的索引都将 失效,确保不要再访问这些索引对应的Buffers。 |
|
[
OH_AudioEncoder_Reset
](
#oh_audioencoder_reset
)
(
OH_AVCodec
\*
codec) | 重置编码器。如需继续编码工作,需要重新调用Configure接口以配置该编码器实例。 |
|
[
OH_AudioEncoder_GetOutputDescription
](
#oh_audioencoder_getoutputdescription
)
(
OH_AVCodec
\*
codec) | 获取该编码器输出数据的描述信息,需要注意的是,返回值所指向的OH_AVFormat实例需调用者手动释放。 |
|
[
OH_AudioEncoder_SetParameter
](
#oh_audioencoder_setparameter
)
(
OH_AVCodec
\*
codec, OH_AVFormat
\*
format) | 向编码器设置动态参数,注意:该接口仅能在编码器被启动后调用,同时错误的参数设置,可能会导致编码失败。 |
|
[
OH_AudioEncoder_PushInputData
](
#oh_audioencoder_pushinputdata
)
(
OH_AVCodec
\*
codec, uint32_t index,
[
OH_AVCodecBufferAttr
](
_o_h___a_v_codec_buffer_attr.md
)
attr) | 将填充好数据的输入Buffer提交给音频编码器。
[
OH_AVCodecOnNeedInputData
](
_codec_base.md#oh_avcodeconneedinputdata
)
回调会报告可用的输入 Buffer及对应的索引值。一旦指定索引的Buffer被提交给编码器,直到再一次收到
[
OH_AVCodecOnNeedInputData
](
_codec_base.md#oh_avcodeconneedinputdata
)
回调报告相同索引的Buffer可用前,该Buffer都不可以再次被访问。 |
|
[
OH_AudioEncoder_FreeOutputData
](
#oh_audioencoder_freeoutputdata
)
(
OH_AVCodec
\*
codec, uint32_t index) | 将处理结束的输出Buffer交还给编码器。 |
|
\*
[
OHOS::Media::OH_AudioEncoder_CreateByMime
](
#oh_audioencoder_createbymime
)
(
const
char
\*
mime) | 根据MIME类型创建音频编码器实例,大多数场景下建议使用此方式。 |
|
\*
[
OHOS::Media::OH_AudioEncoder_CreateByName
](
#oh_audioencoder_createbyname
)
(
const
char
\*
name) | 通过音频编码器名称创建音频编码器实例,使用此接口的前提是知道编码器的确切名称。 |
|
[
OHOS::Media::OH_AudioEncoder_Destroy
](
#oh_audioencoder_destroy
)
(
OH_AVCodec
\*
codec) | 清理编码器内部资源,销毁编码器实例。 |
|
[
OHOS::Media::OH_AudioEncoder_SetCallback
](
#oh_audioencoder_setcallback
)
(
OH_AVCodec
\*
codec, OH_AVCodecAsyncCallback callback, void
\*
userData) | 设置异步回调函数,使您的应用程序可以响应音频编码器生成的事件。 |
|
[
OHOS::Media::OH_AudioEncoder_Configure
](
#oh_audioencoder_configure
)
(
OH_AVCodec
\*
codec, OH_AVFormat
\*
format) | 要配置音频编码器,通常需要配置编码后的音轨的描述信息。 |
|
[
OHOS::Media::OH_AudioEncoder_Prepare
](
#oh_audioencoder_prepare
)
(
OH_AVCodec
\*
codec) | 准备编码器的内部资源,在调用此接口之前必须调用Configure接口。 |
|
[
OHOS::Media::OH_AudioEncoder_Start
](
#oh_audioencoder_start
)
(
OH_AVCodec
\*
codec) | Prepare成功后调用此接口启动编码器。 |
|
[
OHOS::Media::OH_AudioEncoder_Stop
](
#oh_audioencoder_stop
)
(
OH_AVCodec
\*
codec) | 停止编码器。 |
|
[
OHOS::Media::OH_AudioEncoder_Flush
](
#oh_audioencoder_flush
)
(
OH_AVCodec
\*
codec) | 清除编码器中缓存的输入和输出数据。 |
|
[
OHOS::Media::OH_AudioEncoder_Reset
](
#oh_audioencoder_reset
)
(
OH_AVCodec
\*
codec) | 重置编码器。 |
|
\*
[
OHOS::Media::OH_AudioEncoder_GetOutputDescription
](
#oh_audioencoder_getoutputdescription
)
(
OH_AVCodec
\*
codec) | 获取编码器输出数据的描述信息,详细信息请参见
[
OH_AVFormat
](
native__avformat_8h.md
)
。 |
|
[
OHOS::Media::OH_AudioEncoder_SetParameter
](
#oh_audioencoder_setparameter
)
(
OH_AVCodec
\*
codec, OH_AVFormat
\*
format) | 配置编码器的动态参数。 |
|
[
OHOS::Media::OH_AudioEncoder_PushInputData
](
#oh_audioencoder_pushinputdata
)
(
OH_AVCodec
\*
codec, uint32_t index, OH_AVCodecBufferAttr attr) | 将填充有数据的输入缓冲区提交给音频编码器。 |
|
[
OHOS::Media::OH_AudioEncoder_FreeOutputData
](
#oh_audioencoder_freeoutputdata
)
(
OH_AVCodec
\*
codec, uint32_t index) | 将处理后的输出缓冲区返回给编码器。 |
|
[
OHOS::Media::OH_AudioEncoder_IsValid
](
#oh_audioencoder_isvalid
)
(
OH_AVCodec
\*
codec, bool
\*
isValid) | 检查当前编码器实例是否有效,可用于后台故障恢复或应用程序从后台恢复时检测编码器有效状态。 |
## 函数说明
...
...
@@ -47,334 +50,435 @@ AudioEncoder模块提供用于音频编码功能的函数。该模块在部分
```
OH_AVErrCode OH_AudioEncoder_Configure (OH_AVCodec * codec, OH_AVFormat * format )
OH_AVErrCode OH
OS::Media::OH
_AudioEncoder_Configure (OH_AVCodec * codec, OH_AVFormat * format )
```
**描述:**
配置音频编码器,典型地,需要配置被编码音频轨道的描述信息,该接口被调用必须是在Prepare被调用前。
@syscap SystemCapability.Multimedia.Media.AudioEncoder
**描述:**
要配置音频编码器,通常需要配置编码后的音轨的描述信息。
在调用Prepare之前,必须调用此接口。
**参数:**
\@
syscap SystemCapability.Multimedia.Media.AudioEncoder
| 名称 | 描述 |
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针
|
| format |
OH_AVFormat句柄指针
|
| codec | 指向OH_AVCodec实例的指针
。
|
| format |
指向OH_AVFormat的指针,给出要编码的音频轨道的描述。
|
**返回
:
**
**返回
:
**
执行成功返回AV_ERR_OK
如果执行成功,则返回AV_ERR_OK,否则返回特定错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
执行失败返回具体错误码,参考
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
**起始版本:**
9
### OH_AudioEncoder_CreateByMime()
```
OH_AVCodec* OH_AudioEncoder_CreateByMime (const char * mime)
OH_AVCodec* OH
OS::Media::OH
_AudioEncoder_CreateByMime (const char * mime)
```
**描述:**
通过mime类型创建一个音频编码器实例,大多数情况下推荐使用该接口。
@syscap SystemCapability.Multimedia.Media.AudioEncoder
**描述:**
根据MIME类型创建音频编码器实例,大多数场景下建议使用此方式。
\@
syscap SystemCapability.Multimedia.Media.AudioEncoder
**参数
:
**
**参数
:
**
| 名称 | 描述 |
| 名称 | 描述 |
| -------- | -------- |
| mime |
mime类型描述字符串,参考
[
OH_AVCODEC_MIMETYPE_AUDIO_AAC
](
_codec_base.md#oh_avcodec_mimetype_audio_aac
)
|
| mime |
MIME类型描述字符串,请参阅
**AVCODEC_MIME_TYPE**
。
|
**返回
:
**
**返回
:
**
返回一个指向OH_AVCodec实例的指针
返回指向OH_AVCodec实例的指针。
**起始版本:**
9
### OH_AudioEncoder_CreateByName()
```
OH_AVCodec* OH_AudioEncoder_CreateByName (const char * name)
OH_AVCodec* OH
OS::Media::OH
_AudioEncoder_CreateByName (const char * name)
```
**描述:**
通过音频编码器名称创建一个音频编码器实例,使用这个接口的前提是必须清楚编码器准确的名称。
@syscap SystemCapability.Multimedia.Media.AudioEncoder
**描述:**
通过音频编码器名称创建音频编码器实例,使用此接口的前提是知道编码器的确切名称。
\@
syscap SystemCapability.Multimedia.Media.AudioEncoder
**参数
:
**
**参数
:
**
| 名称 | 描述 |
| 名称 | 描述 |
| -------- | -------- |
| name | 音频编码器名称
|
| name | 音频编码器名称
。
|
**返回:**
**返回:**
返回指向OH_AVCodec实例的指针。
**起始版本:**
返回一个指向OH_AVCodec实例的指针
9
### OH_AudioEncoder_Destroy()
```
OH_AVErrCode OH_AudioEncoder_Destroy (OH_AVCodec * codec)
OH_AVErrCode OH
OS::Media::OH
_AudioEncoder_Destroy (OH_AVCodec * codec)
```
**描述:**
清空编码器内部资源,并销毁编码器实例。
@syscap SystemCapability.Multimedia.Media.AudioEncoder
**描述:**
清理编码器内部资源,销毁编码器实例。
\@
syscap SystemCapability.Multimedia.Media.AudioEncoder
**参数
:
**
**参数
:
**
| 名称 | 描述 |
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针
|
| codec | 指向OH_AVCodec实例的指针
。
|
**返回
:
**
**返回
:
**
执行成功返回AV_ERR_OK
如果执行成功,则返回AV_ERR_OK,否则返回特定错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
执行失败返回具体错误码,参考
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
**起始版本:**
9
### OH_AudioEncoder_Flush()
```
OH_AVErrCode OH_AudioEncoder_Flush (OH_AVCodec * codec)
OH_AVErrCode OH
OS::Media::OH
_AudioEncoder_Flush (OH_AVCodec * codec)
```
**描述:**
清空编码器内部缓存的输入输出数据。在该接口被调用后,所有先前通过异步回调报告的Buffer的索引都将 失效,确保不要再访问这些索引对应的Buffers。
@syscap SystemCapability.Multimedia.Media.AudioEncoder
**描述:**
**参数:**
清除编码器中缓存的输入和输出数据。
| 名称 | 描述 |
调用此接口后,以前通过异步回调上报的所有缓冲区 索引都将失效,请确保不要访问这些索引对应的缓冲区。
\@
syscap SystemCapability.Multimedia.Media.AudioEncoder
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针
|
| codec | 指向OH_AVCodec实例的指针
。
|
**返回
:
**
**返回
:
**
执行成功返回AV_ERR_OK
如果执行成功,则返回AV_ERR_OK,否则返回特定错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
执行失败返回具体错误码,参考
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
**起始版本:**
9
### OH_AudioEncoder_FreeOutputData()
```
OH_AVErrCode OH_AudioEncoder_FreeOutputData (OH_AVCodec * codec, uint32_t index )
OH_AVErrCode OH
OS::Media::OH
_AudioEncoder_FreeOutputData (OH_AVCodec * codec, uint32_t index )
```
**描述:**
将处理结束的输出Buffer交还给编码器。
@syscap SystemCapability.Multimedia.Media.AudioEncoder
**描述:**
**参数:**
将处理后的输出缓冲区返回给编码器。
| 名称 | 描述 |
\@
syscap SystemCapability.Multimedia.Media.AudioEncoder
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针 |
| index | 输出Buffer对应的索引值 |
| codec | 指向OH_AVCodec实例的指针。 |
| index | 输出缓冲区Buffer对应的索引值。 |
**返回:**
**返回:**
如果执行成功,则返回AV_ERR_OK,否则返回特定错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
执行成功返回AV_ERR_OK
**起始版本:**
执行失败返回具体错误码,参考
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
9
### OH_AudioEncoder_GetOutputDescription()
```
OH_AVFormat* OH_AudioEncoder_GetOutputDescription (OH_AVCodec * codec)
OH_AVFormat* OH
OS::Media::OH
_AudioEncoder_GetOutputDescription (OH_AVCodec * codec)
```
**描述:**
获取该编码器输出数据的描述信息,需要注意的是,返回值所指向的OH_AVFormat实例需调用者手动释放。
@syscap SystemCapability.Multimedia.Media.AudioEncoder
**描述:**
获取编码器输出数据的描述信息,详细信息请参见
[
OH_AVFormat
](
native__avformat_8h.md
)
。
**参数:**
需要注意的是,返回值所指向的OH_AVFormat实例的生命周期需要调用者手动释放。
| 名称 | 描述 |
\@
syscap SystemCapability.Multimedia.Media.AudioEncoder
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针 |
| codec | 指向OH_AVCodec实例的指针。 |
**返回:**
返回OH_AVFormat句柄指针,生命周期将使用下一个GetOutputDescription 刷新,或使用OH_AVCodec销毁。
**起始版本:**
**返回:**
9
### OH_AudioEncoder_IsValid()
返回OH_AVFormat句柄指针,需调用者手动释放;
```
OH_AVErrCode OHOS::Media::OH_AudioEncoder_IsValid (OH_AVCodec * codec, bool * isValid )
```
**描述:**
检查当前编码器实例是否有效,可用于后台故障恢复或应用程序从后台恢复时检测编码器有效状态。
\@
syscap SystemCapability.Multimedia.Media.AudioEncoder
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针。 |
| isValid | 指向布尔实例的指针,true:编码器实例有效,false:编码器实例无效。 |
**返回:**
如果执行成功,则返回AV_ERR_OK,否则返回特定错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
**起始版本:**
10
### OH_AudioEncoder_Prepare()
```
OH_AVErrCode OH_AudioEncoder_Prepare (OH_AVCodec * codec)
OH_AVErrCode OH
OS::Media::OH
_AudioEncoder_Prepare (OH_AVCodec * codec)
```
**描述:**
准备编码器内部资源,调用该接口前必须先调用Configure接口。
@syscap SystemCapability.Multimedia.Media.AudioEncoder
**描述:**
准备编码器的内部资源,在调用此接口之前必须调用Configure接口。
**参数:**
\@
syscap SystemCapability.Multimedia.Media.AudioEncoder
| 名称 | 描述 |
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针 |
| codec | 指向OH_AVCodec实例的指针。 |
**返回:**
**返回:**
如果执行成功,则返回AV_ERR_OK,否则返回特定错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
执行成功返回AV_ERR_OK
**起始版本:**
执行失败返回具体错误码,参考
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
9
### OH_AudioEncoder_PushInputData()
```
OH_AVErrCode OH_AudioEncoder_PushInputData (OH_AVCodec * codec, uint32_t index, OH_AVCodecBufferAttr attr )
OH_AVErrCode OH
OS::Media::OH
_AudioEncoder_PushInputData (OH_AVCodec * codec, uint32_t index, OH_AVCodecBufferAttr attr )
```
**描述:**
将填充好数据的输入Buffer提交给音频编码器。
[
OH_AVCodecOnNeedInputData
](
_codec_base.md#oh_avcodeconneedinputdata
)
回调会报告可用的输入 Buffer及对应的索引值。一旦指定索引的Buffer被提交给编码器,直到再一次收到
[
OH_AVCodecOnNeedInputData
](
_codec_base.md#oh_avcodeconneedinputdata
)
回调报告相同索引的Buffer可用前,该Buffer都不可以再次被访问。
@syscap SystemCapability.Multimedia.Media.AudioEncoder
**描述:**
将填充有数据的输入缓冲区提交给音频编码器。
**OH_AVCodecOnNeedInputData**
回调 将报告可用的输入缓冲区和相应的索引值。一旦具有指定索引的缓冲区提交到音频编码器,则无法再次访问此缓冲区, 直到再次收到
**OH_AVCodecOnNeedInputData**
回调,收到相同索引时此缓冲区才可使用。 此外,对于某些编码器,需要在开始时向编码器输入特定配置参数,以初始化编码器的编码过程。
**参数:**
\@
syscap SystemCapability.Multimedia.Media.AudioEncoder
| 名称 | 描述 |
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针 |
| index | 输入Buffer对应的索引值 |
| attr | 描述该Buffer内所包含数据的信息 |
| codec | 指向OH_AVCodec实例的指针。 |
| index | 输入缓冲区Buffer对应的索引值。 |
| attr | 描述缓冲区中包含的数据的信息。 |
**返回:**
**返回:**
如果执行成功,则返回AV_ERR_OK,否则返回特定错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
执行成功返回AV_ERR_OK
**起始版本:**
执行失败返回具体错误码,参考
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
9
### OH_AudioEncoder_Reset()
```
OH_AVErrCode OH_AudioEncoder_Reset (OH_AVCodec * codec)
OH_AVErrCode OH
OS::Media::OH
_AudioEncoder_Reset (OH_AVCodec * codec)
```
**描述:**
重置编码器。如需继续编码工作,需要重新调用Configure接口以配置该编码器实例。
@syscap SystemCapability.Multimedia.Media.AudioEncoder
**描述:**
**参数:**
重置编码器。如果要继续编码,需要再次调用Configure接口配置编码器实例。
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针 |
\@
syscap SystemCapability.Multimedia.Media.AudioEncoder
**参数:**
**返回:**
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针。 |
执行成功返回AV_ERR_OK
**返回:**
执行失败返回具体错误码,参考
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
如果执行成功,则返回AV_ERR_OK,否则返回特定错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
### OH_AudioEncoder_SetCallback()
```
OH_AVErrCode OH_AudioEncoder_SetCallback (OH_AVCodec * codec, OH_AVCodecAsyncCallback callback, void * userData )
OH_AVErrCode OH
OS::Media::OH
_AudioEncoder_SetCallback (OH_AVCodec * codec, OH_AVCodecAsyncCallback callback, void * userData )
```
**描述:**
设置异步回调函数,使得你的应用能够响应音频编码器产生的事件,该接口被调用必须是在Prepare被调用前。
@syscap SystemCapability.Multimedia.Media.AudioEncoder
**描述:**
设置异步回调函数,使您的应用程序可以响应音频编码器生成的事件。
在调用Prepare之前,必须调用此接口。
**参数:**
\@
syscap SystemCapability.Multimedia.Media.AudioEncoder
| 名称 | 描述 |
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针 |
| callback | 一个包含所有回调函数的集合体,参考
[
OH_AVCodecAsyncCallback
](
_o_h___a_v_codec_async_callback.md
)
|
| userData | 用户特定数据 |
| codec | 指向OH_AVCodec实例的指针。 |
| callback | 所有回调函数的集合,请参见
**OH_AVCodecAsyncCallback**
。 |
| userData | 用户特定数据。 |
**返回:**
**返回:**
如果执行成功,则返回AV_ERR_OK,否则返回特定错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
执行成功返回AV_ERR_OK
**起始版本:**
执行失败返回具体错误码,参考
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
9
### OH_AudioEncoder_SetParameter()
```
OH_AVErrCode OH_AudioEncoder_SetParameter (OH_AVCodec * codec, OH_AVFormat * format )
OH_AVErrCode OH
OS::Media::OH
_AudioEncoder_SetParameter (OH_AVCodec * codec, OH_AVFormat * format )
```
**描述:**
向编码器设置动态参数,注意:该接口仅能在编码器被启动后调用,同时错误的参数设置,可能会导致编码失败。
@syscap SystemCapability.Multimedia.Media.AudioEncoder
**描述:**
配置编码器的动态参数。
注意,该接口必须在编码器启动后才能调用。另外,参数配置错误可能会导致编码失败。
**参数:**
\@
syscap SystemCapability.Multimedia.Media.AudioEncoder
| 名称 | 描述 |
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针 |
| format | OH_AVFormat句柄指针 |
| codec | 指向OH_AVCodec实例的指针。 |
| format | OH_AVFormat句柄指针。 |
**返回:**
**返回:**
如果执行成功,则返回AV_ERR_OK,否则返回特定错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
执行成功返回AV_ERR_OK
**起始版本:**
执行失败返回具体错误码,参考
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
9
### OH_AudioEncoder_Start()
```
OH_AVErrCode OH_AudioEncoder_Start (OH_AVCodec * codec)
OH_AVErrCode OH
OS::Media::OH
_AudioEncoder_Start (OH_AVCodec * codec)
```
**描述:**
启动编码器,该接口必须在已经Prepare成功后调用。 在启动成功后,编码器将开始报告
[
OH_AVCodecOnNeedInputData
](
_codec_base.md#oh_avcodeconneedinputdata
)
事件。
@syscap SystemCapability.Multimedia.Media.AudioEncoder
**描述:**
Prepare成功后调用此接口启动编码器。
启动后,编码器将开始上报OH_AVCodecOnNeedInputData事件。
**参数:**
\@
syscap SystemCapability.Multimedia.Media.AudioEncoder
| 名称 | 描述 |
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针 |
| codec | 指向OH_AVCodec实例的指针。 |
**返回:**
**返回:**
如果执行成功,则返回AV_ERR_OK,否则返回特定错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
执行成功返回AV_ERR_OK
**起始版本:**
执行失败返回具体错误码,参考
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
9
### OH_AudioEncoder_Stop()
```
OH_AVErrCode OH_AudioEncoder_Stop (OH_AVCodec * codec)
OH_AVErrCode OH
OS::Media::OH
_AudioEncoder_Stop (OH_AVCodec * codec)
```
**描述:**
停止编码器。在停止后可通过Start重新进入Started状态。
@syscap SystemCapability.Multimedia.Media.AudioEncoder
**描述:**
停止编码器。停止后,您可以通过Start重新进入已启动状态。
\@
syscap SystemCapability.Multimedia.Media.AudioEncoder
**参数
:
**
**参数
:
**
| 名称 | 描述 |
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针
|
| codec | 指向OH_AVCodec实例的指针
。
|
**返回
:
**
**返回
:
**
执行成功返回AV_ERR_OK
如果执行成功,则返回AV_ERR_OK,否则返回特定错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
执行失败返回具体错误码,参考
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
**起始版本:**
9
zh-cn/application-dev/reference/native-apis/_codec_base.md
浏览文件 @
dc2cd5e0
...
...
@@ -5,83 +5,137 @@
CodecBase模块提供运行音视频编解码通用的结构体、字符常量、枚举。该模块在部分设备上可能不支持,可以通过
[
CanIUse
](
../syscap.md
)
接口确认。
@syscap SystemCapability.Multimedia.Media.CodecBase
\
@
syscap SystemCapability.Multimedia.Media.CodecBase
**起始版本:**
9
## 汇总
### 文件
| 名称 | 描述 |
| 名称 | 描述 |
| -------- | -------- |
|
[
native_avcodec_base.h
](
native__avcodec__base_8h.md
)
| 声明运行音视频编解码通用的结构体、字符常量、枚举。
<br
>
引用文件:
<multimedia
/
player_framework
/
native_avcodec_base.h
>
|
|
[
native_avcodec_base.h
](
native__avcodec__base_8h.md
)
| 声明运行音视频编解码通用的结构体、字符常量、枚举。
<br
/>
引用文件:
<multimedia
/
player_framework
/
native_avcodec_base.h
>
|
### 结构体
| 名称 | 描述 |
| 名称 | 描述 |
| -------- | -------- |
|
[
OH_AVCodecBufferAttr
](
_o_h___a_v_codec_buffer_attr.md
)
| 定义OH_AVCodec的
Buffer描述信息。
|
|
[
OH_AVCodecAsyncCallback
](
_o_h___a_v_codec_async_callback.md
)
|
AVCodec所有的异步回调函数指针集合。注册一个该结构体实例给OH_AVCodec实例,并处理通过该回调报告 的信息,以确保AVCodec正常运转。 |
|
[
OH_AVCodecBufferAttr
](
_o_h___a_v_codec_buffer_attr.md
)
| 定义OH_AVCodec的
缓冲区描述信息。
|
|
[
OH_AVCodecAsyncCallback
](
_o_h___a_v_codec_async_callback.md
)
|
OH_AVCodec中所有异步回调函数指针的集合。 |
### 类型定义
| 名称 | 描述 |
| 名称 | 描述 |
| -------- | -------- |
|
[
OH_AVCodecBufferFlags
](
#oh_avcodecbufferflags
)
| 枚举OH_AVCodec的Buffer标记的类别。 |
|
[
OH_AVCodecBufferAttr
](
#oh_avcodecbufferattr
)
| 定义OH_AVCodec的Buffer描述信息。 |
| (
\*
[
OH_AVCodecOnError
](
#oh_avcodeconerror
)
) (OH_AVCodec
\*
codec, int32_t errorCode, void
\*
userData) | 当OH_AVCodec实例运行发生错误时,该函数指针会被调用以报告具体错误信息。 |
| (
\*
[
OH_AVCodecOnStreamChanged
](
#oh_avcodeconstreamchanged
)
) (OH_AVCodec
\*
codec, OH_AVFormat
\*
format, void
\*
userData) | 当输出流发生变化时,该函数指针会被调用以报告新的流描述信息。 需要注意的时,OH_AVFormat指针的生命周期仅维持在该函数指针被调用时上有效,禁止在调用结束后继续访问。 |
| (
\*
[
OH_AVCodecOnNeedInputData
](
#oh_avcodeconneedinputdata
)
) (OH_AVCodec
\*
codec, uint32_t index, OH_AVMemory
\*
data, void
\*
userData) | 当AVCodec运行过程中需要新的输入数据时,该函数指针会被调用,并携带一块可用的Buffer以供填入新的输入数据。 |
| (
\*
[
OH_AVCodecOnNewOutputData
](
#oh_avcodeconnewoutputdata
)
) (OH_AVCodec
\*
codec, uint32_t index, OH_AVMemory
\*
data,
[
OH_AVCodecBufferAttr
](
_o_h___a_v_codec_buffer_attr.md
)
\*
attr, void
\*
userData) | 当AVCodec运行过程中产生了新的输出数据时,该函数指针会被调用,并携带一块包含新输出数据的Buffer, 需要注意的是,OH_AVCodecBufferAttr指针的生命周期仅维持在该函数指针被调用时有效,禁止调用结束后继续访问。 |
|
[
OH_AVCodecAsyncCallback
](
#oh_avcodecasynccallback
)
| AVCodec所有的异步回调函数指针集合。注册一个该结构体实例给OH_AVCodec实例,并处理通过该回调报告 的信息,以确保AVCodec正常运转。 |
|
[
OH_MediaType
](
#oh_mediatype
)
| 媒体类型。 |
|
[
OH_AVCProfile
](
#oh_avcprofile
)
| AVC Profile枚举。 |
|
[
OH_AACProfile
](
#oh_aacprofile
)
| AAC Profile枚举。 |
|
[
OH_AVCodecBufferFlags
](
#oh_avcodecbufferflags
)
| 枚举OH_AVCodec缓冲区标记的类别。 |
|
[
OH_AVOutputFormat
](
#oh_avoutputformat
)
| 枚举封装器的输出文件格式。 |
|
[
OH_AVCodecBufferAttr
](
#oh_avcodecbufferattr
)
| 定义OH_AVCodec的缓冲区描述信息。 |
| (
\*
[
OH_AVCodecOnError
](
#oh_avcodeconerror
)
) (OH_AVCodec
\*
codec, int32_t errorCode, void
\*
userData) | 当OH_AVCodec实例运行出错时,会调用来上报具体的错误信息的函数指针。 |
| (
\*
[
OH_AVCodecOnStreamChanged
](
#oh_avcodeconstreamchanged
)
) (OH_AVCodec
\*
codec, OH_AVFormat
\*
format, void
\*
userData) | 当输出流发生变化时,将调用此函数指针报告新的流描述信息。 |
| (
\*
[
OH_AVCodecOnNeedInputData
](
#oh_avcodeconneedinputdata
)
) (OH_AVCodec
\*
codec, uint32_t index, OH_AVMemory
\*
data, void
\*
userData) | 当OH_AVCodec在运行过程中需要新的输入数据时,将调用此函数指针,并携带可用的缓冲区来填充新的输入数据。 |
| (
\*
[
OH_AVCodecOnNewOutputData
](
#oh_avcodeconnewoutputdata
)
) (OH_AVCodec
\*
codec, uint32_t index, OH_AVMemory
\*
data,
[
OH_AVCodecBufferAttr
](
_o_h___a_v_codec_buffer_attr.md
)
\*
attr, void
\*
userData) | 当OH_AVCodec运行过程中生成新的输出数据时,将调用此函数指针,并携带包含新输出数据的缓冲区。 |
|
[
OH_AVCodecAsyncCallback
](
#oh_avcodecasynccallback
)
| OH_AVCodec中所有异步回调函数指针的集合。 |
|
[
OH_MediaType
](
#oh_mediatype
)
| 媒体类型。 |
|
[
OH_AVCProfile
](
#oh_avcprofile
)
| AVC Profile枚举。 |
|
[
OH_HEVCProfile
](
#oh_hevcprofile
)
| HEVC Profile枚举。 |
|
[
OH_AACProfile
](
#oh_aacprofile
)
| AAC Profile枚举。 |
|
[
OH_AVSeekMode
](
#oh_avseekmode
)
| 跳转模式。 |
|
[
OH_ColorPrimary
](
#oh_colorprimary
)
| 原色。 |
|
[
OH_TransferCharacteristic
](
#oh_transfercharacteristic
)
| 转移特性。 |
|
[
OH_MatrixCoefficient
](
#oh_matrixcoefficient
)
| 矩阵系数。 |
|
[
OH_BitsPerSample
](
#oh_bitspersample
)
| 枚举每个编码样本的音频位数。 |
### 枚举
| 名称 | 描述 |
| 名称 | 描述 |
| -------- | -------- |
|
[
OH_AVCodecBufferFlags
](
#oh_avcodecbufferflags
)
{
<br/>
**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
<br/>
} | 枚举OH_AVCodec的Buffer标记的类别。 |
|
[
OH_MediaType
](
#oh_mediatype
)
{
**MEDIA_TYPE_AUD**
= 0,
**MEDIA_TYPE_VID**
= 1 } | 媒体类型。 |
|
[
OH_AVCProfile
](
#oh_avcprofile
)
{
**AVC_PROFILE_BASELINE**
= 0,
**AVC_PROFILE_HIGH**
= 4,
**AVC_PROFILE_MAIN**
= 8 } | AVC Profile枚举。 |
|
[
OH_AACProfile
](
#oh_aacprofile
)
{
**AAC_PROFILE_LC**
= 0 } | AAC Profile枚举。 |
|
[
OH_AVCodecBufferFlags
](
#oh_avcodecbufferflags
)
{
<br/>
**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,
<br/>
**AVCODEC_BUFFER_FLAGS_CODEC_DATA**
= 1
<<
3
<br/>
} | 枚举OH_AVCodec缓冲区标记的类别。 |
|
[
OH_AVOutputFormat
](
#oh_avoutputformat
)
{
**AV_OUTPUT_FORMAT_DEFAULT**
= 0,
**AV_OUTPUT_FORMAT_MPEG_4**
= 2,
**AV_OUTPUT_FORMAT_M4A**
= 6 } | 枚举封装器的输出文件格式。 |
|
[
OH_MediaType
](
#oh_mediatype
)
{
**MEDIA_TYPE_AUD**
= 0,
**MEDIA_TYPE_VID**
= 1 } | 媒体类型。 |
|
[
OH_AVCProfile
](
#oh_avcprofile
)
{
**AVC_PROFILE_BASELINE**
= 0,
**AVC_PROFILE_HIGH**
= 4,
**AVC_PROFILE_MAIN**
= 8 } | AVC Profile枚举。 |
|
[
OH_HEVCProfile
](
#oh_hevcprofile
)
{
<br/>
**HEVC_PROFILE_MAIN**
= 0,
**HEVC_PROFILE_MAIN_10**
= 1,
**HEVC_PROFILE_MAIN_STILL**
= 2,
**HEVC_PROFILE_MAIN_10_HDR10**
= 3,
<br/>
**HEVC_PROFILE_MAIN_10_HDR10_PLUS**
= 4
<br/>
} | HEVC Profile枚举。 |
|
[
OH_AACProfile
](
#oh_aacprofile
)
{
**AAC_PROFILE_LC**
= 0 } | AAC Profile枚举。 |
|
[
OH_AVSeekMode
](
#oh_avseekmode
)
{
**SEEK_MODE_NEXT_SYNC**
= 0,
**SEEK_MODE_PREVIOUS_SYNC**
,
**SEEK_MODE_CLOSEST_SYNC**
} | 跳转模式。 |
|
[
OH_ColorPrimary
](
#oh_colorprimary
)
{
<br/>
**COLOR_PRIMARY_BT709**
= 1,
**COLOR_PRIMARY_UNSPECIFIED**
= 2,
**COLOR_PRIMARY_BT470_M**
= 4,
**COLOR_PRIMARY_BT601_625**
= 5,
<br/>
**COLOR_PRIMARY_BT601_525**
= 6,
**COLOR_PRIMARY_SMPTE_ST240**
= 7,
**COLOR_PRIMARY_GENERIC_FILM**
= 8,
**COLOR_PRIMARY_BT2020**
= 9,
<br/>
**COLOR_PRIMARY_SMPTE_ST428**
= 10,
**COLOR_PRIMARY_P3DCI**
= 11,
**COLOR_PRIMARY_P3D65**
= 12
<br/>
} | 原色。 |
|
[
OH_TransferCharacteristic
](
#oh_transfercharacteristic
)
{
<br/>
**TRANSFER_CHARACTERISTIC_BT709**
= 1,
**TRANSFER_CHARACTERISTIC_UNSPECIFIED**
= 2,
**TRANSFER_CHARACTERISTIC_GAMMA_2_2**
= 4,
**TRANSFER_CHARACTERISTIC_GAMMA_2_8**
= 5,
<br/>
**TRANSFER_CHARACTERISTIC_BT601**
= 6,
**TRANSFER_CHARACTERISTIC_SMPTE_ST240**
= 7,
**TRANSFER_CHARACTERISTIC_LINEAR**
= 8,
**TRANSFER_CHARACTERISTIC_LOG**
= 9,
<br/>
**TRANSFER_CHARACTERISTIC_LOG_SQRT**
= 10,
**TRANSFER_CHARACTERISTIC_IEC_61966_2_4**
= 11,
**TRANSFER_CHARACTERISTIC_BT1361**
= 12,
**TRANSFER_CHARACTERISTIC_IEC_61966_2_1**
= 13,
<br/>
**TRANSFER_CHARACTERISTIC_BT2020_10BIT**
= 14,
**TRANSFER_CHARACTERISTIC_BT2020_12BIT**
= 15,
**TRANSFER_CHARACTERISTIC_PQ**
= 16,
**TRANSFER_CHARACTERISTIC_SMPTE_ST428**
= 17,
<br/>
**TRANSFER_CHARACTERISTIC_HLG**
= 18
<br/>
} | 转移特性。 |
|
[
OH_MatrixCoefficient
](
#oh_matrixcoefficient
)
{
<br/>
**MATRIX_COEFFICIENT_IDENTITY**
= 0,
**MATRIX_COEFFICIENT_BT709**
= 1,
**MATRIX_COEFFICIENT_UNSPECIFIED**
= 2,
**MATRIX_COEFFICIENT_FCC**
= 4,
<br/>
**MATRIX_COEFFICIENT_BT601_625**
= 5,
**MATRIX_COEFFICIENT_BT601_525**
= 6,
**MATRIX_COEFFICIENT_SMPTE_ST240**
= 7,
**MATRIX_COEFFICIENT_YCGCO**
= 8,
<br/>
**MATRIX_COEFFICIENT_BT2020_NCL**
= 9,
**MATRIX_COEFFICIENT_BT2020_CL**
= 10,
**MATRIX_COEFFICIENT_SMPTE_ST2085**
= 11,
**MATRIX_COEFFICIENT_CHROMATICITY_NCL**
= 12,
<br/>
**MATRIX_COEFFICIENT_CHROMATICITY_CL**
= 13,
**MATRIX_COEFFICIENT_ICTCP**
= 14
<br/>
} | 矩阵系数。 |
|
[
OH_BitsPerSample
](
#oh_bitspersample
)
{
<br/>
**SAMPLE_U8**
= 0,
**SAMPLE_S16LE**
= 1,
**SAMPLE_S24LE**
= 2,
**SAMPLE_S32LE**
= 3,
<br/>
**SAMPLE_F32LE**
= 4,
**SAMPLE_U8P**
= 5,
**SAMPLE_S16P**
= 6,
**SAMPLE_S24P**
= 7,
<br/>
**SAMPLE_S32P**
= 8,
**SAMPLE_F32P**
= 9,
**INVALID_WIDTH**
= -1
<br/>
} | 枚举每个编码样本的音频位数。 |
### 变量
| 名称 | 描述 |
| 名称 | 描述 |
| -------- | -------- |
|
[
OH_AVCodecBufferAttr::pts
](
#pts
)
| 以微秒为单位表示的该Buffer的Presentation时间戳 |
|
[
OH_AVCodecBufferAttr::size
](
#size
)
| 以字节为单位表示的该Buffer内所包含数据的大小 |
|
[
OH_AVCodecBufferAttr::offset
](
#offset
)
| 有效数据在该Buffer内的起始偏移量 |
|
[
OH_AVCodecBufferAttr::flags
](
#flags
)
| u该Buffer具有的标记,也是多个
[
OH_AVCodecBufferFlags
](
#oh_avcodecbufferflags
)
的组合 |
|
[
OH_AVCODEC_MIMETYPE_VIDEO_AVC
](
#oh_avcodec_mimetype_video_avc
)
| AVC视频编解码器的MIME类型。 |
|
[
OH_AVCODEC_MIMETYPE_AUDIO_AAC
](
#oh_avcodec_mimetype_audio_aac
)
| AAC音频编解码器的MIME类型。 |
|
[
OH_ED_KEY_TIME_STAMP
](
#oh_ed_key_time_stamp
)
| 提供统一的surface Buffer附属数据的字符描述符。 |
|
[
OH_ED_KEY_EOS
](
#oh_ed_key_eos
)
| surface附属数据中结束流的字符描述符,值类型为bool |
|
[
OH_MD_KEY_TRACK_TYPE
](
#oh_md_key_track_type
)
| 为媒体播放框架提供统一的字符描述符。 |
|
[
OH_MD_KEY_CODEC_MIME
](
#oh_md_key_codec_mime
)
| mime类型的字符描述符,值类型为string |
|
[
OH_MD_KEY_DURATION
](
#oh_md_key_duration
)
| duration的字符描述符,值类型为int64_t |
|
[
OH_MD_KEY_BITRATE
](
#oh_md_key_bitrate
)
| 比特率的字符描述符,值类型为uint32_t |
|
[
OH_MD_KEY_MAX_INPUT_SIZE
](
#oh_md_key_max_input_size
)
| 最大输入尺寸的字符描述符,值类型为uint32_t |
|
[
OH_MD_KEY_WIDTH
](
#oh_md_key_width
)
| 视频宽度的字符描述符,值类型为uint32_t |
|
[
OH_MD_KEY_HEIGHT
](
#oh_md_key_height
)
| 视频高度的字符描述符,值类型为uint32_t |
|
[
OH_MD_KEY_PIXEL_FORMAT
](
#oh_md_key_pixel_format
)
| 视频像素格式的字符描述符,值类型为int32_t,具体见
[
OH_AVPixelFormat
](
_core.md#oh_avpixelformat
)
|
|
[
OH_MD_KEY_AUDIO_SAMPLE_FORMAT
](
#oh_md_key_audio_sample_format
)
| 音频采样格式的字符描述符,值类型为uint32_t |
|
[
OH_MD_KEY_FRAME_RATE
](
#oh_md_key_frame_rate
)
| 视频帧率的字符描述符,值类型为double |
|
[
OH_MD_KEY_VIDEO_ENCODE_BITRATE_MODE
](
#oh_md_key_video_encode_bitrate_mode
)
| 视频编码比特率模式的字符描述符,值类型为int32_t,具体见
[
OH_VideoEncodeBitrateMode
](
_video_encoder.md#oh_videoencodebitratemode
)
|
|
[
OH_MD_KEY_PROFILE
](
#oh_md_key_profile
)
| 音视频编码能力的字符描述符,值类型为int32_t,具体见
[
OH_AVCProfile
](
#oh_avcprofile
)
或
[
OH_AACProfile
](
#oh_aacprofile
)
|
|
[
OH_MD_KEY_AUD_CHANNEL_COUNT
](
#oh_md_key_aud_channel_count
)
| 音频声道数的字符描述符,值类型为uint32_t |
|
[
OH_MD_KEY_AUD_SAMPLE_RATE
](
#oh_md_key_aud_sample_rate
)
| 音频采样率的字符描述符,值类型为uint32_t |
|
[
OH_MD_KEY_I_FRAME_INTERVAL
](
#oh_md_key_i_frame_interval
)
| I帧间隔时长的字符描述符,值类型为int32_t,单位是毫秒 |
|
[
OH_MD_KEY_ROTATION
](
#oh_md_key_rotation
)
| surface旋转角度的字符描述符,值类型为int32_t,限于{0, 90, 180, 270},默认值为0 |
|
[
OH_AVCodecBufferAttr::pts
](
_o_h___a_v_codec_buffer_attr.md#pts
)
| 此缓冲区的显示时间戳(以微秒为单位) |
|
[
OH_AVCodecBufferAttr::size
](
_o_h___a_v_codec_buffer_attr.md#size
)
| 缓冲区中包含的数据的大小(以字节为单位) |
|
[
OH_AVCodecBufferAttr::offset
](
_o_h___a_v_codec_buffer_attr.md#offset
)
| 此缓冲区中有效数据的起始偏移量 |
|
[
OH_AVCodecBufferAttr::flags
](
_o_h___a_v_codec_buffer_attr.md#flags
)
| 此缓冲区具有的标志,也是多个
[
OH_AVCodecBufferFlags
](
#oh_avcodecbufferflags
)
的组合。 |
|
[
OH_AVCodecAsyncCallback::onError
](
_o_h___a_v_codec_async_callback.md#onerror
)
| 监控编解码器操作错误,请参见
[
OH_AVCodecOnError
](
#oh_avcodeconerror
)
|
|
[
OH_AVCodecAsyncCallback::onStreamChanged
](
_o_h___a_v_codec_async_callback.md#onstreamchanged
)
| 监控编解码器流变化,请参见
[
OH_AVCodecOnStreamChanged
](
#oh_avcodeconstreamchanged
)
|
|
[
OH_AVCodecAsyncCallback::onNeedInputData
](
_o_h___a_v_codec_async_callback.md#onneedinputdata
)
| 监控编解码器需要输入数据,请参见
[
OH_AVCodecOnNeedInputData
](
#oh_avcodeconneedinputdata
)
|
|
[
OH_AVCodecAsyncCallback::onNeedOutputData
](
_o_h___a_v_codec_async_callback.md#onneedinputdata
)
| 监控编解码器已生成输出数据,请参见
[
OH_AVCodecOnNewOutputData
](
#oh_avcodeconnewoutputdata
)
|
|
\*
[
OH_AVCODEC_MIMETYPE_VIDEO_AVC
](
#oh_avcodec_mimetype_video_avc
)
| AVC视频编解码器的MIME类型。 |
|
\*
[
OH_AVCODEC_MIMETYPE_AUDIO_AAC
](
#oh_avcodec_mimetype_audio_aac
)
| AAC音频编解码器的MIME类型。 |
|
\*
[
OH_AVCODEC_MIMETYPE_VIDEO_MPEG4
](
#oh_avcodec_mimetype_video_mpeg4
)
| MPEG4视频编解码器的MIME类型。 |
|
\*
[
OH_AVCODEC_MIMETYPE_VIDEO_HEVC
](
#oh_avcodec_mimetype_video_hevc
)
| HEVC视频编解码器的MIME类型。 |
|
\*
[
OH_AVCODEC_MIMETYPE_AUDIO_MPEG
](
#oh_avcodec_mimetype_audio_mpeg
)
| MPEG音频编解码器的MIME类型。 |
|
\*
[
OH_AVCODEC_MIMETYPE_IMAGE_JPG
](
#oh_avcodec_mimetype_image_jpg
)
| JPG图片编解码器的MIME类型。 |
|
\*
[
OH_AVCODEC_MIMETYPE_IMAGE_PNG
](
#oh_avcodec_mimetype_image_png
)
| PNG图片编解码器的MIME类型。 |
|
\*
[
OH_AVCODEC_MIMETYPE_IMAGE_BMP
](
#oh_avcodec_mimetype_image_bmp
)
| BMP图片编解码器的MIME类型。 |
|
\*
[
OH_AVCODEC_MIMETYPE_AUDIO_FLAC
](
#oh_avcodec_mimetype_audio_flac
)
| FLAC音频编解码器的MIME类型。 |
|
\*
[
OH_AVCODEC_MIMETYPE_AUDIO_VORBIS
](
#oh_avcodec_mimetype_audio_vorbis
)
| VORBIS音频编解码器的MIME类型。 |
|
\*
[
OH_ED_KEY_TIME_STAMP
](
#oh_ed_key_time_stamp
)
| 表面的额外数据中时间戳的键,值类型为int64 |
|
\*
[
OH_ED_KEY_EOS
](
#oh_ed_key_eos
)
| 表面的额外数据中流结束符的键,值类型为bool |
|
\*
[
OH_MD_KEY_TRACK_TYPE
](
#oh_md_key_track_type
)
| 提供统一容器,用于存储媒体描述。 |
|
\*
[
OH_MD_KEY_CODEC_MIME
](
#oh_md_key_codec_mime
)
| 编解码器mime类型的键,值类型为字符串。 |
|
\*
[
OH_MD_KEY_DURATION
](
#oh_md_key_duration
)
| 持续时间键,值类型为int64_t。 |
|
\*
[
OH_MD_KEY_BITRATE
](
#oh_md_key_bitrate
)
| 比特率的键,值类型为uint32_t。 |
|
\*
[
OH_MD_KEY_MAX_INPUT_SIZE
](
#oh_md_key_max_input_size
)
| 最大输入大小的键,值类型为uint32_t |
|
\*
[
OH_MD_KEY_WIDTH
](
#oh_md_key_width
)
| 视频宽度的键,值类型为uint32_t |
|
\*
[
OH_MD_KEY_HEIGHT
](
#oh_md_key_height
)
| 视频高度键,值类型为uint32_t |
|
\*
[
OH_MD_KEY_PIXEL_FORMAT
](
#oh_md_key_pixel_format
)
| 视频像素格式的键,值类型为int32_t,具体见
[
OH_AVPixelFormat
](
_core.md#oh_avpixelformat
)
|
|
\*
[
OH_MD_KEY_RANGE_FLAG
](
#oh_md_key_range_flag
)
| 视频YUV取值范围标志的键,值类型为bool |
|
\*
[
OH_MD_KEY_COLOR_PRIMARIES
](
#oh_md_key_color_primaries
)
| 视频颜色原色键, 值类型为int32_t |
|
\*
[
OH_MD_KEY_TRANSFER_CHARACTERISTICS
](
#oh_md_key_transfer_characteristics
)
| 视频转移特性的键,值类型为int32_t |
|
\*
[
OH_MD_KEY_MATRIX_COEFFICIENTS
](
#oh_md_key_matrix_coefficients
)
| 视频矩阵系数的键,值类型为int32_t |
|
\*
[
OH_MD_KEY_AUDIO_SAMPLE_FORMAT
](
#oh_md_key_audio_sample_format
)
| 音频原始格式的键,值类型为uint32_t |
|
\*
[
OH_MD_KEY_FRAME_RATE
](
#oh_md_key_frame_rate
)
| 视频帧率的键,值类型为双精度浮点。 |
|
\*
[
OH_MD_KEY_VIDEO_ENCODE_BITRATE_MODE
](
#oh_md_key_video_encode_bitrate_mode
)
| 视频编码码率模式,值类型为int32_t,具体见
[
OH_VideoEncodeBitrateMode
](
_video_encoder.md#oh_videoencodebitratemode
)
|
|
\*
[
OH_MD_KEY_PROFILE
](
#oh_md_key_profile
)
| 编码模板,值类型为数字,具体见
[
OH_AVCProfile
](
#oh_avcprofile
)
,
[
OH_AACProfile
](
#oh_aacprofile
)
或
[
OH_HEVCProfile
](
#oh_hevcprofile
)
|
|
\*
[
OH_MD_KEY_AUD_CHANNEL_COUNT
](
#oh_md_key_aud_channel_count
)
| 音频通道计数键,值类型为uint32_t |
|
\*
[
OH_MD_KEY_AUD_SAMPLE_RATE
](
#oh_md_key_aud_sample_rate
)
| 音频采样率键,值类型为uint32_t |
|
\*
[
OH_MD_KEY_I_FRAME_INTERVAL
](
#oh_md_key_i_frame_interval
)
| 关键帧间隔的键,值类型为int32_t,单位为毫秒。 |
|
\*
[
OH_MD_KEY_ROTATION
](
#oh_md_key_rotation
)
| 表面旋转角度的键。值类型为int32_t:应为{0, 90, 180, 270},默认值为0。 |
|
\*
[
OH_MD_KEY_CODEC_CONFIG
](
#oh_md_key_codec_config
)
| 编解码器特定数据的键,值类型为uint8_t
\*
。 |
|
\*
[
OH_MD_KEY_REQUEST_I_FRAME
](
#oh_md_key_request_i_frame
)
| 请求立即编码I帧的键。值类型为布尔值 |
|
\*
[
OH_MD_KEY_QUALITY
](
#oh_md_key_quality
)
| 所需编码质量的键。值类型为uint32_t,此键仅适用于配置在恒定质量模式下的编码器 |
|
\*
[
OH_MD_KEY_CHANNEL_LAYOUT
](
#oh_md_key_channel_layout
)
| 所需编码通道布局的键。值类型为int64_t,此键仅适用于编码器。 |
|
\*
[
OH_MD_KEY_BITS_PER_CODED_SAMPLE
](
#oh_md_key_bits_per_coded_sample
)
| 每个编码样本位数的键,值类型为uint32_t,支持flac编码器,请参见
\@
OH_BitsPerSample。 |
|
\*
[
OH_MD_KEY_AAC_IS_ADTS
](
#oh_md_key_aac_is_adts
)
| aac格式的键,值类型为uint32_t,aac解码器支持。 |
|
\*
[
OH_MD_KEY_SBR
](
#oh_md_key_sbr
)
| aac sbr模式的键,值类型为uint32_t,aac编码器支持。 |
|
\*
[
OH_MD_KEY_COMPLIANCE_LEVEL
](
#oh_md_key_compliance_level
)
| flac合规性级别的键,值类型为int32_t。 |
|
\*
[
OH_MD_KEY_IDENTIFICATION_HEADER
](
#oh_md_key_identification_header
)
| vorbis标识头的键,值类型为uint8_t
\*
,仅vorbis解码器支持。 |
|
\*
[
OH_MD_KEY_SETUP_HEADER
](
#oh_md_key_setup_header
)
| vorbis设置头的键,值类型为uint8_t
\*
,仅vorbis解码器支持。 |
|
\*
[
OH_MD_KEY_TITLE
](
#oh_md_key_title
)
| 源格式标题的键,值类型为字符串 |
|
\*
[
OH_MD_KEY_ARTIST
](
#oh_md_key_artist
)
| 艺术家的源格式Key,值类型为字符串 |
|
\*
[
OH_MD_KEY_ALBUM
](
#oh_md_key_album
)
| 相册的源格式键,值类型为字符串 |
|
\*
[
OH_MD_KEY_ALBUM_ARTIST
](
#oh_md_key_album_artist
)
| 源格式专辑_artist的键,值类型为字符串 |
|
\*
[
OH_MD_KEY_DATE
](
#oh_md_key_date
)
| 源格式日期的键,值类型为字符串 |
|
\*
[
OH_MD_KEY_COMMENT
](
#oh_md_key_comment
)
| 源格式注释的键,值类型为字符串 |
|
\*
[
OH_MD_KEY_GENRE
](
#oh_md_key_genre
)
| 源格式类型的键,值类型为字符串 |
|
\*
[
OH_MD_KEY_COPYRIGHT
](
#oh_md_key_copyright
)
| 源格式版权的键,值类型为字符串 |
|
\*
[
OH_MD_KEY_LANGUAGE
](
#oh_md_key_language
)
| 源格式语言的键,值类型为字符串 |
|
\*
[
OH_MD_KEY_DESCRIPTION
](
#oh_md_key_description
)
| 源格式描述的键,值类型为字符串 |
|
\*
[
OH_MD_KEY_LYRICS
](
#oh_md_key_lyrics
)
| 源格式歌词的键,值类型为字符串 |
|
\*
[
OH_MD_KEY_TRACK_COUNT
](
#oh_md_key_track_count
)
| 源格式轨道计数的键,值类型为uint32_t |
## 类型定义说明
...
...
@@ -93,10 +147,12 @@ CodecBase模块提供运行音视频编解码通用的结构体、字符常量
```
typedef enum OH_AACProfileOH_AACProfile
```
**描述:**
**描述:**
AAC Profile枚举。
@syscap SystemCapability.Multimedia.Media.CodecBase
\
@
syscap SystemCapability.Multimedia.Media.CodecBase
### OH_AVCodecAsyncCallback
...
...
@@ -105,19 +161,21 @@ AAC Profile枚举。
```
typedef struct OH_AVCodecAsyncCallbackOH_AVCodecAsyncCallback
```
**描述:**
AVCodec所有的异步回调函数指针集合。注册一个该结构体实例给OH_AVCodec实例,并处理通过该回调报告 的信息,以确保AVCodec正常运转。
@syscap SystemCapability.Multimedia.Media.CodecBase
**描述:**
**参数:**
OH_AVCodec中所有异步回调函数指针的集合。将该结构体的实例注册到OH_AVCodec实例中, 并处理回调上报的信息,以保证OH_AVCodec的正常运行。
| 名称 | 描述 |
\@
syscap SystemCapability.Multimedia.Media.CodecBase
**参数:**
| 名称 | 描述 |
| -------- | -------- |
|
onError | 监听AVCodec运行错误,参考
[
OH_AVCodecOnError
](
#oh_avcodeconerror
)
|
|
onStreamChanged | 监听编解码流信息,参考
[
OH_AVCodecOnStreamChanged
](
#oh_avcodeconstreamchanged
)
|
|
onNeedInputData | 监听编解码需要输入数据,参考
[
OH_AVCodecOnNeedInputData
](
#oh_avcodeconneedinputdata
)
|
|
onNeedInputData | 监听编解码产生输出数据,参考
[
OH_AVCodecOnNewOutputData
](
#oh_avcodeconnewoutputdata
)
|
|
[
onError
](
_o_h___a_v_codec_async_callback.md#onerror
)
| 监控编解码器操作错误,请参见
[
OH_AVCodecOnError
](
#oh_avcodeconerror
)
|
|
[
onStreamChanged
](
_o_h___a_v_codec_async_callback.md#onstreamchanged
)
| 监控编解码器流变化,请参见
[
OH_AVCodecOnStreamChanged
](
#oh_avcodeconstreamchanged
)
|
|
[
onNeedInputData
](
_o_h___a_v_codec_async_callback.md#onneedinputdata
)
| 监控编解码器需要输入数据,请参见
[
OH_AVCodecOnNeedInputData
](
#oh_avcodeconneedinputdata
)
|
|
[
onNeedOutputData
](
_o_h___a_v_codec_async_callback.md#onneedoutputdata
)
| 监控编解码器已生成输出数据,请参见
[
OH_AVCodecOnNewOutputData
](
#oh_avcodeconnewoutputdata
)
|
### OH_AVCodecBufferAttr
...
...
@@ -126,10 +184,12 @@ AVCodec所有的异步回调函数指针集合。注册一个该结构体实例
```
typedef struct OH_AVCodecBufferAttrOH_AVCodecBufferAttr
```
**描述:**
定义OH_AVCodec的Buffer描述信息。
@syscap SystemCapability.Multimedia.Media.CodecBase
**描述:**
定义OH_AVCodec的缓冲区描述信息。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
### OH_AVCodecBufferFlags
...
...
@@ -138,10 +198,12 @@ typedef struct OH_AVCodecBufferAttrOH_AVCodecBufferAttr
```
typedef enum OH_AVCodecBufferFlagsOH_AVCodecBufferFlags
```
**描述:**
枚举OH_AVCodec的Buffer标记的类别。
@syscap SystemCapability.Multimedia.Media.CodecBase
**描述:**
枚举OH_AVCodec缓冲区标记的类别。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
### OH_AVCodecOnError
...
...
@@ -150,18 +212,20 @@ typedef enum OH_AVCodecBufferFlagsOH_AVCodecBufferFlags
```
typedef void(* OH_AVCodecOnError) (OH_AVCodec *codec, int32_t errorCode, void *userData)
```
**描述:**
当OH_AVCodec实例运行发生错误时,该函数指针会被调用以报告具体错误信息。
@syscap SystemCapability.Multimedia.Media.CodecBase
**描述:**
当OH_AVCodec实例运行出错时,会调用来上报具体的错误信息的函数指针。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
**参数
:
**
**参数
:
**
| 名称 | 描述 |
| 名称 | 描述 |
| -------- | -------- |
| codec | OH_AVCodec实例
|
| errorCode |
具体错误码
|
| userData | 用户特定数据
|
| codec | OH_AVCodec实例 |
| errorCode |
特定错误代码
|
| userData | 用户特定数据 |
### OH_AVCodecOnNeedInputData
...
...
@@ -170,19 +234,21 @@ typedef void(* OH_AVCodecOnError) (OH_AVCodec *codec, int32_t errorCode, void *u
```
typedef void(* OH_AVCodecOnNeedInputData) (OH_AVCodec *codec, uint32_t index, OH_AVMemory *data, void *userData)
```
**描述:**
当AVCodec运行过程中需要新的输入数据时,该函数指针会被调用,并携带一块可用的Buffer以供填入新的输入数据。
@syscap SystemCapability.Multimedia.Media.CodecBase
**描述:**
**参数:**
当OH_AVCodec在运行过程中需要新的输入数据时,将调用此函数指针,并携带可用的缓冲区来填充新的输入数据。
| 名称 | 描述 |
\@
syscap SystemCapability.Multimedia.Media.CodecBase
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| codec | OH_AVCodec实例
|
| index |
新的可用的输入Buffer对应的索引
|
| data | 新的可用
的输入Buffer
|
| userData | 用户特定数据
|
| codec | OH_AVCodec实例 |
| index |
与新可用的输入缓冲区相对应的索引
|
| data | 新的可用
输入缓冲区
|
| userData | 用户特定数据 |
### OH_AVCodecOnNewOutputData
...
...
@@ -191,20 +257,22 @@ typedef void(* OH_AVCodecOnNeedInputData) (OH_AVCodec *codec, uint32_t index, OH
```
typedef void(* OH_AVCodecOnNewOutputData) (OH_AVCodec *codec, uint32_t index, OH_AVMemory *data, OH_AVCodecBufferAttr *attr, void *userData)
```
**描述:**
当AVCodec运行过程中产生了新的输出数据时,该函数指针会被调用,并携带一块包含新输出数据的Buffer, 需要注意的是,OH_AVCodecBufferAttr指针的生命周期仅维持在该函数指针被调用时有效,禁止调用结束后继续访问。
@syscap SystemCapability.Multimedia.Media.CodecBase
**描述:**
当OH_AVCodec运行过程中生成新的输出数据时,将调用此函数指针,并携带包含新输出数据的缓冲区。 需要注意的是,OH_AVCodecBufferAttr指针的生命周期仅在调用函数指针时有效,这将禁止调用结束后继续访问。
**参数:**
\@
syscap SystemCapability.Multimedia.Media.CodecBase
| 名称 | 描述 |
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| codec | OH_AVCodec实例
|
| index |
新的输出Buffer对应的索引
|
| data | 包含新
的输出数据的Buffer
|
| attr | 新
的输出Buffer的描述信息,具体参考
[
OH_AVCodecBufferAttr
](
_o_h___a_v_codec_buffer_attr.md
)
|
| userData |
specified data
|
| codec | OH_AVCodec实例 |
| index |
与新输出缓冲区对应的索引
|
| data | 包含新
输出数据的缓冲区
|
| attr | 新
输出缓冲区的说明,请参见
[
OH_AVCodecBufferAttr
](
_o_h___a_v_codec_buffer_attr.md
)
|
| userData |
用户特定数据
|
### OH_AVCodecOnStreamChanged
...
...
@@ -213,18 +281,20 @@ typedef void(* OH_AVCodecOnNewOutputData) (OH_AVCodec *codec, uint32_t index, OH
```
typedef void(* OH_AVCodecOnStreamChanged) (OH_AVCodec *codec, OH_AVFormat *format, void *userData)
```
**描述:**
当输出流发生变化时,该函数指针会被调用以报告新的流描述信息。 需要注意的时,OH_AVFormat指针的生命周期仅维持在该函数指针被调用时上有效,禁止在调用结束后继续访问。
@syscap SystemCapability.Multimedia.Media.CodecBase
**描述:**
当输出流发生变化时,将调用此函数指针报告新的流描述信息。需要注意的是, OH_AVFormat指针的生命周期只有在函数指针被调用时才有效,调用结束后禁止继续访问。
**参数:**
\@
syscap SystemCapability.Multimedia.Media.CodecBase
| 名称 | 描述 |
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| codec | OH_AVCodec实例
|
| format | 新
的输出流描述信息
|
| userData | 用户特定数据
|
| codec | OH_AVCodec实例 |
| format | 新
输出流描述信息
|
| userData | 用户特定数据 |
### OH_AVCProfile
...
...
@@ -233,10 +303,94 @@ typedef void(* OH_AVCodecOnStreamChanged) (OH_AVCodec *codec, OH_AVFormat *forma
```
typedef enum OH_AVCProfileOH_AVCProfile
```
**描述:**
**描述:**
AVC Profile枚举。
@syscap SystemCapability.Multimedia.Media.CodecBase
\@
syscap SystemCapability.Multimedia.Media.CodecBase
### OH_AVOutputFormat
```
typedef enum OH_AVOutputFormatOH_AVOutputFormat
```
**描述:**
枚举封装器的输出文件格式。
### OH_AVSeekMode
```
typedef enum OH_AVSeekModeOH_AVSeekMode
```
**描述:**
跳转模式。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
### OH_BitsPerSample
```
typedef enum OH_BitsPerSampleOH_BitsPerSample
```
**描述:**
枚举每个编码样本的音频位数。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
### OH_ColorPrimary
```
typedef enum OH_ColorPrimaryOH_ColorPrimary
```
**描述:**
原色。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
### OH_HEVCProfile
```
typedef enum OH_HEVCProfileOH_HEVCProfile
```
**描述:**
HEVC Profile枚举。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
### OH_MatrixCoefficient
```
typedef enum OH_MatrixCoefficientOH_MatrixCoefficient
```
**描述:**
矩阵系数。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
### OH_MediaType
...
...
@@ -245,10 +399,26 @@ AVC Profile枚举。
```
typedef enum OH_MediaTypeOH_MediaType
```
**描述:**
**描述:**
媒体类型。
@syscap SystemCapability.Multimedia.Media.CodecBase
\@
syscap SystemCapability.Multimedia.Media.CodecBase
### OH_TransferCharacteristic
```
typedef enum OH_TransferCharacteristicOH_TransferCharacteristic
```
**描述:**
转移特性。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
## 枚举类型说明
...
...
@@ -260,10 +430,12 @@ typedef enum OH_MediaTypeOH_MediaType
```
enum OH_AACProfile
```
**描述:**
**描述:**
AAC Profile枚举。
@syscap SystemCapability.Multimedia.Media.CodecBase
\
@
syscap SystemCapability.Multimedia.Media.CodecBase
### OH_AVCodecBufferFlags
...
...
@@ -272,17 +444,12 @@ AAC Profile枚举。
```
enum OH_AVCodecBufferFlags
```
**描述:**
枚举OH_AVCodec的Buffer标记的类别。
@syscap SystemCapability.Multimedia.Media.CodecBase
**描述:**
| 枚举值 | 描述 |
| -------- | -------- |
| AVCODEC_BUFFER_FLAGS_EOS | 表明该Buffer是End-of-Stream帧 |
| AVCODEC_BUFFER_FLAGS_SYNC_FRAME | 表明该Buffer内包含关键帧 |
| AVCODEC_BUFFER_FLAGS_INCOMPLETE_FRAME | 表明该Buffer内包含的数据仅仅为一帧的一部分 |
| AVCODEC_BUFFER_FLAGS_CODEC_DATA | 表明该Buffer包含Codec-Specific-Data |
枚举OH_AVCodec缓冲区标记的类别。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
### OH_AVCProfile
...
...
@@ -291,10 +458,94 @@ enum OH_AVCodecBufferFlags
```
enum OH_AVCProfile
```
**描述:**
**描述:**
AVC Profile枚举。
@syscap SystemCapability.Multimedia.Media.CodecBase
\@
syscap SystemCapability.Multimedia.Media.CodecBase
### OH_AVOutputFormat
```
enum OH_AVOutputFormat
```
**描述:**
枚举封装器的输出文件格式。
### OH_AVSeekMode
```
enum OH_AVSeekMode
```
**描述:**
跳转模式。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
### OH_BitsPerSample
```
enum OH_BitsPerSample
```
**描述:**
枚举每个编码样本的音频位数。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
### OH_ColorPrimary
```
enum OH_ColorPrimary
```
**描述:**
原色。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
### OH_HEVCProfile
```
enum OH_HEVCProfile
```
**描述:**
HEVC Profile枚举。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
### OH_MatrixCoefficient
```
enum OH_MatrixCoefficient
```
**描述:**
矩阵系数。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
### OH_MediaType
...
...
@@ -303,50 +554,127 @@ AVC Profile枚举。
```
enum OH_MediaType
```
**描述:**
**描述:**
媒体类型。
@syscap SystemCapability.Multimedia.Media.CodecBase
\
@
syscap SystemCapability.Multimedia.Media.CodecBase
| 枚举值 | 描述 |
| -------- | -------- |
| MEDIA_TYPE_AUD | 音频轨道 |
| MEDIA_TYPE_VID | 视频轨道 |
### OH_TransferCharacteristic
```
enum OH_TransferCharacteristic
```
**描述:**
转移特性。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
## 变量说明
###
flags
###
OH_AVCODEC_MIMETYPE_AUDIO_AAC
```
uint32_t OH_AVCodecBufferAttr::flags
const char* OH_AVCODEC_MIMETYPE_AUDIO_AAC
```
**描述:**
该Buffer具有的标记,也是多个
[
OH_AVCodecBufferFlags
](
#oh_avcodecbufferflags
)
的组合
**描述:**
### offset
AAC音频编解码器的MIME类型。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
### OH_AVCODEC_MIMETYPE_AUDIO_FLAC
```
int32_t OH_AVCodecBufferAttr::offset
const char* OH_AVCODEC_MIMETYPE_AUDIO_FLAC
```
**描述:**
有效数据在该Buffer内的起始偏移量
**描述:**
FLAC音频编解码器的MIME类型。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
### OH_AVCODEC_MIMETYPE_AUDIO_AAC
### OH_AVCODEC_MIMETYPE_AUDIO_MPEG
```
const char* OH_AVCODEC_MIMETYPE_AUDIO_
AAC
const char* OH_AVCODEC_MIMETYPE_AUDIO_
MPEG
```
**描述:**
AAC音频编解码器的MIME类型。
@syscap SystemCapability.Multimedia.Media.CodecBase
**描述:**
MPEG音频编解码器的MIME类型。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
### OH_AVCODEC_MIMETYPE_AUDIO_VORBIS
```
const char* OH_AVCODEC_MIMETYPE_AUDIO_VORBIS
```
**描述:**
VORBIS音频编解码器的MIME类型。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
### OH_AVCODEC_MIMETYPE_IMAGE_BMP
```
const char* OH_AVCODEC_MIMETYPE_IMAGE_BMP
```
**描述:**
BMP图片编解码器的MIME类型。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
### OH_AVCODEC_MIMETYPE_IMAGE_JPG
```
const char* OH_AVCODEC_MIMETYPE_IMAGE_JPG
```
**描述:**
JPG图片编解码器的MIME类型。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
### OH_AVCODEC_MIMETYPE_IMAGE_PNG
```
const char* OH_AVCODEC_MIMETYPE_IMAGE_PNG
```
**描述:**
PNG图片编解码器的MIME类型。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
### OH_AVCODEC_MIMETYPE_VIDEO_AVC
...
...
@@ -355,10 +683,40 @@ AAC音频编解码器的MIME类型。
```
const char* OH_AVCODEC_MIMETYPE_VIDEO_AVC
```
**描述:**
**描述:**
AVC视频编解码器的MIME类型。
@syscap SystemCapability.Multimedia.Media.CodecBase
\@
syscap SystemCapability.Multimedia.Media.CodecBase
### OH_AVCODEC_MIMETYPE_VIDEO_HEVC
```
const char* OH_AVCODEC_MIMETYPE_VIDEO_HEVC
```
**描述:**
HEVC视频编解码器的MIME类型。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
### OH_AVCODEC_MIMETYPE_VIDEO_MPEG4
```
const char* OH_AVCODEC_MIMETYPE_VIDEO_MPEG4
```
**描述:**
MPEG4视频编解码器的MIME类型。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
### OH_ED_KEY_EOS
...
...
@@ -367,8 +725,12 @@ AVC视频编解码器的MIME类型。
```
const char* OH_ED_KEY_EOS
```
**描述:**
surface附属数据中结束流的字符描述符,值类型为bool
**描述:**
表面的额外数据中流结束符的键,值类型为bool
\@
syscap SystemCapability.Multimedia.Media.CodecBase
### OH_ED_KEY_TIME_STAMP
...
...
@@ -377,10 +739,60 @@ surface附属数据中结束流的字符描述符,值类型为bool
```
const char* OH_ED_KEY_TIME_STAMP
```
**描述:**
提供统一的surface Buffer附属数据的字符描述符。
@syscap SystemCapability.Multimedia.Media.CodecBase
**描述:**
表面的额外数据中时间戳的键,值类型为int64
\@
syscap SystemCapability.Multimedia.Media.CodecBase
### OH_MD_KEY_AAC_IS_ADTS
```
const char* OH_MD_KEY_AAC_IS_ADTS
```
**描述:**
aac格式的键,值类型为uint32_t,aac解码器支持。
### OH_MD_KEY_ALBUM
```
const char* OH_MD_KEY_ALBUM
```
**描述:**
相册的源格式键,值类型为字符串
### OH_MD_KEY_ALBUM_ARTIST
```
const char* OH_MD_KEY_ALBUM_ARTIST
```
**描述:**
源格式专辑_artist的键,值类型为字符串
### OH_MD_KEY_ARTIST
```
const char* OH_MD_KEY_ARTIST
```
**描述:**
艺术家的源格式Key,值类型为字符串
### OH_MD_KEY_AUD_CHANNEL_COUNT
...
...
@@ -389,8 +801,10 @@ const char* OH_ED_KEY_TIME_STAMP
```
const char* OH_MD_KEY_AUD_CHANNEL_COUNT
```
**描述:**
音频声道数的字符描述符,值类型为uint32_t
**描述:**
音频通道计数键,值类型为uint32_t
### OH_MD_KEY_AUD_SAMPLE_RATE
...
...
@@ -399,8 +813,10 @@ const char* OH_MD_KEY_AUD_CHANNEL_COUNT
```
const char* OH_MD_KEY_AUD_SAMPLE_RATE
```
**描述:**
音频采样率的字符描述符,值类型为uint32_t
**描述:**
音频采样率键,值类型为uint32_t
### OH_MD_KEY_AUDIO_SAMPLE_FORMAT
...
...
@@ -409,8 +825,10 @@ const char* OH_MD_KEY_AUD_SAMPLE_RATE
```
const char* OH_MD_KEY_AUDIO_SAMPLE_FORMAT
```
**描述:**
音频采样格式的字符描述符,值类型为uint32_t
**描述:**
音频原始格式的键,值类型为uint32_t
### OH_MD_KEY_BITRATE
...
...
@@ -419,8 +837,46 @@ const char* OH_MD_KEY_AUDIO_SAMPLE_FORMAT
```
const char* OH_MD_KEY_BITRATE
```
**描述:**
比特率的字符描述符,值类型为uint32_t
**描述:**
比特率的键,值类型为uint32_t。
### OH_MD_KEY_BITS_PER_CODED_SAMPLE
```
const char* OH_MD_KEY_BITS_PER_CODED_SAMPLE
```
**描述:**
每个编码样本位数的键,值类型为uint32_t,支持flac编码器。
### OH_MD_KEY_CHANNEL_LAYOUT
```
const char* OH_MD_KEY_CHANNEL_LAYOUT
```
**描述:**
所需编码通道布局的键。值类型为int64_t,此键仅适用于编码器。
### OH_MD_KEY_CODEC_CONFIG
```
const char* OH_MD_KEY_CODEC_CONFIG
```
**描述:**
编解码器特定数据的键,值类型为uint8_t
\*
。
### OH_MD_KEY_CODEC_MIME
...
...
@@ -429,8 +885,82 @@ const char* OH_MD_KEY_BITRATE
```
const char* OH_MD_KEY_CODEC_MIME
```
**描述:**
mime类型的字符描述符,值类型为string
**描述:**
编解码器mime类型的键,值类型为字符串。
### OH_MD_KEY_COLOR_PRIMARIES
```
const char* OH_MD_KEY_COLOR_PRIMARIES
```
**描述:**
视频颜色原色键, 值类型为int32_t
### OH_MD_KEY_COMMENT
```
const char* OH_MD_KEY_COMMENT
```
**描述:**
源格式注释的键,值类型为字符串
### OH_MD_KEY_COMPLIANCE_LEVEL
```
const char* OH_MD_KEY_COMPLIANCE_LEVEL
```
**描述:**
flac合规性级别的键,值类型为int32_t。
### OH_MD_KEY_COPYRIGHT
```
const char* OH_MD_KEY_COPYRIGHT
```
**描述:**
源格式版权的键,值类型为字符串
### OH_MD_KEY_DATE
```
const char* OH_MD_KEY_DATE
```
**描述:**
源格式日期的键,值类型为字符串
### OH_MD_KEY_DESCRIPTION
```
const char* OH_MD_KEY_DESCRIPTION
```
**描述:**
源格式描述的键,值类型为字符串
### OH_MD_KEY_DURATION
...
...
@@ -439,8 +969,10 @@ mime类型的字符描述符,值类型为string
```
const char* OH_MD_KEY_DURATION
```
**描述:**
duration的字符描述符,值类型为int64_t
**描述:**
持续时间键,值类型为int64_t。
### OH_MD_KEY_FRAME_RATE
...
...
@@ -449,8 +981,22 @@ duration的字符描述符,值类型为int64_t
```
const char* OH_MD_KEY_FRAME_RATE
```
**描述:**
视频帧率的字符描述符,值类型为double
**描述:**
视频帧率的键,值类型为双精度浮点。
### OH_MD_KEY_GENRE
```
const char* OH_MD_KEY_GENRE
```
**描述:**
源格式类型的键,值类型为字符串
### OH_MD_KEY_HEIGHT
...
...
@@ -459,8 +1005,10 @@ const char* OH_MD_KEY_FRAME_RATE
```
const char* OH_MD_KEY_HEIGHT
```
**描述:**
视频高度的字符描述符,值类型为uint32_t
**描述:**
视频高度键,值类型为uint32_t
### OH_MD_KEY_I_FRAME_INTERVAL
...
...
@@ -469,8 +1017,58 @@ const char* OH_MD_KEY_HEIGHT
```
const char* OH_MD_KEY_I_FRAME_INTERVAL
```
**描述:**
I帧间隔时长的字符描述符,值类型为int32_t,单位是毫秒
**描述:**
关键帧间隔的键,值类型为int32_t,单位为毫秒。
### OH_MD_KEY_IDENTIFICATION_HEADER
```
const char* OH_MD_KEY_IDENTIFICATION_HEADER
```
**描述:**
vorbis标识头的键,值类型为uint8_t
\*
,仅vorbis解码器支持。
### OH_MD_KEY_LANGUAGE
```
const char* OH_MD_KEY_LANGUAGE
```
**描述:**
源格式语言的键,值类型为字符串
### OH_MD_KEY_LYRICS
```
const char* OH_MD_KEY_LYRICS
```
**描述:**
源格式歌词的键,值类型为字符串
### OH_MD_KEY_MATRIX_COEFFICIENTS
```
const char* OH_MD_KEY_MATRIX_COEFFICIENTS
```
**描述:**
视频矩阵系数的键,值类型为int32_t
### OH_MD_KEY_MAX_INPUT_SIZE
...
...
@@ -479,8 +1077,10 @@ I帧间隔时长的字符描述符,值类型为int32_t,单位是毫秒
```
const char* OH_MD_KEY_MAX_INPUT_SIZE
```
**描述:**
最大输入尺寸的字符描述符,值类型为uint32_t
**描述:**
最大输入大小的键,值类型为uint32_t
### OH_MD_KEY_PIXEL_FORMAT
...
...
@@ -489,8 +1089,10 @@ const char* OH_MD_KEY_MAX_INPUT_SIZE
```
const char* OH_MD_KEY_PIXEL_FORMAT
```
**描述:**
视频像素格式的字符描述符,值类型为int32_t,具体见
[
OH_AVPixelFormat
](
_core.md#oh_avpixelformat
)
**描述:**
视频像素格式的键,值类型为int32_t,具体见
[
OH_AVPixelFormat
](
_core.md#oh_avpixelformat
)
### OH_MD_KEY_PROFILE
...
...
@@ -499,8 +1101,46 @@ const char* OH_MD_KEY_PIXEL_FORMAT
```
const char* OH_MD_KEY_PROFILE
```
**描述:**
音视频编码能力的字符描述符,值类型为int32_t,具体见
[
OH_AVCProfile
](
#oh_avcprofile
)
或
[
OH_AACProfile
](
#oh_aacprofile
)
**描述:**
编码模板,值类型为数字,具体见
[
OH_AVCProfile
](
#oh_avcprofile
)
,
[
OH_AACProfile
](
#oh_aacprofile
)
或
[
OH_HEVCProfile
](
#oh_hevcprofile
)
。
### OH_MD_KEY_QUALITY
```
const char* OH_MD_KEY_QUALITY
```
**描述:**
所需编码质量的键。值类型为uint32_t,此键仅适用于配置在恒定质量模式下的编码器
### OH_MD_KEY_RANGE_FLAG
```
const char* OH_MD_KEY_RANGE_FLAG
```
**描述:**
视频YUV取值范围标志的键,值类型为bool
### OH_MD_KEY_REQUEST_I_FRAME
```
const char* OH_MD_KEY_REQUEST_I_FRAME
```
**描述:**
请求立即编码I帧的键。值类型为布尔值
### OH_MD_KEY_ROTATION
...
...
@@ -509,57 +1149,105 @@ const char* OH_MD_KEY_PROFILE
```
const char* OH_MD_KEY_ROTATION
```
**描述:**
surface旋转角度的字符描述符,值类型为int32_t,限于{0, 90, 180, 270},默认值为0
**描述:**
表面旋转角度的键。值类型为int32_t:应为{0, 90, 180, 270},默认值为0。
### OH_MD_KEY_TRACK_TYPE
### OH_MD_KEY_SBR
```
const char* OH_MD_KEY_
TRACK_TYPE
const char* OH_MD_KEY_
SBR
```
**描述:**
为媒体播放框架提供统一的字符描述符。
@syscap SystemCapability.Multimedia.Media.CodecBase
**描述:**
aac sbr模式的键,值类型为uint32_t,aac编码器支持。
### OH_MD_KEY_VIDEO_ENCODE_BITRATE_MODE
### OH_MD_KEY_SETUP_HEADER
```
const char* OH_MD_KEY_
VIDEO_ENCODE_BITRATE_MODE
const char* OH_MD_KEY_
SETUP_HEADER
```
**描述:**
视频编码比特率模式的字符描述符,值类型为int32_t,具体见
[
OH_VideoEncodeBitrateMode
](
_video_encoder.md#oh_videoencodebitratemode
)
**描述:**
vorbis设置头的键,值类型为uint8_t
\*
,仅vorbis解码器支持。
### OH_MD_KEY_WIDTH
### OH_MD_KEY_TITLE
```
const char* OH_MD_KEY_WIDTH
const char* OH_MD_KEY_TITLE
```
**描述:**
源格式标题的键,值类型为字符串
### OH_MD_KEY_TRACK_COUNT
```
const char* OH_MD_KEY_TRACK_COUNT
```
**描述:**
视频宽度的字符描述符,值类型为uint32_t
**描述:**
### pts
源格式轨道计数的键,值类型为uint32_t
### OH_MD_KEY_TRACK_TYPE
```
int64_t OH_AVCodecBufferAttr::pts
const char* OH_MD_KEY_TRACK_TYPE
```
**描述:**
以微秒为单位表示的该Buffer的Presentation时间戳
**描述:**
### size
提供统一容器,用于存储媒体描述。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
### OH_MD_KEY_TRANSFER_CHARACTERISTICS
```
int32_t OH_AVCodecBufferAttr::size
const char* OH_MD_KEY_TRANSFER_CHARACTERISTICS
```
**描述:**
视频转移特性的键,值类型为int32_t
### OH_MD_KEY_VIDEO_ENCODE_BITRATE_MODE
```
**描述:**
以字节为单位表示的该Buffer内所包含数据的大小
const char* OH_MD_KEY_VIDEO_ENCODE_BITRATE_MODE
```
**描述:**
视频编码码率模式,值类型为int32_t,具体见
[
OH_VideoEncodeBitrateMode
](
_video_encoder.md#oh_videoencodebitratemode
)
### OH_MD_KEY_WIDTH
```
const char* OH_MD_KEY_WIDTH
```
**描述:**
视频宽度的键,值类型为uint32_t
zh-cn/application-dev/reference/native-apis/_core.md
浏览文件 @
dc2cd5e0
...
...
@@ -5,17 +5,19 @@
Core模块提供用于播放框架的基础骨干能力,包含内存、错误码、格式载体等相关函数。
@syscap SystemCapability.Multimedia.Media.Core
\
@
syscap SystemCapability.Multimedia.Media.Core
**起始版本:**
9
## 汇总
### 文件
| 名称 | 描述 |
| 名称 | 描述 |
| -------- | -------- |
|
[
native_averrors.h
](
native__averrors_8h.md
)
| 声明了媒体播放框架的错误码。
<br>
引用文件:
<multimedia
/
player_framework
/
native_averrors.h
>
|
|
[
native_avformat.h
](
native__avformat_8h.md
)
| 声明了格式相关的函数和枚举。
<br>
引用文件:
<multimedia
/
player_framework
/
native_avformat.h
>
|
...
...
@@ -24,42 +26,46 @@ Core模块提供用于播放框架的基础骨干能力,包含内存、错误
### 类型定义
| 名称 | 描述 |
| 名称 | 描述 |
| -------- | -------- |
|
[
OH_AVErrCode
](
#oh_averrcode
)
| 音视频错误码。
|
|
[
OH_AVPixelFormat
](
#oh_avpixelformat
)
| AVPixel 格式的枚举
。
|
|
[
OH_AVErrCode
](
#oh_averrcode
)
| 音视频错误码。 |
|
[
OH_AVPixelFormat
](
#oh_avpixelformat
)
| AVPixel 格式的枚举
类。
|
### 枚举
| 名称 | 描述 |
| 名称 | 描述 |
| -------- | -------- |
|
[
OH_AVErrCode
](
#oh_averrcode
)
{
<br/>
**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
<br/>
} | 音视频错误码。 |
|
[
OH_AVPixelFormat
](
#oh_avpixelformat
)
{
<br/>
**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
<br/>
} | AVPixel 格式的枚举。 |
|
[
OH_AVErrCode
](
#oh_averrcode
)
{
<br/>
AV_ERR_OK = 0, AV_ERR_NO_MEMORY = 1, AV_ERR_OPERATE_NOT_PERMIT = 2, AV_ERR_INVALID_VAL = 3,
<br/>
AV_ERR_IO = 4, AV_ERR_TIMEOUT = 5, AV_ERR_UNKNOWN = 6, AV_ERR_SERVICE_DIED = 7,
<br/>
AV_ERR_INVALID_STATE = 8, AV_ERR_UNSUPPORT = 9, AV_ERR_EXTEND_START = 100
<br/>
} | 音视频错误码。 |
|
[
OH_AVPixelFormat
](
#oh_avpixelformat
)
{
<br/>
AV_PIXEL_FORMAT_YUVI420 = 1, AV_PIXEL_FORMAT_NV12 = 2, AV_PIXEL_FORMAT_NV21 = 3, AV_PIXEL_FORMAT_SURFACE_FORMAT = 4,
<br/>
AV_PIXEL_FORMAT_RGBA = 5
<br/>
} | AVPixel 格式的枚举类。 |
### 函数
| 名称 | 描述 |
| 名称 | 描述 |
| -------- | -------- |
|
[
OH_AVFormat_Create
](
#oh_avformat_create
)
(
void
)
| 创建一个OH_AVFormat句柄指针,用以读写数据。 |
|
[
OH_AVFormat_Destroy
](
#oh_avformat_destroy
)
(
struct
OH_AVFormat
\*
format) | 销毁指定OH_AVFormat句柄资源。 |
|
[
OH_AVFormat_Copy
](
#oh_avformat_copy
)
(
struct
OH_AVFormat
\*
to, struct OH_AVFormat
\*
from) | 拷贝OH_AVFormat句柄资源. |
|
[
OH_AVFormat_SetIntValue
](
#oh_avformat_setintvalue
)
(
struct
OH_AVFormat
\*
format, const char
\*
key, int32_t value) | 向OH_AVFormat写入Int数据. |
|
[
OH_AVFormat_SetLongValue
](
#oh_avformat_setlongvalue
)
(
struct
OH_AVFormat
\*
format, const char
\*
key, int64_t value) | 向OH_AVFormat写入Long数据。 |
|
[
OH_AVFormat_SetFloatValue
](
#oh_avformat_setfloatvalue
)
(
struct
OH_AVFormat
\*
format, const char
\*
key, float value) | 向OH_AVFormat写入Float数据。 |
|
[
OH_AVFormat_SetDoubleValue
](
#oh_avformat_setdoublevalue
)
(
struct
OH_AVFormat
\*
format, const char
\*
key, double value) | 向OH_AVFormat写入Double数据。 |
|
[
OH_AVFormat_SetStringValue
](
#oh_avformat_setstringvalue
)
(
struct
OH_AVFormat
\*
format, const char
\*
key, const char
\*
value) | 向OH_AVFormat写入String数据。 |
|
[
OH_AVFormat_SetBuffer
](
#oh_avformat_setbuffer
)
(
struct
OH_AVFormat
\*
format, const char
\*
key, const uint8_t
\*
addr, size_t size) | 向OH_AVFormat写入一块指定长度的数据。 |
|
[
OH_AVFormat_GetIntValue
](
#oh_avformat_getintvalue
)
(
struct
OH_AVFormat
\*
format, const char
\*
key, int32_t
\*
out) | 从OH_AVFormat读取Int数据。 |
|
[
OH_AVFormat_GetLongValue
](
#oh_avformat_getlongvalue
)
(
struct
OH_AVFormat
\*
format, const char
\*
key, int64_t
\*
out) | 从OH_AVFormat读取Long数据。 |
|
[
OH_AVFormat_GetFloatValue
](
#oh_avformat_getfloatvalue
)
(
struct
OH_AVFormat
\*
format, const char
\*
key, float
\*
out) | 从OH_AVFormat读取Float数据。 |
|
[
OH_AVFormat_GetDoubleValue
](
#oh_avformat_getdoublevalue
)
(
struct
OH_AVFormat
\*
format, const char
\*
key, double
\*
out) | 从OH_AVFormat读取Double数据。 |
|
[
OH_AVFormat_GetStringValue
](
#oh_avformat_getstringvalue
)
(
struct
OH_AVFormat
\*
format, const char
\*
key, const char
\*\*
out) | 从OH_AVFormat读取Double数据。 |
|
[
OH_AVFormat_GetBuffer
](
#oh_avformat_getbuffer
)
(
struct
OH_AVFormat
\*
format, const char
\*
key, uint8_t
\*\*
addr, size_t
\*
size) | 从OH_AVFormat读取一块指定长度的数据。 |
|
[
OH_AVFormat_DumpInfo
](
#oh_avformat_dumpinfo
)
(
struct
OH_AVFormat
\*
format) | 以字符串的形式输出OH_AVFormat所包含的信息。 |
|
[
OH_AVMemory_GetAddr
](
#oh_avmemory_getaddr
)
(
struct
OH_AVMemory
\*
mem) | 获取入参的内存虚拟地址。 |
|
[
OH_AVMemory_GetSize
](
#oh_avmemory_getsize
)
(
struct
OH_AVMemory
\*
mem) | 获取入参的内存长度。 |
|
\*
[
OH_AVFormat_Create
](
#oh_avformat_create
)
(
void
)
| 创建OH_AVFormat句柄,用于读取数据。 |
|
\*
[
OH_AVFormat_CreateAudioFormat
](
#oh_avformat_createaudioformat
)
(
const
char
\*
mimeType, int32_t sampleRate, int32_t channelCount) | 创建音频OH_AVFormat句柄指针,用于读写数据。 |
|
\*
[
OH_AVFormat_CreateVideoFormat
](
#oh_avformat_createvideoformat
)
(
const
char
\*
mimeType, int32_t width, int32_t height) | 创建视频OH_AVFormat句柄指针,用于读写数据。 |
|
[
OH_AVFormat_Destroy
](
#oh_avformat_destroy
)
(
struct
OH_AVFormat
\*
format) | 销毁OH_AVFormat句柄。 |
|
[
OH_AVFormat_Copy
](
#oh_avformat_copy
)
(
struct
OH_AVFormat
\*
to, struct OH_AVFormat
\*
from) | 复制OH_AVFormat句柄。 |
|
[
OH_AVFormat_SetIntValue
](
#oh_avformat_setintvalue
)
(
struct
OH_AVFormat
\*
format, const char
\*
key, int32_t value) | 将int数据写入OH_AVFormat。 |
|
[
OH_AVFormat_SetLongValue
](
#oh_avformat_setlongvalue
)
(
struct
OH_AVFormat
\*
format, const char
\*
key, int64_t value) | 将long数据写入OH_AVFormat。 |
|
[
OH_AVFormat_SetFloatValue
](
#oh_avformat_setfloatvalue
)
(
struct
OH_AVFormat
\*
format, const char
\*
key, float value) | 将float数据写入OH_AVFormat。 |
|
[
OH_AVFormat_SetDoubleValue
](
#oh_avformat_setdoublevalue
)
(
struct
OH_AVFormat
\*
format, const char
\*
key, double value) | 将double数据写入OH_AVFormat。 |
|
[
OH_AVFormat_SetStringValue
](
#oh_avformat_setstringvalue
)
(
struct
OH_AVFormat
\*
format, const char
\*
key, const char
\*
value) | 将string数据写入OH_AVFormat。 |
|
[
OH_AVFormat_SetBuffer
](
#oh_avformat_setbuffer
)
(
struct
OH_AVFormat
\*
format, const char
\*
key, const uint8_t
\*
addr, size_t size) | 将指定长度的数据块写入OH_AVFormat。 |
|
[
OH_AVFormat_GetIntValue
](
#oh_avformat_getintvalue
)
(
struct
OH_AVFormat
\*
format, const char
\*
key, int32_t
\*
out) | 从OH_AVFormat读取int数据。 |
|
[
OH_AVFormat_GetLongValue
](
#oh_avformat_getlongvalue
)
(
struct
OH_AVFormat
\*
format, const char
\*
key, int64_t
\*
out) | 从OH_AVFormat读取long数据。 |
|
[
OH_AVFormat_GetFloatValue
](
#oh_avformat_getfloatvalue
)
(
struct
OH_AVFormat
\*
format, const char
\*
key, float
\*
out) | 从OH_AVFormat读取float数据。 |
|
[
OH_AVFormat_GetDoubleValue
](
#oh_avformat_getdoublevalue
)
(
struct
OH_AVFormat
\*
format, const char
\*
key, double
\*
out) | 从OH_AVFormat读取double数据。 |
|
[
OH_AVFormat_GetStringValue
](
#oh_avformat_getstringvalue
)
(
struct
OH_AVFormat
\*
format, const char
\*
key, const char
\*\*
out) | 从OH_AVFormat读取string数据。 |
|
[
OH_AVFormat_GetBuffer
](
#oh_avformat_getbuffer
)
(
struct
OH_AVFormat
\*
format, const char
\*
key, uint8_t
\*\*
addr, size_t
\*
size) | 从OH_AVFormat中读取指定长度的数据块。 |
|
\*
[
OH_AVFormat_DumpInfo
](
#oh_avformat_dumpinfo
)
(
struct
OH_AVFormat
\*
format) | 输出OH_AVFormat中包含的字符串。 |
|
\*
[
OH_AVMemory_Create
](
#oh_avmemory_create
)
(
int32_t
size) | 创建OH_AVMemory实例的指针。 |
|
\*
[
OH_AVMemory_GetAddr
](
#oh_avmemory_getaddr
)
(
struct
OH_AVMemory
\*
mem) | 获取入参的内存虚拟地址。 |
|
[
OH_AVMemory_GetSize
](
#oh_avmemory_getsize
)
(
struct
OH_AVMemory
\*
mem) | 获取入参的内存长度。 |
|
[
OH_AVMemory_Destroy
](
#oh_avmemory_destroy
)
(
struct
OH_AVMemory
\*
mem) | 释放OH_AVMemory实例指针的资源。 |
## 类型定义说明
...
...
@@ -71,10 +77,16 @@ Core模块提供用于播放框架的基础骨干能力,包含内存、错误
```
typedef enum OH_AVErrCodeOH_AVErrCode
```
**描述:**
**描述:**
音视频错误码。
@syscap SystemCapability.Multimedia.Media.Core
\@
syscap SystemCapability.Multimedia.Media.Core
**起始版本:**
9
### OH_AVPixelFormat
...
...
@@ -83,10 +95,16 @@ typedef enum OH_AVErrCodeOH_AVErrCode
```
typedef enum OH_AVPixelFormatOH_AVPixelFormat
```
**描述:**
AVPixel 格式的枚举。
@syscap SystemCapability.Multimedia.Media.Core
**描述:**
视频像素格式的枚举类。
\@
syscap SystemCapability.Multimedia.Media.Core
**起始版本:**
9
## 枚举类型说明
...
...
@@ -98,24 +116,30 @@ AVPixel 格式的枚举。
```
enum OH_AVErrCode
```
**描述:**
**描述:**
音视频错误码。
@syscap SystemCapability.Multimedia.Media.Core
\@
syscap 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_EXTEND_START
| 扩展错误码初始值 |
| 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
...
...
@@ -124,18 +148,24 @@ enum OH_AVErrCode
```
enum OH_AVPixelFormat
```
**描述:**
AVPixel 格式的枚举。
@syscap SystemCapability.Multimedia.Media.Core
**描述:**
视频像素格式的枚举类。
\@
syscap 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格式 |
| AV_PIXEL_FORMAT_RGBA
| RGBA8888 |
| 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 |
## 函数说明
...
...
@@ -147,23 +177,27 @@ AVPixel 格式的枚举。
```
bool OH_AVFormat_Copy (struct OH_AVFormat * to, struct OH_AVFormat * from )
```
**描述:**
拷贝OH_AVFormat句柄资源.
@syscap SystemCapability.Multimedia.Media.Core
**描述:**
**参数:**
复制OH_AVFormat句柄。
| 名称 | 描述 |
\@
syscap SystemCapability.Multimedia.Media.Core
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| to | 接收数据的OH_AVFormat句柄指针 |
| from | 被拷贝数据的OH_AVFormat句柄指针 |
| to | OH_AVFormat句柄,用于接收数据 |
| from | 指向复制数据的OH_AVFormat句柄的指针 |
**返回:**
**返回:**
返回值为true表示成功,为false表示失败
返回值为TRUE表示成功
**起始版本:**
返回值为FALSE表示失败
9
### OH_AVFormat_Create()
...
...
@@ -172,14 +206,80 @@ bool OH_AVFormat_Copy (struct OH_AVFormat * to, struct OH_AVFormat * from )
```
struct OH_AVFormat* OH_AVFormat_Create (void )
```
**描述:**
创建一个OH_AVFormat句柄指针,用以读写数据。
@syscap SystemCapability.Multimedia.Media.Core
**描述:**
创建OH_AVFormat句柄,用于读取数据。
\@
syscap SystemCapability.Multimedia.Media.Core
**返回:**
返回指向OH_AVFormat实例的指针
**起始版本:**
9
### OH_AVFormat_CreateAudioFormat()
```
struct OH_AVFormat* OH_AVFormat_CreateAudioFormat (const char * mimeType, int32_t sampleRate, int32_t channelCount )
```
**描述:**
**返回:**
创建音频OH_AVFormat句柄指针,用于读写数据。
返回OH_AVFormat实例的指针
\@
syscap SystemCapability.Multimedia.Media.Core
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| mimeType | MIME类型 |
| sampleRate | 采样率,单位Hz。 |
| channelCount | 声道个数,如1为单声道,2为双声道。 |
**返回:**
返回指向OH_AVFormat实例的指针。
**起始版本:**
10
### OH_AVFormat_CreateVideoFormat()
```
struct OH_AVFormat* OH_AVFormat_CreateVideoFormat (const char * mimeType, int32_t width, int32_t height )
```
**描述:**
创建视频OH_AVFormat句柄指针,用于读写数据。
\@
syscap SystemCapability.Multimedia.Media.Core
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| mimeType | MIME类型 |
| width | 宽度,单位为px。 |
| height | 高度,单位为px。 |
**返回:**
返回指向OH_AVFormat实例的指针。
**起始版本:**
10
### OH_AVFormat_Destroy()
...
...
@@ -188,20 +288,22 @@ struct OH_AVFormat* OH_AVFormat_Create (void )
```
void OH_AVFormat_Destroy (struct OH_AVFormat * format)
```
**描述:**
销毁指定OH_AVFormat句柄资源。
@syscap SystemCapability.Multimedia.Media.Core
**描述:**
销毁OH_AVFormat句柄。
**参数:**
\@
syscap SystemCapability.Multimedia.Media.Core
| 名称 | 描述 |
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| format | 指向OH_AVFormat实例的指针
|
| format | 指向OH_AVFormat实例的指针
。
|
**
返回:
**
**
起始版本:
**
void
9
### OH_AVFormat_DumpInfo()
...
...
@@ -210,20 +312,26 @@ void
```
const char* OH_AVFormat_DumpInfo (struct OH_AVFormat * format)
```
**描述:**
以字符串的形式输出OH_AVFormat所包含的信息。
@syscap SystemCapability.Multimedia.Media.Core
**描述:**
**参数:**
输出OH_AVFormat中包含的字符串。
| 名称 | 描述 |
\@
syscap SystemCapability.Multimedia.Media.Core
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| format | 指向OH_AVFormat实例的指针 |
| format | 指向OH_AVFormat实例的指针 |
**返回:**
**返回:**
返回一个由key和data组成的字符串。
返回由键值和数据组成的字符串指针
**起始版本:**
9
### OH_AVFormat_GetBuffer()
...
...
@@ -232,25 +340,29 @@ const char* OH_AVFormat_DumpInfo (struct OH_AVFormat * format)
```
bool OH_AVFormat_GetBuffer (struct OH_AVFormat * format, const char * key, uint8_t ** addr, size_t * size )
```
**描述:**
从OH_AVFormat读取一块指定长度的数据。
@syscap SystemCapability.Multimedia.Media.Core
**描述:**
**参数:**
从OH_AVFormat中读取指定长度的数据块。
| 名称 | 描述 |
\@
syscap SystemCapability.Multimedia.Media.Core
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| format | 指向OH_AVFormat实例的指针 |
| key | 读写数据的键值 |
| addr | 生命周期是format持有,伴随format销毁,如果调用者需要长期持有,必须进行内存拷贝 |
| size | 读写数据的长度 |
| format | 指向OH_AVFormat实例的指针。 |
| key | 读写数据的键。 |
| addr | 生命周期与format相同,与format一同销毁。 如果调用者需要长时间保持它,必须进行内存拷贝。 |
| size | 读写数据的长度。 |
**返回:**
**返回:**
返回值为true表示成功,为false表示失败。
返回值为TRUE表示成功
**起始版本:**
返回值为FALSE表示失败
9
### OH_AVFormat_GetDoubleValue()
...
...
@@ -259,24 +371,28 @@ bool OH_AVFormat_GetBuffer (struct OH_AVFormat * format, const char * key, uint8
```
bool OH_AVFormat_GetDoubleValue (struct OH_AVFormat * format, const char * key, double * out )
```
**描述:**
从OH_AVFormat读取Double数据。
@syscap SystemCapability.Multimedia.Media.Core
**描述:**
从OH_AVFormat读取double数据。
**参数:**
\@
syscap SystemCapability.Multimedia.Media.Core
| 名称 | 描述 |
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| format | 指向OH_AVFormat实例的指针
|
| key | 读取数据的键
值
|
| out | 读取
的数据
|
| format | 指向OH_AVFormat实例的指针 |
| key | 读取数据的键 |
| out | 读取
数据的值
|
**返回
:
**
**返回
:
**
返回值为
TRUE表示成功
返回值为
true表示成功,为false表示失败
返回值为FALSE表示失败
**起始版本:**
9
### OH_AVFormat_GetFloatValue()
...
...
@@ -285,24 +401,28 @@ bool OH_AVFormat_GetDoubleValue (struct OH_AVFormat * format, const char * key,
```
bool OH_AVFormat_GetFloatValue (struct OH_AVFormat * format, const char * key, float * out )
```
**描述:**
**描述:**
从OH_AVFormat读取Float数据。
@syscap SystemCapability.Multimedia.Media.Core
\
@
syscap SystemCapability.Multimedia.Media.Core
**参数
:
**
**参数
:
**
| 名称 | 描述 |
| 名称 | 描述 |
| -------- | -------- |
| format | 指向OH_AVFormat实例的指针 |
| key | 读取数据的键值 |
| out | 读取的数据 |
| format | 指向OH_AVFormat实例的指针 |
| key | 读取数据的键 |
| out | 读取数据的值 |
**返回:**
**返回:**
返回值为true表示成功,为false表示失败
返回值为TRUE表示成功
**起始版本:**
返回值为FALSE表示失败
9
### OH_AVFormat_GetIntValue()
...
...
@@ -311,24 +431,24 @@ bool OH_AVFormat_GetFloatValue (struct OH_AVFormat * format, const char * key, f
```
bool OH_AVFormat_GetIntValue (struct OH_AVFormat * format, const char * key, int32_t * out )
```
**描述:**
从OH_AVFormat读取Int数据。
@syscap SystemCapability.Multimedia.Media.Core
**描述:**
**参数:**
从OH_AVFormat读取int数据。
| 名称 | 描述 |
| -------- | -------- |
| format | 指向OH_AVFormat实例的指针 |
| key | 读取数据的键值 |
| out | 读取的数据 |
\@
syscap SystemCapability.Multimedia.Media.Core
**参数:**
**返回:**
| 名称 | 描述 |
| -------- | -------- |
| format | 指向OH_AVFormat实例的指针 |
| key | 读取数据的键 |
| out | 读取数据的值 |
返回值为TRUE表示成功
**返回:**
返回值为
FALSE
表示失败
返回值为
true表示成功,为false
表示失败
### OH_AVFormat_GetLongValue()
...
...
@@ -337,24 +457,28 @@ bool OH_AVFormat_GetIntValue (struct OH_AVFormat * format, const char * key, int
```
bool OH_AVFormat_GetLongValue (struct OH_AVFormat * format, const char * key, int64_t * out )
```
**描述:**
从OH_AVFormat读取Long数据。
@syscap SystemCapability.Multimedia.Media.Core
**描述:**
从OH_AVFormat读取long数据。
\@
syscap SystemCapability.Multimedia.Media.Core
**参数
:
**
**参数
:
**
| 名称 | 描述 |
| 名称 | 描述 |
| -------- | -------- |
| format | 指向OH_AVFormat实例的指针
|
| key | 读取数据的键
值
|
| out | 读取
的数据
|
| format | 指向OH_AVFormat实例的指针 |
| key | 读取数据的键 |
| out | 读取
数据的值
|
**返回
:
**
**返回
:
**
返回值为
TRUE表示成功
返回值为
true表示成功,为false表示失败
返回值为FALSE表示失败
**起始版本:**
9
### OH_AVFormat_GetStringValue()
...
...
@@ -363,24 +487,28 @@ bool OH_AVFormat_GetLongValue (struct OH_AVFormat * format, const char * key, in
```
bool OH_AVFormat_GetStringValue (struct OH_AVFormat * format, const char * key, const char ** out )
```
**描述:**
从OH_AVFormat读取Double数据。
@syscap SystemCapability.Multimedia.Media.Core
**描述:**
**参数:**
从OH_AVFormat读取string数据。
| 名称 | 描述 |
\@
syscap SystemCapability.Multimedia.Media.Core
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| format | 指向OH_AVFormat实例的指针 |
| key | 读取数据的键值 |
| out | 读取的字符串指针,指向的数据生命周期伴随GetString更新,伴随format销毁,如果调用者需要长期持有,必须进行内存拷贝 |
| format | 指向OH_AVFormat实例的指针 |
| key | 读取数据的键 |
| out | 读取string指针,out数据的生命周期与format内string对应。 如果调用者需要长时间保持它,必须内存拷贝 |
**返回:**
**返回:**
返回值为true表示成功,为false表示失败
返回值为TRUE表示成功
**起始版本:**
返回值为FALSE表示失败
9
### OH_AVFormat_SetBuffer()
...
...
@@ -389,25 +517,29 @@ bool OH_AVFormat_GetStringValue (struct OH_AVFormat * format, const char * key,
```
bool OH_AVFormat_SetBuffer (struct OH_AVFormat * format, const char * key, const uint8_t * addr, size_t size )
```
**描述:**
向OH_AVFormat写入一块指定长度的数据。
@syscap SystemCapability.Multimedia.Media.Core
**描述:**
将指定长度的数据块写入OH_AVFormat。
**参数:**
\@
syscap SystemCapability.Multimedia.Media.Core
| 名称 | 描述 |
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| format | 指向OH_AVFormat实例的指针
|
| key | 写入数据的键
值
|
| addr | 写入
的数据地址
|
| size | 写入
的数据长度
|
| format | 指向OH_AVFormat实例的指针 |
| key | 写入数据的键 |
| addr | 写入
数据的地址
|
| size | 写入
数据的长度
|
**返回
:
**
**返回
:
**
返回值为
TRUE表示成功
返回值为
true表示成功,为false表示失败
返回值为FALSE表示失败
**起始版本:**
9
### OH_AVFormat_SetDoubleValue()
...
...
@@ -416,24 +548,28 @@ bool OH_AVFormat_SetBuffer (struct OH_AVFormat * format, const char * key, const
```
bool OH_AVFormat_SetDoubleValue (struct OH_AVFormat * format, const char * key, double value )
```
**描述:**
向OH_AVFormat写入Double数据。
@syscap SystemCapability.Multimedia.Media.Core
**描述:**
将double数据写入OH_AVFormat。
**参数:**
\@
syscap SystemCapability.Multimedia.Media.Core
| 名称 | 描述 |
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| format | 指向OH_AVFormat实例的指针 |
| key | 写入数据的键值 |
| value | 写入的数据 |
| format | 指向OH_AVFormat实例的指针 |
| key | 写入数据的键 |
| value | 写入数据的值 |
**返回:**
**返回:**
返回值为true表示成功,为false表示失败
返回值为TRUE表示成功
**起始版本:**
返回值为FALSE表示失败
9
### OH_AVFormat_SetFloatValue()
...
...
@@ -442,24 +578,28 @@ bool OH_AVFormat_SetDoubleValue (struct OH_AVFormat * format, const char * key,
```
bool OH_AVFormat_SetFloatValue (struct OH_AVFormat * format, const char * key, float value )
```
**描述:**
向OH_AVFormat写入Float数据。
@syscap SystemCapability.Multimedia.Media.Core
**描述:**
将float数据写入OH_AVFormat。
\@
syscap SystemCapability.Multimedia.Media.Core
**参数
:
**
**参数
:
**
| 名称 | 描述 |
| 名称 | 描述 |
| -------- | -------- |
| format | 指向OH_AVFormat实例的指针
|
| key | 写入数据的键
值
|
| value | 写入
的数据
|
| format | 指向OH_AVFormat实例的指针 |
| key | 写入数据的键 |
| value | 写入
数据的值
|
**返回
:
**
**返回
:
**
返回值为
TRUE表示成功
返回值为
true表示成功,为false表示失败
返回值为FALSE表示失败
**起始版本:**
9
### OH_AVFormat_SetIntValue()
...
...
@@ -468,24 +608,28 @@ bool OH_AVFormat_SetFloatValue (struct OH_AVFormat * format, const char * key, f
```
bool OH_AVFormat_SetIntValue (struct OH_AVFormat * format, const char * key, int32_t value )
```
**描述:**
向OH_AVFormat写入Int数据.
@syscap SystemCapability.Multimedia.Media.Core
**描述:**
**参数:**
将int数据写入OH_AVFormat。
| 名称 | 描述 |
\@
syscap SystemCapability.Multimedia.Media.Core
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| format | 指向OH_AVFormat实例的指针
|
| key | 写入数据的键
值
|
| value | 写入
的数据
|
| format | 指向OH_AVFormat实例的指针 |
| key | 写入数据的键 |
| value | 写入
数据的值
|
**返回
:
**
**返回
:
**
返回值为
TRUE表示成功
返回值为
true表示成功,为false表示失败
返回值为FALSE表示失败
**起始版本:**
9
### OH_AVFormat_SetLongValue()
...
...
@@ -494,24 +638,28 @@ bool OH_AVFormat_SetIntValue (struct OH_AVFormat * format, const char * key, int
```
bool OH_AVFormat_SetLongValue (struct OH_AVFormat * format, const char * key, int64_t value )
```
**描述:**
向OH_AVFormat写入Long数据。
@syscap SystemCapability.Multimedia.Media.Core
**描述:**
将long数据写入OH_AVFormat。
**参数:**
\@
syscap SystemCapability.Multimedia.Media.Core
| 名称 | 描述 |
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| format | 指向OH_AVFormat实例的指针
|
| key | 写入数据的键
值
|
| value | 写入
的数据
|
| format | 指向OH_AVFormat实例的指针 |
| key | 写入数据的键 |
| value | 写入
数据的值
|
**返回
:
**
**返回
:
**
返回值为
TRUE表示成功
返回值为
true表示成功,为false表示失败
返回值为FALSE表示失败
**起始版本:**
9
### OH_AVFormat_SetStringValue()
...
...
@@ -520,24 +668,84 @@ bool OH_AVFormat_SetLongValue (struct OH_AVFormat * format, const char * key, in
```
bool OH_AVFormat_SetStringValue (struct OH_AVFormat * format, const char * key, const char * value )
```
**描述:**
向OH_AVFormat写入String数据。
@syscap SystemCapability.Multimedia.Media.Core
**描述:**
将string数据写入OH_AVFormat。
\@
syscap SystemCapability.Multimedia.Media.Core
**参数
:
**
**参数
:
**
| 名称 | 描述 |
| 名称 | 描述 |
| -------- | -------- |
| format | 指向OH_AVFormat实例的指针
|
| key | 写入数据的键
值
|
| value | 写入
的数据
|
| format | 指向OH_AVFormat实例的指针 |
| key | 写入数据的键 |
| value | 写入
数据的值
|
**返回
:
**
**返回
:
**
返回值为
TRUE表示成功
返回值为
true表示成功,为false表示失败
返回值为FALSE表示失败
**起始版本:**
9
### OH_AVMemory_Create()
```
OH_AVMemory* OH_AVMemory_Create (int32_t size)
```
**描述:**
创建OH_AVMemory实例的指针
\@
syscap SystemCapability.Multimedia.Media.Core
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| size | 创建内存的大小,单位字节 |
**返回:**
如果创建成功返回OH_AVMemory实例的指针,如果失败,返回nullptr, 使用结束后需要通过OH_AVMemory_Destroy释放内存
**起始版本:**
10
### OH_AVMemory_Destroy()
```
OH_AVErrCode OH_AVMemory_Destroy (struct OH_AVMemory * mem)
```
**描述:**
释放OH_AVMemory实例指针的资源
\@
syscap SystemCapability.Multimedia.Media.Core
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| mem | 指向OH_AVMemory实例的指针 |
**返回:**
如果释放成功返回AV_ERR_OK, 如果失败返回具体错误码, 参考
[
OH_AVErrCode
](
#oh_averrcode
)
**起始版本:**
10
### OH_AVMemory_GetAddr()
...
...
@@ -546,22 +754,26 @@ bool OH_AVFormat_SetStringValue (struct OH_AVFormat * format, const char * key,
```
uint8_t* OH_AVMemory_GetAddr (struct OH_AVMemory * mem)
```
**描述:**
获取入参的内存虚拟地址。
@syscap SystemCapability.Multimedia.Media.Core
**描述:**
获取入参的内存虚拟地址
\@
syscap SystemCapability.Multimedia.Media.Core
**参数
:
**
**参数
:
**
| 名称 | 描述 |
| 名称 | 描述 |
| -------- | -------- |
| mem | 指向OH_AVMemory实例的指针
|
| mem | 指向OH_AVMemory实例的指针 |
**返回
:
**
**返回
:
**
如果内存有效,返回内存的虚拟地址
如果内存有效,返回内存的虚拟地址
,如果内存无效,返回nullptr
如果内存无效,返回nullptr
**起始版本:**
9
### OH_AVMemory_GetSize()
...
...
@@ -570,19 +782,23 @@ uint8_t* OH_AVMemory_GetAddr (struct OH_AVMemory * mem)
```
int32_t OH_AVMemory_GetSize (struct OH_AVMemory * mem)
```
**描述:**
获取入参的内存长度。
@syscap SystemCapability.Multimedia.Media.Core
**描述:**
**参数:**
获取入参的内存长度
| 名称 | 描述 |
\@
syscap SystemCapability.Multimedia.Media.Core
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| mem | 指向OH_AVMemory实例的指针
|
| mem | 指向OH_AVMemory实例的指针 |
**返回
:
**
**返回
:
**
如果内存有效,返回内存长度
如果内存有效,返回内存长度
,如果内存无效,返回-1
如果内存无效,返回-1
**起始版本:**
9
zh-cn/application-dev/reference/native-apis/_o_h___a_v_codec_async_callback.md
浏览文件 @
dc2cd5e0
...
...
@@ -3,14 +3,15 @@
## 概述
AVCodec所有的异步回调函数指针集合。注册一个该结构体实例给OH_AVCodec实例,并处理通过该回调报告的信息,以确保AVCodec正常运转。
OH_AVCodec中所有异步回调函数指针的集合。将该结构体的实例注册到OH_AVCodec实例中, 并处理回调上报的信息,以保证OH_AVCodec的正常运行。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
@syscap SystemCapability.Multimedia.Media.CodecBase
参数
**起始版本:**
9
**相关模块
:
**
**相关模块
:
**
[
CodecBase
](
_codec_base.md
)
...
...
@@ -20,9 +21,76 @@ AVCodec所有的异步回调函数指针集合。注册一个该结构体实例
### 成员变量
| 名称 | 描述 |
| 名称 | 描述 |
| -------- | -------- |
|
**onError**
| 监听AVCodec运行错误,参考
[
OH_AVCodecOnError
](
_codec_base.md#oh_avcodeconerror
)
|
|
**onStreamChanged**
| 监听编解码流信息,参考
[
OH_AVCodecOnStreamChanged
](
_codec_base.md#oh_avcodeconstreamchanged
)
|
|
**onNeedInputData**
| 监听编解码需要输入数据,参考
[
OH_AVCodecOnNeedInputData
](
_codec_base.md#oh_avcodeconneedinputdata
)
|
|
**onNeedOutputData**
| 监听编解码产生输出数据,参考
[
OH_AVCodecOnNewOutputData
](
_codec_base.md#oh_avcodeconnewoutputdata
)
|
|
[
onError
](
#onerror
)
| 监控编解码器操作错误,请参见
[
OH_AVCodecOnError
](
_codec_base.md#oh_avcodeconerror
)
|
|
[
onStreamChanged
](
#onstreamchanged
)
| 监控编解码器流变化,请参见
[
OH_AVCodecOnStreamChanged
](
_codec_base.md#oh_avcodeconstreamchanged
)
|
|
[
onNeedInputData
](
#onneedinputdata
)
| 监控编解码器需要输入数据,请参见
[
OH_AVCodecOnNeedInputData
](
_codec_base.md#oh_avcodeconneedinputdata
)
|
|
[
onNeedOutputData
](
#onneedoutputdata
)
| 监控编解码器已生成输出数据,请参见
[
OH_AVCodecOnNewOutputData
](
_codec_base.md#oh_avcodeconnewoutputdata
)
|
## 结构体成员变量说明
### onError
```
OH_AVCodecOnError onError
```
**描述:**
监控编解码器操作错误,请参见
[
OH_AVCodecOnError
](
_codec_base.md#oh_avcodeconerror
)
**起始版本:**
9
### onNeedInputData
```
OH_AVCodecOnNeedInputData onNeedInputData
```
**描述:**
监控编解码器需要输入数据,请参见
[
OH_AVCodecOnNeedInputData
](
_codec_base.md#oh_avcodeconneedinputdata
)
**起始版本:**
9
### onNeedOutputData
```
OH_AVCodecOnNewOutputData onNeedOutputData
```
**描述:**
监控编解码器已生成输出数据,请参见
[
OH_AVCodecOnNewOutputData
](
_codec_base.md#oh_avcodeconnewoutputdata
)
**起始版本:**
9
### onStreamChanged
```
OH_AVCodecOnStreamChanged onStreamChanged
```
**描述:**
监控编解码器流变化,请参见
[
OH_AVCodecOnStreamChanged
](
_codec_base.md#oh_avcodeconstreamchanged
)
**起始版本:**
9
zh-cn/application-dev/reference/native-apis/_o_h___a_v_codec_buffer_attr.md
浏览文件 @
dc2cd5e0
...
...
@@ -3,14 +3,15 @@
## 概述
定义OH_AVCodec的
Buffer
描述信息。
定义OH_AVCodec的
缓冲区
描述信息。
@syscap SystemCapability.Multimedia.Media.CodecBase
\
@
syscap SystemCapability.Multimedia.Media.CodecBase
**起始版本:**
9
**相关模块
:
**
**相关模块
:
**
[
CodecBase
](
_codec_base.md
)
...
...
@@ -20,9 +21,76 @@
### 成员变量
| 名称 | 描述 |
| 名称 | 描述 |
| -------- | -------- |
|
[
pts
](
_codec_base.md#pts
)
| 以微秒为单位表示的该Buffer的Presentation时间戳 |
|
[
size
](
_codec_base.md#size
)
| 以字节为单位表示的该Buffer内所包含数据的大小 |
|
[
offset
](
_codec_base.md#offset
)
| 有效数据在该Buffer内的起始偏移量 |
|
[
flags
](
_codec_base.md#flags
)
| 该Buffer具有的标记,也是多个
[
OH_AVCodecBufferFlags
](
_codec_base.md#oh_avcodecbufferflags
)
的组合 |
|
[
pts
](
#pts
)
| 此缓冲区的显示时间戳(以微秒为单位) |
|
[
size
](
#size
)
| 缓冲区中包含的数据的大小(以字节为单位) |
|
[
offset
](
#offset
)
| 此缓冲区中有效数据的起始偏移量 |
|
[
flags
](
#flags
)
| 此缓冲区具有的标志,也是多个
[
OH_AVCodecBufferFlags
](
_codec_base.md#oh_avcodecbufferflags
)
的组合。 |
## 结构体成员变量说明
### pts
```
int64_t pts
```
**描述:**
此缓冲区的显示时间戳(以微秒为单位)
**起始版本:**
9
### size
```
int32_t size
```
**描述:**
缓冲区中包含的数据的大小(以字节为单位)
**起始版本:**
9
### offset
```
int32_t offset
```
**描述:**
此缓冲区中有效数据的起始偏移量
**起始版本:**
9
### flags
```
uint32_t flags
```
**描述:**
此缓冲区具有的标志,也是多个
[
OH_AVCodecBufferFlags
](
_codec_base.md#oh_avcodecbufferflags
)
的组合。
**起始版本:**
9
zh-cn/application-dev/reference/native-apis/_o_h___a_v_range.md
0 → 100644
浏览文件 @
dc2cd5e0
# OH_AVRange
## 概述
范围包含最小值和最大值。
\@
syscap SystemCapability.Multimedia.Media.CodecBase
**起始版本:**
10
**相关模块:**
[
AVCapability
](
_a_v_capability.md
)
## 汇总
### 成员变量
| 名称 | 描述 |
| -------- | -------- |
|
[
minVal
](
#minval
)
| 范围下限 |
|
[
maxVal
](
#maxval
)
| 范围上限 |
## 结构体成员变量说明
### minVal
```
int32_t minVal
```
**描述:**
范围下限
**起始版本:**
10
### maxVal
```
int32_t maxVal
```
**描述:**
范围上限
**起始版本:**
10
zh-cn/application-dev/reference/native-apis/_video_decoder.md
浏览文件 @
dc2cd5e0
...
...
@@ -3,11 +3,12 @@
## 概述
VideoDecoder模块提供用于视频解码
功能的函数。该模块在部分设备上可能不支持,可以通过
[
CanIUse
](
../syscap.md
)
接口确认
。
VideoDecoder模块提供用于视频解码
的函数
。
@syscap SystemCapability.Multimedia.Media.VideoDecoder
\
@
syscap SystemCapability.Multimedia.Media.VideoDecoder
**起始版本:**
9
...
...
@@ -16,31 +17,32 @@ VideoDecoder模块提供用于视频解码功能的函数。该模块在部分
### 文件
| 名称 | 描述 |
| 名称 | 描述 |
| -------- | -------- |
|
[
native_avcodec_videodecoder.h
](
native__avcodec__videodecoder_8h.md
)
| 声明用于视频解码的Native API。
<br>
引用文件:
<multimedia
/
player_framework
/
native_avcodec_videodecoder.h
>
|
### 函数
| 名称 | 描述 |
| 名称 | 描述 |
| -------- | -------- |
|
[
OH_VideoDecoder_CreateByMime
](
#oh_videodecoder_createbymime
)
(
const
char
\*
mime) | 通过mime类型创建一个视频解码器实例,大多数情况下推荐使用该接口。 |
|
[
OH_VideoDecoder_CreateByName
](
#oh_videodecoder_createbyname
)
(
const
char
\*
name) | 通过视频解码器名称创建一个视频解码器实例,使用这个接口的前提是必须清楚解码器准确的名称。 |
|
[
OH_VideoDecoder_Destroy
](
#oh_videodecoder_destroy
)
(
OH_AVCodec
\*
codec) | 清空解码器内部资源,并销毁解码器实例。 |
|
[
OH_VideoDecoder_SetCallback
](
#oh_videodecoder_setcallback
)
(
OH_AVCodec
\*
codec,
[
OH_AVCodecAsyncCallback
](
_o_h___a_v_codec_async_callback.md
)
callback, void
\*
userData) | 设置异步回调函数,使得你的应用能够响应视频解码器产生的事件,该接口被调用必须是在Prepare被调用前。 |
|
[
OH_VideoDecoder_SetSurface
](
#oh_videodecoder_setsurface
)
(
OH_AVCodec
\*
codec, OHNativeWindow
\*
window) | 指定输出Surface,以提供视频解码输出,该接口被调用必须是在Prepare被调用前。 |
|
[
OH_VideoDecoder_Configure
](
#oh_videodecoder_configure
)
(
OH_AVCodec
\*
codec, OH_AVFormat
\*
format) | 配置视频解码器,典型地,需要配置被解码视频轨道的描述信息,这些信息能够从容器中提取出来, 该接口被调用必须是在Prepare被调用前。 |
|
[
OH_VideoDecoder_Prepare
](
#oh_videodecoder_prepare
)
(
OH_AVCodec
\*
codec) | 准备解码器内部资源,调用该接口前必须先调用Configure接口。 |
|
[
OH_VideoDecoder_Start
](
#oh_videodecoder_start
)
(
OH_AVCodec
\*
codec) | 启动解码器,该接口必须在已经Prepare成功后调用。 在启动成功后,解码器将开始报告
[
OH_AVCodecOnNeedInputData
](
_codec_base.md#oh_avcodeconneedinputdata
)
事件。 |
|
[
OH_VideoDecoder_Stop
](
#oh_videodecoder_stop
)
(
OH_AVCodec
\*
codec) | 停止解码器。在停止后可通过Start重新进入Started状态,但需要注意的是,若先前给解码器输入过 Codec-Specific-Data,则需要重新输入。 |
|
[
OH_VideoDecoder_Flush
](
#oh_videodecoder_flush
)
(
OH_AVCodec
\*
codec) | 清空解码器内部缓存的输入输出数据。在该接口被调用后,所有先前通过异步回调报告的Buffer的索引都将 失效,确保不要再访问这些索引对应的Buffers。 |
|
[
OH_VideoDecoder_Reset
](
#oh_videodecoder_reset
)
(
OH_AVCodec
\*
codec) | 重置解码器。如需继续解码工作,需要重新调用Configure接口以配置该解码器实例。 |
|
[
OH_VideoDecoder_GetOutputDescription
](
#oh_videodecoder_getoutputdescription
)
(
OH_AVCodec
\*
codec) | 获取该解码器输出数据的描述信息,需要注意的是,返回值所指向的OH_AVFormat实例的生命周期 将会再下一次调用该接口时或者该OH_AVCodec实例被销毁时失效。 |
|
[
OH_VideoDecoder_SetParameter
](
#oh_videodecoder_setparameter
)
(
OH_AVCodec
\*
codec, OH_AVFormat
\*
format) | 向解码器设置动态参数,注意:该接口仅能在解码器被启动后调用,同时错误的参数设置,可能会导致解码失败。 |
|
[
OH_VideoDecoder_PushInputData
](
#oh_videodecoder_pushinputdata
)
(
OH_AVCodec
\*
codec, uint32_t index,
[
OH_AVCodecBufferAttr
](
_o_h___a_v_codec_buffer_attr.md
)
attr) | 将填充好数据的输入Buffer提交给视频解码器。
[
OH_AVCodecOnNeedInputData
](
_codec_base.md#oh_avcodeconneedinputdata
)
回调会报告可用的输入 Buffer及对应的索引值。一旦指定索引的Buffer被提交给解码器,直到再一次收到
[
OH_AVCodecOnNeedInputData
](
_codec_base.md#oh_avcodeconneedinputdata
)
回调报告相同索引的Buffer可用前,该Buffer都不可以再次被访问。另外,对于部分解码器,要求在最开始给解码器输入 Codec-Specific-Data,用以初始化解码器的解码过程,例如H264格式的PPS/SPS数据。 |
|
[
OH_VideoDecoder_RenderOutputData
](
#oh_videodecoder_renderoutputdata
)
(
OH_AVCodec
\*
codec, uint32_t index) | 将处理结束的输出Buffer交还给解码器,并通知解码器完成将该Buffer内包含的解码后的数据在输出Surface上渲染。 如果先前未配置输出Surface,调用该接口仅仅将指定索引对应的输出Buffer交还给解码器。 |
|
[
OH_VideoDecoder_FreeOutputData
](
#oh_videodecoder_freeoutputdata
)
(
OH_AVCodec
\*
codec, uint32_t index) | 将处理结束的输出Buffer交还给解码器。 |
|
\*
[
OH_VideoDecoder_CreateByMime
](
#oh_videodecoder_createbymime
)
(
const
char
\*
mime) | 从MIME类型创建视频解码器实例,大多数情况下建议使用。 |
|
\*
[
OH_VideoDecoder_CreateByName
](
#oh_videodecoder_createbyname
)
(
const
char
\*
name) | 通过视频解码器名称创建视频解码器实例。 使用此接口的前提是知道解码器的确切名称。 |
|
[
OH_VideoDecoder_Destroy
](
#oh_videodecoder_destroy
)
(
OH_AVCodec
\*
codec) | 清理解码器内部资源,销毁解码器实例。 |
|
[
OH_VideoDecoder_SetCallback
](
#oh_videodecoder_setcallback
)
(
OH_AVCodec
\*
codec, OH_AVCodecAsyncCallback callback, void
\*
userData) | 设置异步回调函数,以便您的应用程序可以响应视频解码器生成的事件。 |
|
[
OH_VideoDecoder_SetSurface
](
#oh_videodecoder_setsurface
)
(
OH_AVCodec
\*
codec, OHNativeWindow
\*
window) | 指定输出表面以提供视频解码输出,必须在调用Prepare之前调用此接口。 |
|
[
OH_VideoDecoder_Configure
](
#oh_videodecoder_configure
)
(
OH_AVCodec
\*
codec, OH_AVFormat
\*
format) | 配置视频解码器,通常需要配置解码视频轨迹的描述信息,这些信息可以从容器中提取。 |
|
[
OH_VideoDecoder_Prepare
](
#oh_videodecoder_prepare
)
(
OH_AVCodec
\*
codec) | 要准备解码器的内部资源,在调用该接口之前,必须调用Configure接口。 |
|
[
OH_VideoDecoder_Start
](
#oh_videodecoder_start
)
(
OH_AVCodec
\*
codec) | 启动解码器,准备成功后必须调用此接口。 |
|
[
OH_VideoDecoder_Stop
](
#oh_videodecoder_stop
)
(
OH_AVCodec
\*
codec) | 停止解码器。 |
|
[
OH_VideoDecoder_Flush
](
#oh_videodecoder_flush
)
(
OH_AVCodec
\*
codec) | 清除解码器中缓存的输入和输出数据。 |
|
[
OH_VideoDecoder_Reset
](
#oh_videodecoder_reset
)
(
OH_AVCodec
\*
codec) | 重置解码器。 |
|
\*
[
OH_VideoDecoder_GetOutputDescription
](
#oh_videodecoder_getoutputdescription
)
(
OH_AVCodec
\*
codec) | 获取解码器输出数据的描述信息。 |
|
[
OH_VideoDecoder_SetParameter
](
#oh_videodecoder_setparameter
)
(
OH_AVCodec
\*
codec, OH_AVFormat
\*
format) | 设置解码器的动态参数。 |
|
[
OH_VideoDecoder_PushInputData
](
#oh_videodecoder_pushinputdata
)
(
OH_AVCodec
\*
codec, uint32_t index, OH_AVCodecBufferAttr attr) | 将填充数据的输入缓冲区提交给视频解码器。 |
|
[
OH_VideoDecoder_RenderOutputData
](
#oh_videodecoder_renderoutputdata
)
(
OH_AVCodec
\*
codec, uint32_t index) | 将处理后的输出Buffer返回给解码器,并通知解码器完成在输出表面上渲染Buffer中包含的解码数据。 |
|
[
OH_VideoDecoder_FreeOutputData
](
#oh_videodecoder_freeoutputdata
)
(
OH_AVCodec
\*
codec, uint32_t index) | 将处理后的输出缓冲区返回到解码器。 |
|
[
OH_VideoDecoder_IsValid
](
#oh_videodecoder_isvalid
)
(
OH_AVCodec
\*
codec, bool
\*
isValid) | 检查当前编解码实例是否有效。 |
## 函数说明
...
...
@@ -52,23 +54,29 @@ VideoDecoder模块提供用于视频解码功能的函数。该模块在部分
```
OH_AVErrCode OH_VideoDecoder_Configure (OH_AVCodec * codec, OH_AVFormat * format )
```
**描述:**
配置视频解码器,典型地,需要配置被解码视频轨道的描述信息,这些信息能够从容器中提取出来, 该接口被调用必须是在Prepare被调用前。
@syscap SystemCapability.Multimedia.Media.VideoDecoder
**描述:**
配置视频解码器,通常需要配置解码视频轨迹的描述信息,这些信息可以从容器中提取。
在调用准备之前,必须调用此接口。
\@
syscap SystemCapability.Multimedia.Media.VideoDecoder
**参数
:
**
**参数
:
**
| 名称 | 描述 |
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针
|
| format | 指向OH_AVFormat的指针,用
以给出待解码视频轨道的描述信息
|
| codec | 指向OH_AVCodec实例的指针 |
| format | 指向OH_AVFormat的指针,用
于给出要解码的视频轨道的描述
|
**返回
:
**
**返回
:
**
执行成功返回AV_ERR_OK
如果执行成功,则返回AV_ERR_OK, 否则返回特定错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
执行失败返回具体错误码,参考
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
**起始版本:**
9
### OH_VideoDecoder_CreateByMime()
...
...
@@ -77,20 +85,26 @@ OH_AVErrCode OH_VideoDecoder_Configure (OH_AVCodec * codec, OH_AVFormat * format
```
OH_AVCodec* OH_VideoDecoder_CreateByMime (const char * mime)
```
**描述:**
通过mime类型创建一个视频解码器实例,大多数情况下推荐使用该接口。
@syscap SystemCapability.Multimedia.Media.VideoDecoder
**描述:**
**参数:**
从MIME类型创建视频解码器实例,大多数情况下建议使用。
| 名称 | 描述 |
\@
syscap SystemCapability.Multimedia.Media.VideoDecoder
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| mime |
mime类型描述字符串,参考
[
OH_AVCODEC_MIMETYPE_VIDEO_AVC
](
_codec_base.md#oh_avcodec_mimetype_video_avc
)
|
| mime |
MIME类型描述字符串,请参阅{
\@
链接AVCODEC_MIME_TYPE}。
|
**返回
:
**
**返回
:
**
返回一个指向OH_AVCodec实例的指针
返回一个指向OH_AVCodec实例的指针。
**起始版本:**
9
### OH_VideoDecoder_CreateByName()
...
...
@@ -99,20 +113,26 @@ OH_AVCodec* OH_VideoDecoder_CreateByMime (const char * mime)
```
OH_AVCodec* OH_VideoDecoder_CreateByName (const char * name)
```
**描述:**
通过视频解码器名称创建一个视频解码器实例,使用这个接口的前提是必须清楚解码器准确的名称。
@syscap SystemCapability.Multimedia.Media.VideoDecoder
**描述:**
通过视频解码器名称创建视频解码器实例。 使用此接口的前提是知道解码器的确切名称。
**参数:**
\@
syscap SystemCapability.Multimedia.Media.VideoDecoder
| 名称 | 描述 |
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| name | 视频解码器名称 |
| name | 视频编解码器名称。 |
**返回:**
**返回:**
返回指向OH_AVCodec实例的指针。
返回一个指向OH_AVCodec实例的指针
**起始版本:**
9
### OH_VideoDecoder_Destroy()
...
...
@@ -121,22 +141,26 @@ OH_AVCodec* OH_VideoDecoder_CreateByName (const char * name)
```
OH_AVErrCode OH_VideoDecoder_Destroy (OH_AVCodec * codec)
```
**描述:**
清空解码器内部资源,并销毁解码器实例。
@syscap SystemCapability.Multimedia.Media.VideoDecoder
**描述:**
清理解码器内部资源,销毁解码器实例。
\@
syscap SystemCapability.Multimedia.Media.VideoDecoder
**参数
:
**
**参数
:
**
| 名称 | 描述 |
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针
|
| codec | 指向OH_AVCodec实例的指针
。
|
**返回
:
**
**返回
:
**
执行成功返回AV_ERR_OK
如果执行成功,则返回AV_ERR_OK, 否则返回特定错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
执行失败返回具体错误码,参考
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
**起始版本:**
9
### OH_VideoDecoder_Flush()
...
...
@@ -145,22 +169,28 @@ OH_AVErrCode OH_VideoDecoder_Destroy (OH_AVCodec * codec)
```
OH_AVErrCode OH_VideoDecoder_Flush (OH_AVCodec * codec)
```
**描述:**
清空解码器内部缓存的输入输出数据。在该接口被调用后,所有先前通过异步回调报告的Buffer的索引都将 失效,确保不要再访问这些索引对应的Buffers。
@syscap SystemCapability.Multimedia.Media.VideoDecoder
**描述:**
清除解码器中缓存的输入和输出数据。
**参数:**
调用此接口后,以前通过异步回调上报的所有缓冲区索引都将失效, 请确保不要访问这些索引对应的缓冲区。
| 名称 | 描述 |
\@
syscap SystemCapability.Multimedia.Media.VideoDecoder
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针 |
| codec | 指向OH_AVCodec实例的指针。 |
**返回:**
**返回:**
如果执行成功,则返回AV_ERR_OK, 否则返回特定错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
执行成功返回AV_ERR_OK
**起始版本:**
执行失败返回具体错误码,参考
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
9
### OH_VideoDecoder_FreeOutputData()
...
...
@@ -169,23 +199,27 @@ OH_AVErrCode OH_VideoDecoder_Flush (OH_AVCodec * codec)
```
OH_AVErrCode OH_VideoDecoder_FreeOutputData (OH_AVCodec * codec, uint32_t index )
```
**描述:**
将处理结束的输出Buffer交还给解码器。
@syscap SystemCapability.Multimedia.Media.VideoDecoder
**描述:**
将处理后的输出缓冲区返回到解码器。
\@
syscap SystemCapability.Multimedia.Media.VideoDecoder
**参数
:
**
**参数
:
**
| 名称 | 描述 |
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针
|
| index | 输出Buffer对应的索引值
|
| codec | 指向OH_AVCodec实例的指针
。
|
| index | 输出Buffer对应的索引值
。
|
**返回
:
**
**返回
:
**
执行成功返回AV_ERR_OK
如果执行成功,则返回AV_ERR_OK, 否则返回特定错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
执行失败返回具体错误码,参考
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
**起始版本:**
9
### OH_VideoDecoder_GetOutputDescription()
...
...
@@ -194,20 +228,57 @@ OH_AVErrCode OH_VideoDecoder_FreeOutputData (OH_AVCodec * codec, uint32_t index
```
OH_AVFormat* OH_VideoDecoder_GetOutputDescription (OH_AVCodec * codec)
```
**描述:**
获取该解码器输出数据的描述信息,需要注意的是,返回值所指向的OH_AVFormat实例的生命周期 将会再下一次调用该接口时或者该OH_AVCodec实例被销毁时失效。
@syscap SystemCapability.Multimedia.Media.VideoDecoder
**描述:**
获取解码器输出数据的描述信息,参见{
\@
链接OH_AVFormat}。
需要注意的是,返回值指向的OH_AVFormat实例的生命周期需要调用者手动释放。
\@
syscap SystemCapability.Multimedia.Media.VideoDecoder
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针。 |
**返回:**
返回指向OH_AVFormat实例的指针。
**起始版本:**
9
### OH_VideoDecoder_IsValid()
```
OH_AVErrCode OH_VideoDecoder_IsValid (OH_AVCodec * codec, bool * isValid )
```
**描述:**
检查当前编解码实例是否有效。可用于后台故障恢复或APP回切。
\@
syscap SystemCapability.Multimedia.Media.VideoDecoder
**参数
:
**
**参数
:
**
| 名称 | 描述 |
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针 |
| codec | 指向OH_AVCodec实例的指针。 |
| isVaild | 输出参数。指向布尔实例的指针,如果编解码器实例有效,则为true,如果编解码器实例无效,则为false。 |
**返回
:
**
**返回
:
**
返回AVFormat实例的指针
如果执行成功,则返回AV_ERR_OK, 否则返回特定错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
**起始版本:**
10
### OH_VideoDecoder_Prepare()
...
...
@@ -216,22 +287,26 @@ OH_AVFormat* OH_VideoDecoder_GetOutputDescription (OH_AVCodec * codec)
```
OH_AVErrCode OH_VideoDecoder_Prepare (OH_AVCodec * codec)
```
**描述:**
准备解码器内部资源,调用该接口前必须先调用Configure接口。
@syscap SystemCapability.Multimedia.Media.VideoDecoder
**描述:**
要准备解码器的内部资源,在调用该接口之前,必须调用Configure接口。
**参数:**
\@
syscap SystemCapability.Multimedia.Media.VideoDecoder
| 名称 | 描述 |
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针 |
| codec | 指向OH_AVCodec实例的指针。 |
**返回:**
**返回:**
如果执行成功,则返回AV_ERR_OK, 否则返回特定错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
执行成功返回AV_ERR_OK
**起始版本:**
执行失败返回具体错误码,参考
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
9
### OH_VideoDecoder_PushInputData()
...
...
@@ -240,24 +315,34 @@ OH_AVErrCode OH_VideoDecoder_Prepare (OH_AVCodec * codec)
```
OH_AVErrCode OH_VideoDecoder_PushInputData (OH_AVCodec * codec, uint32_t index, OH_AVCodecBufferAttr attr )
```
**描述:**
将填充好数据的输入Buffer提交给视频解码器。
[
OH_AVCodecOnNeedInputData
](
_codec_base.md#oh_avcodeconneedinputdata
)
回调会报告可用的输入 Buffer及对应的索引值。一旦指定索引的Buffer被提交给解码器,直到再一次收到
[
OH_AVCodecOnNeedInputData
](
_codec_base.md#oh_avcodeconneedinputdata
)
回调报告相同索引的Buffer可用前,该Buffer都不可以再次被访问。另外,对于部分解码器,要求在最开始给解码器输入 Codec-Specific-Data,用以初始化解码器的解码过程,例如H264格式的PPS/SPS数据。
@syscap SystemCapability.Multimedia.Media.VideoDecoder
**描述:**
将填充数据的输入缓冲区提交给视频解码器。
**OH_AVCodecOnNeedInputData**
回调将报告可用的输入缓冲区和相应的索引值。
一旦具有指定索引的缓冲区提交到视频解码器,则无法再次访问缓冲区,直到再次收到
**OH_AVCodecOnNeedInputData**
回调,报告具有相同索引的缓冲区可用。
**参数:**
此外,对于某些解码器,需要在开始时向解码器输入编解码特定数据,以初始化解码器的解码过程,如H264格式的PPS/SPS数据。
| 名称 | 描述 |
\@
syscap SystemCapability.Multimedia.Media.VideoDecoder
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针 |
| index | 输入Buffer对应的索引值 |
| attr | 描述该Buffer内所包含数据的信息 |
| codec | 指向OH_AVCodec实例的指针。 |
| index | 输入Buffer对应的索引值。 |
| attr | 描述缓冲区中包含的数据的信息。 |
**返回:**
**返回:**
如果执行成功,则返回AV_ERR_OK, 否则返回特定错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
执行成功返回AV_ERR_OK
**起始版本:**
执行失败返回具体错误码,参考
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
9
### OH_VideoDecoder_RenderOutputData()
...
...
@@ -266,23 +351,29 @@ OH_AVErrCode OH_VideoDecoder_PushInputData (OH_AVCodec * codec, uint32_t index,
```
OH_AVErrCode OH_VideoDecoder_RenderOutputData (OH_AVCodec * codec, uint32_t index )
```
**描述:**
将处理结束的输出Buffer交还给解码器,并通知解码器完成将该Buffer内包含的解码后的数据在输出Surface上渲染。 如果先前未配置输出Surface,调用该接口仅仅将指定索引对应的输出Buffer交还给解码器。
@syscap SystemCapability.Multimedia.Media.VideoDecoder
**描述:**
将处理后的输出Buffer返回给解码器,并通知解码器完成在输出表面上渲染Buffer中包含的解码数据。
如果之前没有配置输出表面,则调用此接口仅将指定索引对应的输出缓冲区返回给解码器。
**参数:**
\@
syscap SystemCapability.Multimedia.Media.VideoDecoder
| 名称 | 描述 |
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针 |
| index | 输出Buffer对应的索引值 |
| codec | 指向OH_AVCodec实例的指针。 |
| index | 输出Buffer对应的索引值。 |
**返回:**
**返回:**
如果执行成功,则返回AV_ERR_OK, 否则返回特定错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
执行成功返回AV_ERR_OK
**起始版本:**
执行失败返回具体错误码,参考
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
9
### OH_VideoDecoder_Reset()
...
...
@@ -291,22 +382,26 @@ OH_AVErrCode OH_VideoDecoder_RenderOutputData (OH_AVCodec * codec, uint32_t inde
```
OH_AVErrCode OH_VideoDecoder_Reset (OH_AVCodec * codec)
```
**描述:**
重置解码器。如需继续解码工作,需要重新调用Configure接口以配置该解码器实例。
@syscap SystemCapability.Multimedia.Media.VideoDecoder
**描述:**
重置解码器。如果要继续解码,需要再次调用Configure接口配置解码器实例。
**参数:**
\@
syscap SystemCapability.Multimedia.Media.VideoDecoder
| 名称 | 描述 |
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针
|
| codec | 指向OH_AVCodec实例的指针
。
|
**返回
:
**
**返回
:
**
执行成功返回AV_ERR_OK
如果执行成功,则返回AV_ERR_OK, 否则返回特定错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
执行失败返回具体错误码,参考
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
**起始版本:**
9
### OH_VideoDecoder_SetCallback()
...
...
@@ -315,24 +410,30 @@ OH_AVErrCode OH_VideoDecoder_Reset (OH_AVCodec * codec)
```
OH_AVErrCode OH_VideoDecoder_SetCallback (OH_AVCodec * codec, OH_AVCodecAsyncCallback callback, void * userData )
```
**描述:**
设置异步回调函数,使得你的应用能够响应视频解码器产生的事件,该接口被调用必须是在Prepare被调用前。
@syscap SystemCapability.Multimedia.Media.VideoDecoder
**描述:**
设置异步回调函数,以便您的应用程序可以响应视频解码器生成的事件。
**参数:**
在调用Prepare之前,必须调用此接口。
| 名称 | 描述 |
\@
syscap SystemCapability.Multimedia.Media.VideoDecoder
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针
|
| callback |
一个包含所有回调函数的集合体,参考
[
OH_AVCodecAsyncCallback
](
_o_h___a_v_codec_async_callback.md
)
|
| userData | 用户特定数据
|
| codec | 指向OH_AVCodec实例的指针
。
|
| callback |
所有回调函数的集合,请参见{
\@
链接OH_AVCodecAsyncCallback}。
|
| userData | 用户特定数据
。
|
**返回
:
**
**返回
:
**
执行成功返回AV_ERR_OK
如果执行成功,则返回AV_ERR_OK, 否则返回特定错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
执行失败返回具体错误码,参考
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
**起始版本:**
9
### OH_VideoDecoder_SetParameter()
...
...
@@ -341,23 +442,29 @@ OH_AVErrCode OH_VideoDecoder_SetCallback (OH_AVCodec * codec, OH_AVCodecAsyncCal
```
OH_AVErrCode OH_VideoDecoder_SetParameter (OH_AVCodec * codec, OH_AVFormat * format )
```
**描述:**
向解码器设置动态参数,注意:该接口仅能在解码器被启动后调用,同时错误的参数设置,可能会导致解码失败。
@syscap SystemCapability.Multimedia.Media.VideoDecoder
**描述:**
设置解码器的动态参数。
注意,该接口只能在解码器启动后调用。 同时,参数配置错误可能会导致解码失败。
**参数:**
\@
syscap SystemCapability.Multimedia.Media.VideoDecoder
| 名称 | 描述 |
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针 |
| format | 指向OH_AVFormat实例的指针 |
| codec | 指向OH_AVCodec实例的指针。 |
| format | 指向OH_AVFormat实例的指针。 |
**返回:**
**返回:**
如果执行成功,则返回AV_ERR_OK, 否则返回特定错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
执行成功返回AV_ERR_OK
**起始版本:**
执行失败返回具体错误码,参考
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
9
### OH_VideoDecoder_SetSurface()
...
...
@@ -366,23 +473,27 @@ OH_AVErrCode OH_VideoDecoder_SetParameter (OH_AVCodec * codec, OH_AVFormat * for
```
OH_AVErrCode OH_VideoDecoder_SetSurface (OH_AVCodec * codec, OHNativeWindow * window )
```
**描述:**
指定输出Surface,以提供视频解码输出,该接口被调用必须是在Prepare被调用前。
@syscap SystemCapability.Multimedia.Media.VideoDecoder
**描述:**
**参数:**
指定输出表面以提供视频解码输出,必须在调用Prepare之前调用此接口。
| 名称 | 描述 |
\@
syscap SystemCapability.Multimedia.Media.VideoDecoder
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针 |
| window | 指向一个OHNativeWindow实例的指针 |
| codec | 指向OH_AVCodec实例的指针。 |
| window | 指向OHNativeWindow实例的指针,请参见{
\@
链接OHNativeWindow}。 |
**返回:**
**返回:**
如果执行成功,则返回AV_ERR_OK, 否则返回特定错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
执行成功返回AV_ERR_OK
**起始版本:**
执行失败返回具体错误码,参考
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
9
### OH_VideoDecoder_Start()
...
...
@@ -391,22 +502,28 @@ OH_AVErrCode OH_VideoDecoder_SetSurface (OH_AVCodec * codec, OHNativeWindow * wi
```
OH_AVErrCode OH_VideoDecoder_Start (OH_AVCodec * codec)
```
**描述:**
启动解码器,该接口必须在已经Prepare成功后调用。 在启动成功后,解码器将开始报告
[
OH_AVCodecOnNeedInputData
](
_codec_base.md#oh_avcodeconneedinputdata
)
事件。
@syscap SystemCapability.Multimedia.Media.VideoDecoder
**描述:**
启动解码器,准备成功后必须调用此接口。
成功启动后,解码器将开始报告NeedInputData事件。
**参数:**
\@
syscap SystemCapability.Multimedia.Media.VideoDecoder
| 名称 | 描述 |
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针 |
| codec | 指向OH_AVCodec实例的指针。 |
**返回:**
**返回:**
如果执行成功,则返回AV_ERR_OK, 否则返回特定错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
执行成功返回AV_ERR_OK
**起始版本:**
执行失败返回具体错误码,参考
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
9
### OH_VideoDecoder_Stop()
...
...
@@ -415,19 +532,25 @@ OH_AVErrCode OH_VideoDecoder_Start (OH_AVCodec * codec)
```
OH_AVErrCode OH_VideoDecoder_Stop (OH_AVCodec * codec)
```
**描述:**
停止解码器。在停止后可通过Start重新进入Started状态,但需要注意的是,若先前给解码器输入过 Codec-Specific-Data,则需要重新输入。
@syscap SystemCapability.Multimedia.Media.VideoDecoder
**描述:**
停止解码器。停止后,您可以通过Start重新进入Started状态。
但需要注意的是,如果编解码器特定数据以前已输入到解码器,则需要再次输入。
\@
syscap SystemCapability.Multimedia.Media.VideoDecoder
**参数
:
**
**参数
:
**
| 名称 | 描述 |
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针
|
| codec | 指向OH_AVCodec实例的指针
。
|
**返回
:
**
**返回
:
**
执行成功返回AV_ERR_OK
如果执行成功,则返回AV_ERR_OK, 否则返回特定错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
执行失败返回具体错误码,参考
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
**起始版本:**
9
zh-cn/application-dev/reference/native-apis/_video_encoder.md
浏览文件 @
dc2cd5e0
...
...
@@ -3,56 +3,61 @@
## 概述
VideoEncoder模块提供用于视频编码功能的函数
和枚举。该模块在部分设备上可能不支持,可以通过
[
CanIUse
](
../syscap.md
)
接口确认
。
VideoEncoder模块提供用于视频编码功能的函数。
@syscap SystemCapability.Multimedia.Media
.VideoEncoder
\@
syscap SystemCapability.Multimedia.Avcodec
.VideoEncoder
**起始版本:**
9
## 汇总
### 文件
| 名称 | 描述 |
| 名称 | 描述 |
| -------- | -------- |
|
[
native_avcodec_videoencoder.h
](
native__avcodec__videoencoder_8h.md
)
| 声明用于视频编码的Native API。
<br>
引用文件:
<multimedia
/
player_framework
/
native_avcodec_videoencoder.h
>
|
### 类型定义
| 名称 | 描述 |
| 名称 | 描述 |
| -------- | -------- |
|
[
OH_VideoEncodeBitrateMode
](
#oh_videoencodebitratemode
)
| 视频编码
的比特率模式。
|
|
[
OH_VideoEncodeBitrateMode
](
#oh_videoencodebitratemode
)
| 视频编码
器的比特率模式。
|
### 枚举
| 名称 | 描述 |
| 名称 | 描述 |
| -------- | -------- |
|
[
OH_VideoEncodeBitrateMode
](
#oh_videoencodebitratemode
)
{
**CBR**
= 0,
**VBR**
= 1,
**CQ**
= 2 } | 视频编码
的比特率模式。
|
|
[
OH_VideoEncodeBitrateMode
](
#oh_videoencodebitratemode
)
{
**CBR**
= 0,
**VBR**
= 1,
**CQ**
= 2 } | 视频编码
器的比特率模式。
|
### 函数
| 名称 | 描述 |
| 名称 | 描述 |
| -------- | -------- |
|
[
OH_VideoEncoder_CreateByMime
](
#oh_videoencoder_createbymime
)
(
const
char
\*
mime) | 通过mime类型创建一个视频编码器实例,大多数情况下推荐使用该接口。 |
|
[
OH_VideoEncoder_CreateByName
](
#oh_videoencoder_createbyname
)
(
const
char
\*
name) | 通过视频编码器名称创建一个视频编码器实例,使用这个接口的前提是必须清楚编码器准确的名称。 |
|
[
OH_VideoEncoder_Destroy
](
#oh_videoencoder_destroy
)
(
OH_AVCodec
\*
codec) | 清空编码器内部资源,并销毁编码器实例。 |
|
[
OH_VideoEncoder_SetCallback
](
#oh_videoencoder_setcallback
)
(
OH_AVCodec
\*
codec,
[
OH_AVCodecAsyncCallback
](
_o_h___a_v_codec_async_callback.md
)
callback, void
\*
userData) | 设置异步回调函数,使得你的应用能够响应视频编码器产生的事件,该接口被调用必须是在Prepare被调用前。 |
|
[
OH_VideoEncoder_Configure
](
#oh_videoencoder_configure
)
(
OH_AVCodec
\*
codec, OH_AVFormat
\*
format) | 配置视频编码器,典型地,需要配置被编码视频轨道的描述信息,该接口被调用必须是在Prepare被调用前。 |
|
[
OH_VideoEncoder_Prepare
](
#oh_videoencoder_prepare
)
(
OH_AVCodec
\*
codec) | 准备编码器内部资源,调用该接口前必须先调用Configure接口。 |
|
[
OH_VideoEncoder_Start
](
#oh_videoencoder_start
)
(
OH_AVCodec
\*
codec) | 启动编码器,该接口必须在已经Prepare成功后调用。 在启动成功后,编码器将开始报告
[
OH_AVCodecOnNeedInputData
](
_codec_base.md#oh_avcodeconneedinputdata
)
事件。 |
|
[
OH_VideoEncoder_Stop
](
#oh_videoencoder_stop
)
(
OH_AVCodec
\*
codec) | 停止编码器。在停止后可通过Start重新进入Started状态。 |
|
[
OH_VideoEncoder_Flush
](
#oh_videoencoder_flush
)
(
OH_AVCodec
\*
codec) | 清空编码器内部缓存的输入输出数据。在该接口被调用后,所有先前通过异步回调报告的Buffer的索引都将 失效,确保不要再访问这些索引对应的Buffers。 |
|
[
OH_VideoEncoder_Reset
](
#oh_videoencoder_reset
)
(
OH_AVCodec
\*
codec) | 重置编码器。如需继续编码工作,需要重新调用Configure接口以配置该编码器实例。 |
|
[
OH_VideoEncoder_GetOutputDescription
](
#oh_videoencoder_getoutputdescription
)
(
OH_AVCodec
\*
codec) | 获取该编码器输出数据的描述信息,需要注意的是,返回值所指向的OH_AVFormat实例的生命周期 将会再下一次调用该接口时或者该OH_AVCodec实例被销毁时失效。 |
|
[
OH_VideoEncoder_SetParameter
](
#oh_videoencoder_setparameter
)
(
OH_AVCodec
\*
codec, OH_AVFormat
\*
format) | 向编码器设置动态参数,注意:该接口仅能在编码器被启动后调用,同时错误的参数设置,可能会导致编码失败。 |
|
[
OH_VideoEncoder_GetSurface
](
#oh_videoencoder_getsurface
)
(
OH_AVCodec
\*
codec, OHNativeWindow
\*\*
window) | 从视频编码器获取输入Surface, 该接口被调用必须是在Prepare被调用前。 |
|
[
OH_VideoEncoder_FreeOutputData
](
#oh_videoencoder_freeoutputdata
)
(
OH_AVCodec
\*
codec, uint32_t index) | 将处理结束的输出Buffer交还给编码器。 |
|
[
OH_VideoEncoder_NotifyEndOfStream
](
#oh_videoencoder_notifyendofstream
)
(
OH_AVCodec
\*
codec) | 通知视频编码器输入码流已结束。surface模式推荐使用该接口通知编码器码流结束。 |
|
\*
[
OH_VideoEncoder_CreateByMime
](
#oh_videoencoder_createbymime
)
(
const
char
\*
mime) | 多数情况下,推荐从MIME类型创建视频编码器实例。 |
|
\*
[
OH_VideoEncoder_CreateByName
](
#oh_videoencoder_createbyname
)
(
const
char
\*
name) | 通过视频编码器名称创建一个视频编码器实例。使用此接口的前提是知道编码器的确切名称。 |
|
[
OH_VideoEncoder_Destroy
](
#oh_videoencoder_destroy
)
(
OH_AVCodec
\*
codec) | 清除编码器的内部资源并销毁编码器实例。 |
|
[
OH_VideoEncoder_SetCallback
](
#oh_videoencoder_setcallback
)
(
OH_AVCodec
\*
codec, OH_AVCodecAsyncCallback callback, void
\*
userData) | 设置异步回调函数,以便您的应用程序能够响应视频编码器事件。 |
|
[
OH_VideoEncoder_Configure
](
#oh_videoencoder_configure
)
(
OH_AVCodec
\*
codec, OH_AVFormat
\*
format) | 配置视频编码器,通常需要配置要编码的视频轨的描述信息。 |
|
[
OH_VideoEncoder_Prepare
](
#oh_videoencoder_prepare
)
(
OH_AVCodec
\*
codec) | 若要准备编码器的内部资源,必须先调用Configure接口,再调用此接口。 |
|
[
OH_VideoEncoder_Start
](
#oh_videoencoder_start
)
(
OH_AVCodec
\*
codec) | 启动编码器, 这个接口必须要在Prepare接口执行成功后调用。 |
|
[
OH_VideoEncoder_Stop
](
#oh_videoencoder_stop
)
(
OH_AVCodec
\*
codec) | 停止编码器。 |
|
[
OH_VideoEncoder_Flush
](
#oh_videoencoder_flush
)
(
OH_AVCodec
\*
codec) | 清除编码器中缓冲的输入和输出数据。 |
|
[
OH_VideoEncoder_Reset
](
#oh_videoencoder_reset
)
(
OH_AVCodec
\*
codec) | 重置编码器。 |
|
\*
[
OH_VideoEncoder_GetOutputDescription
](
#oh_videoencoder_getoutputdescription
)
(
OH_AVCodec
\*
codec) | 获取编码器输出数据的描述信息,详细信息请参阅
**OH_AVFormat**
。 |
|
[
OH_VideoEncoder_SetParameter
](
#oh_videoencoder_setparameter
)
(
OH_AVCodec
\*
codec, OH_AVFormat
\*
format) | 为编码器设置动态参数。 |
|
[
OH_VideoEncoder_GetSurface
](
#oh_videoencoder_getsurface
)
(
OH_AVCodec
\*
codec, OHNativeWindow
\*\*
window) | 从视频编码器获取输入Surface,必须在调用Prepare之前调用此接口。 |
|
[
OH_VideoEncoder_FreeOutputData
](
#oh_videoencoder_freeoutputdata
)
(
OH_AVCodec
\*
codec, uint32_t index) | 将处理后的输出缓冲区返回给编码器。 |
|
[
OH_VideoEncoder_NotifyEndOfStream
](
#oh_videoencoder_notifyendofstream
)
(
OH_AVCodec
\*
codec) | 通知视频编码器输入流已结束。建议使用此接口进行通知。 |
|
[
OH_VideoEncoder_PushInputData
](
#oh_videoencoder_pushinputdata
)
(
OH_AVCodec
\*
codec, uint32_t index, OH_AVCodecBufferAttr attr) | 将填入数据的输入缓冲区提交给视频编码器。 |
|
\*
[
OH_VideoEncoder_GetInputDescription
](
#oh_videoencoder_getinputdescription
)
(
OH_AVCodec
\*
codec) | 获取视频编码器接收的描述信息,调用Configure后调用此接口,请参阅
**OH_AVFormat**
获取详细信息。 |
|
[
OH_VideoEncoder_IsValid
](
#oh_videoencoder_isvalid
)
(
OH_AVCodec
\*
codec, bool
\*
isValid) | 检查当前编解码器实例是否有效。 |
## 类型定义说明
...
...
@@ -64,10 +69,16 @@ VideoEncoder模块提供用于视频编码功能的函数和枚举。该模块
```
typedef enum OH_VideoEncodeBitrateModeOH_VideoEncodeBitrateMode
```
**描述:**
视频编码的比特率模式。
@syscap SystemCapability.Multimedia.Media.VideoEncoder
**描述:**
视频编码器的比特率模式。
\@
syscap SystemCapability.Multimedia.Media.VideoEncoder
**起始版本:**
9
## 枚举类型说明
...
...
@@ -79,16 +90,22 @@ typedef enum OH_VideoEncodeBitrateModeOH_VideoEncodeBitrateMode
```
enum OH_VideoEncodeBitrateMode
```
**描述:**
视频编码的比特率模式。
@syscap SystemCapability.Multimedia.Media.VideoEncoder
**描述:**
视频编码器的比特率模式。
\@
syscap SystemCapability.Multimedia.Media.VideoEncoder
| 枚举值 | 描述 |
**起始版本:**
9
| 枚举值 | 描述 |
| -------- | -------- |
| CBR
| 恒定比特率模式
|
| VBR
| 可变比特率模式
|
| CQ
| 恒定质量模式
|
| CBR
| 恒定比特率模式。
|
| VBR
| 可变比特率模式。
|
| CQ
| 恒定质量模式。
|
## 函数说明
...
...
@@ -100,23 +117,29 @@ enum OH_VideoEncodeBitrateMode
```
OH_AVErrCode OH_VideoEncoder_Configure (OH_AVCodec * codec, OH_AVFormat * format )
```
**描述:**
配置视频编码器,典型地,需要配置被编码视频轨道的描述信息,该接口被调用必须是在Prepare被调用前。
@syscap SystemCapability.Multimedia.Media.VideoEncoder
**描述:**
配置视频编码器,通常需要配置要编码的视频轨的描述信息。
**参数:**
必须在调用Prepare之前,调用此接口。
| 名称 | 描述 |
\@
syscap SystemCapability.Multimedia.Media.VideoEncoder
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针
|
| format | 指向OH_AVFormat的指针,用
以给出待编码视频轨道的描述信息
|
| codec | 指向OH_AVCodec实例的指针
。
|
| format | 指向OH_AVFormat的指针,用
于给出要编码的视频轨的描述。
|
**返回
:
**
**返回
:
**
执行成功返回AV_ERR_OK
如果执行成功,返回AV_ERR_OK 否则,返回特定的错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
**起始版本:**
执行失败返回具体错误码,参考
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
9
### OH_VideoEncoder_CreateByMime()
...
...
@@ -125,20 +148,26 @@ OH_AVErrCode OH_VideoEncoder_Configure (OH_AVCodec * codec, OH_AVFormat * format
```
OH_AVCodec* OH_VideoEncoder_CreateByMime (const char * mime)
```
**描述:**
通过mime类型创建一个视频编码器实例,大多数情况下推荐使用该接口。
@syscap SystemCapability.Multimedia.Media.VideoEncoder
**描述:**
多数情况下,推荐从MIME类型创建视频编码器实例。
\@
syscap SystemCapability.Multimedia.Media.VideoEncoder
**参数
:
**
**参数
:
**
| 名称 | 描述 |
| 名称 | 描述 |
| -------- | -------- |
| mime | mime类型描述字符串,参考
[
OH_AVCODEC_MIMETYPE_VIDEO_AVC
](
_codec_base.md#oh_avcodec_mimetype_video_avc
)
|
| mime | MIME类型描述字符串,请参阅
**AVCODEC_MIME_TYPE**
。 |
**返回:**
返回一个指向OH_AVCodec实例的指针, 需要调用OH_VideoEncoder_Destroy销毁。
**
返回:
**
**
起始版本:
**
返回一个指向OH_AVCodec实例的指针
9
### OH_VideoEncoder_CreateByName()
...
...
@@ -147,20 +176,26 @@ OH_AVCodec* OH_VideoEncoder_CreateByMime (const char * mime)
```
OH_AVCodec* OH_VideoEncoder_CreateByName (const char * name)
```
**描述:**
通过视频编码器名称创建一个视频编码器实例,使用这个接口的前提是必须清楚编码器准确的名称。
@syscap SystemCapability.Multimedia.Media.VideoEncoder
**描述:**
通过视频编码器名称创建一个视频编码器实例。使用此接口的前提是知道编码器的确切名称。
**参数:**
\@
syscap SystemCapability.Multimedia.Media.VideoEncoder
| 名称 | 描述 |
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| name | 视频编码器名称
|
| name | 视频编码器名称
。
|
**返回
:
**
**返回
:
**
返回一个指向OH_AVCodec实例的指针
返回指向OH_AVCodec实例的指针。
**起始版本:**
9
### OH_VideoEncoder_Destroy()
...
...
@@ -169,22 +204,26 @@ OH_AVCodec* OH_VideoEncoder_CreateByName (const char * name)
```
OH_AVErrCode OH_VideoEncoder_Destroy (OH_AVCodec * codec)
```
**描述:**
清空编码器内部资源,并销毁编码器实例。
@syscap SystemCapability.Multimedia.Media.VideoEncoder
**描述:**
清除编码器的内部资源并销毁编码器实例。
\@
syscap SystemCapability.Multimedia.Media.VideoEncoder
**参数
:
**
**参数
:
**
| 名称 | 描述 |
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针
|
| codec | 指向OH_AVCodec实例的指针
。
|
**返回
:
**
**返回
:
**
执行成功返回AV_ERR_OK
如果执行成功,返回AV_ERR_OK 否则,返回特定的错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
执行失败返回具体错误码,参考
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
**起始版本:**
9
### OH_VideoEncoder_Flush()
...
...
@@ -193,22 +232,28 @@ OH_AVErrCode OH_VideoEncoder_Destroy (OH_AVCodec * codec)
```
OH_AVErrCode OH_VideoEncoder_Flush (OH_AVCodec * codec)
```
**描述:**
清空编码器内部缓存的输入输出数据。在该接口被调用后,所有先前通过异步回调报告的Buffer的索引都将 失效,确保不要再访问这些索引对应的Buffers。
@syscap SystemCapability.Multimedia.Media.VideoEncoder
**描述:**
清除编码器中缓冲的输入和输出数据。
**参数:**
调用此接口后,之前通过异步回调函数报告的索引将无效,请确保不要访问与这些索引相对应的缓冲区。
| 名称 | 描述 |
\@
syscap SystemCapability.Multimedia.Media.VideoEncoder
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针
|
| codec | 指向OH_AVCodec实例的指针
。
|
**返回
:
**
**返回
:
**
执行成功返回AV_ERR_OK
如果执行成功,返回AV_ERR_OK 否则,返回特定的错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
执行失败返回具体错误码,参考
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
**起始版本:**
9
### OH_VideoEncoder_FreeOutputData()
...
...
@@ -217,23 +262,57 @@ OH_AVErrCode OH_VideoEncoder_Flush (OH_AVCodec * codec)
```
OH_AVErrCode OH_VideoEncoder_FreeOutputData (OH_AVCodec * codec, uint32_t index )
```
**描述:**
将处理结束的输出Buffer交还给编码器。
@syscap SystemCapability.Multimedia.Media.VideoEncoder
**描述:**
将处理后的输出缓冲区返回给编码器。
\@
syscap SystemCapability.Multimedia.Media.VideoEncoder
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针。 |
| index | 输出缓冲区对应的索引值。 |
**返回:**
如果执行成功,返回AV_ERR_OK 否则,返回特定的错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
**起始版本:**
9
### OH_VideoEncoder_GetInputDescription()
```
OH_AVFormat* OH_VideoEncoder_GetInputDescription (OH_AVCodec * codec)
```
**描述:**
获取视频编码器接收的描述信息,调用Configure后调用此接口,请参阅
**OH_AVFormat**
获取详细信息。
**参数:**
应该注意的是,返回指针所指向的OH_AVFormat实例的生命周期需要由调用者手动释放。
| 名称 | 描述 |
\@
syscap SystemCapability.Multimedia.Media.VideoEncoder
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针 |
| index | 输出Buffer对应的索引值 |
| codec | 指向OH_AVCodec实例的指针。 |
**返回
:
**
**返回
:
**
执行成功返回AV_ERR_OK
返回指向OH_AVFormat实例的指针。
执行失败返回具体错误码,参考
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
**起始版本:**
10
### OH_VideoEncoder_GetOutputDescription()
...
...
@@ -242,20 +321,28 @@ OH_AVErrCode OH_VideoEncoder_FreeOutputData (OH_AVCodec * codec, uint32_t index
```
OH_AVFormat* OH_VideoEncoder_GetOutputDescription (OH_AVCodec * codec)
```
**描述:**
获取该编码器输出数据的描述信息,需要注意的是,返回值所指向的OH_AVFormat实例的生命周期 将会再下一次调用该接口时或者该OH_AVCodec实例被销毁时失效。
@syscap SystemCapability.Multimedia.Media.VideoEncoder
**描述:**
获取编码器输出数据的描述信息,详细信息请参阅
**OH_AVFormat**
。
**参数:**
需要注意的是,返回值指针指向的OH_AVFormat实例的生命周期需要由调用者手动释放。
| 名称 | 描述 |
\@
syscap SystemCapability.Multimedia.Media.VideoEncoder
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针
|
| codec | 指向OH_AVCodec实例的指针
。
|
**返回
:
**
**返回
:
**
返回AVFormat实例的指针
返回指向OH_AVFormat实例的指针。
**起始版本:**
9
### OH_VideoEncoder_GetSurface()
...
...
@@ -264,23 +351,58 @@ OH_AVFormat* OH_VideoEncoder_GetOutputDescription (OH_AVCodec * codec)
```
OH_AVErrCode OH_VideoEncoder_GetSurface (OH_AVCodec * codec, OHNativeWindow ** window )
```
**描述:**
从视频编码器获取输入Surface, 该接口被调用必须是在Prepare被调用前。
@syscap SystemCapability.Multimedia.Media.VideoEncoder
**描述:**
从视频编码器获取输入Surface,必须在调用Prepare之前调用此接口。
\@
syscap SystemCapability.Multimedia.Media.VideoEncoder
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针。 |
| window | 指向OHNativeWindow实例的指针, 参考
**OHNativeWindow**
。 |
**返回:**
如果执行成功,返回AV_ERR_OK 否则,返回特定的错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
**起始版本:**
9
### OH_VideoEncoder_IsValid()
```
OH_AVErrCode OH_VideoEncoder_IsValid (OH_AVCodec * codec, bool * isValid )
```
**描述:**
**参数:**
检查当前编解码器实例是否有效。
| 名称 | 描述 |
它可以用于故障恢复或应用程序的后台切换。
\@
syscap SystemCapability.Multimedia.Media.VideoEncoder
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针 |
| window | 指向一个OHNativeWindow实例的指针 |
| codec | 指向OH_AVCodec实例的指针。 |
| isValid | 指向布尔实例的指针,true: 编码器实例有效,false: 编码器实例无效。 |
**返回:**
**返回:**
如果执行成功,返回AV_ERR_OK 否则,返回特定的错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
执行成功返回AV_ERR_OK
**起始版本:**
执行失败返回具体错误码,参考
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
10
### OH_VideoEncoder_NotifyEndOfStream()
...
...
@@ -289,22 +411,28 @@ OH_AVErrCode OH_VideoEncoder_GetSurface (OH_AVCodec * codec, OHNativeWindow ** w
```
OH_AVErrCode OH_VideoEncoder_NotifyEndOfStream (OH_AVCodec * codec)
```
**描述:**
通知视频编码器输入码流已结束。surface模式推荐使用该接口通知编码器码流结束。
@syscap SystemCapability.Multimedia.Media.VideoEncoder
**描述:**
通知视频编码器输入流已结束。建议使用此接口进行通知。
编码器surface模式下,输入流的结束通知。
**参数:**
\@
syscap SystemCapability.Multimedia.Media.VideoEncoder
| 名称 | 描述 |
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针 |
| codec | 指向OH_AVCodec实例的指针。 |
**返回:**
**返回:**
如果执行成功,返回AV_ERR_OK 否则,返回特定的错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
执行成功返回AV_ERR_OK
**起始版本:**
执行失败返回具体错误码,参考
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
9
### OH_VideoEncoder_Prepare()
...
...
@@ -313,22 +441,56 @@ OH_AVErrCode OH_VideoEncoder_NotifyEndOfStream (OH_AVCodec * codec)
```
OH_AVErrCode OH_VideoEncoder_Prepare (OH_AVCodec * codec)
```
**描述:**
准备编码器内部资源,调用该接口前必须先调用Configure接口。
@syscap SystemCapability.Multimedia.Media.VideoEncoder
**描述:**
若要准备编码器的内部资源,必须先调用Configure接口,再调用此接口。
\@
syscap SystemCapability.Multimedia.Media.VideoEncoder
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针。 |
**返回:**
如果执行成功,返回AV_ERR_OK 否则,返回特定的错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
**起始版本:**
9
### OH_VideoEncoder_PushInputData()
```
OH_AVErrCode OH_VideoEncoder_PushInputData (OH_AVCodec * codec, uint32_t index, OH_AVCodecBufferAttr attr )
```
**描述:**
将填入数据的输入缓冲区提交给视频编码器。
\@
syscap SystemCapability.Multimedia.Media.VideoEncoder
**参数
:
**
**参数
:
**
| 名称 | 描述 |
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针 |
| codec | 指向OH_AVCodec实例的指针。 |
| index | 输入缓冲区对应的索引值。 |
| attr | 缓冲区中包含数据的描述信息。 |
**返回
:
**
**返回
:
**
执行成功返回AV_ERR_OK
如果执行成功,返回AV_ERR_OK 否则,返回特定的错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
**起始版本:**
执行失败返回具体错误码,参考
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
10
### OH_VideoEncoder_Reset()
...
...
@@ -337,22 +499,26 @@ OH_AVErrCode OH_VideoEncoder_Prepare (OH_AVCodec * codec)
```
OH_AVErrCode OH_VideoEncoder_Reset (OH_AVCodec * codec)
```
**描述:**
重置编码器。如需继续编码工作,需要重新调用Configure接口以配置该编码器实例。
@syscap SystemCapability.Multimedia.Media.VideoEncoder
**描述:**
**参数:**
重置编码器。要继续编码,您需要再次调用Configure接口配置编码器实例。
| 名称 | 描述 |
\@
syscap SystemCapability.Multimedia.Media.VideoEncoder
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针
|
| codec | 指向OH_AVCodec实例的指针
。
|
**返回
:
**
**返回
:
**
执行成功返回AV_ERR_OK
如果执行成功,返回AV_ERR_OK 否则,返回特定的错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
执行失败返回具体错误码,参考
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
**起始版本:**
9
### OH_VideoEncoder_SetCallback()
...
...
@@ -361,24 +527,30 @@ OH_AVErrCode OH_VideoEncoder_Reset (OH_AVCodec * codec)
```
OH_AVErrCode OH_VideoEncoder_SetCallback (OH_AVCodec * codec, OH_AVCodecAsyncCallback callback, void * userData )
```
**描述:**
设置异步回调函数,使得你的应用能够响应视频编码器产生的事件,该接口被调用必须是在Prepare被调用前。
@syscap SystemCapability.Multimedia.Media.VideoEncoder
**描述:**
**参数:**
设置异步回调函数,以便您的应用程序能够响应视频编码器事件。
| 名称 | 描述 |
必须在调用Prepare之前,调用此接口。
\@
syscap SystemCapability.Multimedia.Media.VideoEncoder
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针 |
| callback | 一个包含所有回调函数的集合体,参考
[
OH_AVCodecAsyncCallback
](
_o_h___a_v_codec_async_callback.md
)
|
| userData | 用户特定数据 |
| codec | 指向OH_AVCodec实例的指针。 |
| callback | 所有回调函数的集合,请参阅
**OH_AVCodecAsyncCallback**
。 |
| userData | 用户的特定数据。 |
**返回:**
**返回:**
如果执行成功,返回AV_ERR_OK 否则,返回特定的错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
执行成功返回AV_ERR_OK
**起始版本:**
执行失败返回具体错误码,参考
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
9
### OH_VideoEncoder_SetParameter()
...
...
@@ -387,23 +559,29 @@ OH_AVErrCode OH_VideoEncoder_SetCallback (OH_AVCodec * codec, OH_AVCodecAsyncCal
```
OH_AVErrCode OH_VideoEncoder_SetParameter (OH_AVCodec * codec, OH_AVFormat * format )
```
**描述:**
向编码器设置动态参数,注意:该接口仅能在编码器被启动后调用,同时错误的参数设置,可能会导致编码失败。
@syscap SystemCapability.Multimedia.Media.VideoEncoder
**描述:**
为编码器设置动态参数。
注意,此接口只有在编码器启动后才能调用。 同时,不正确的参数设置可能会导致编码失败。
\@
syscap SystemCapability.Multimedia.Media.VideoEncoder
**参数
:
**
**参数
:
**
| 名称 | 描述 |
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针
|
| format | OH_AVFormat句柄指针
|
| codec | 指向OH_AVCodec实例的指针
。
|
| format | OH_AVFormat句柄指针
。
|
**返回
:
**
**返回
:
**
执行成功返回AV_ERR_OK
如果执行成功,返回AV_ERR_OK 否则,返回特定的错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
执行失败返回具体错误码,参考
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
**起始版本:**
9
### OH_VideoEncoder_Start()
...
...
@@ -412,22 +590,28 @@ OH_AVErrCode OH_VideoEncoder_SetParameter (OH_AVCodec * codec, OH_AVFormat * for
```
OH_AVErrCode OH_VideoEncoder_Start (OH_AVCodec * codec)
```
**描述:**
启动编码器,该接口必须在已经Prepare成功后调用。 在启动成功后,编码器将开始报告
[
OH_AVCodecOnNeedInputData
](
_codec_base.md#oh_avcodeconneedinputdata
)
事件。
@syscap SystemCapability.Multimedia.Media.VideoEncoder
**描述:**
启动编码器, 这个接口必须要在Prepare接口执行成功后调用。
在成功启动编码器之后,编码器将开始报告NeedInputData事件。
**参数:**
\@
syscap SystemCapability.Multimedia.Media.VideoEncoder
| 名称 | 描述 |
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针
|
| codec | 指向OH_AVCodec实例的指针
。
|
**返回
:
**
**返回
:
**
执行成功返回AV_ERR_OK
如果执行成功,返回AV_ERR_OK 否则,返回特定的错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
执行失败返回具体错误码,参考
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
**起始版本:**
9
### OH_VideoEncoder_Stop()
...
...
@@ -436,19 +620,23 @@ OH_AVErrCode OH_VideoEncoder_Start (OH_AVCodec * codec)
```
OH_AVErrCode OH_VideoEncoder_Stop (OH_AVCodec * codec)
```
**描述:**
停止编码器。在停止后可通过Start重新进入Started状态。
@syscap SystemCapability.Multimedia.Media.VideoEncoder
**描述:**
停止编码器。停止之后,你可以通过Start接口进入Started状态。
**参数:**
\@
syscap SystemCapability.Multimedia.Media.VideoEncoder
| 名称 | 描述 |
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| codec | 指向OH_AVCodec实例的指针 |
| codec | 指向OH_AVCodec实例的指针。 |
**返回:**
**返回:**
如果执行成功,返回AV_ERR_OK 否则,返回特定的错误代码,请参阅
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
。
执行成功返回AV_ERR_OK
**起始版本:**
执行失败返回具体错误码,参考
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
9
zh-cn/application-dev/reference/native-apis/avcodec__audio__channel__layout_8h.md
0 → 100644
浏览文件 @
dc2cd5e0
# avcodec_audio_channel_layout.h
## 概述
声明用于音频编解码的枚举。
**起始版本:**
9
**相关模块:**
[
AudioDecoder
](
_audio_decoder.md
)
## 汇总
### 枚举
| 名称 | 描述 |
| -------- | -------- |
|
[
OHOS::Media::AudioChannelSet
](
_audio_decoder.md#audiochannelset
)
: uint64_t {
<br/>
**FRONT_LEFT**
= 1ULL
<<
0U,
**FRONT_RIGHT**
= 1ULL
<<
1U,
**FRONT_CENTER**
= 1ULL
<<
2U,
**LOW_FREQUENCY**
= 1ULL
<<
3U,
<br/>
**BACK_LEFT**
= 1ULL
<<
4U,
**BACK_RIGHT**
= 1ULL
<<
5U,
**FRONT_LEFT_OF_CENTER**
= 1ULL
<<
6U,
**FRONT_RIGHT_OF_CENTER**
= 1ULL
<<
7U,
<br/>
**BACK_CENTER**
= 1ULL
<<
8U,
**SIDE_LEFT**
= 1ULL
<<
9U,
**SIDE_RIGHT**
= 1ULL
<<
10U,
**TOP_CENTER**
= 1ULL
<<
11U,
<br/>
**TOP_FRONT_LEFT**
= 1ULL
<<
12U,
**TOP_FRONT_CENTER**
= 1ULL
<<
13U,
**TOP_FRONT_RIGHT**
= 1ULL
<<
14U,
**TOP_BACK_LEFT**
= 1ULL
<<
15U,
<br/>
**TOP_BACK_CENTER**
= 1ULL
<<
16U,
**TOP_BACK_RIGHT**
= 1ULL
<<
17U,
**STEREO_LEFT**
= 1ULL
<<
29U,
**STEREO_RIGHT**
= 1ULL
<<
30U,
<br/>
**WIDE_LEFT**
= 1ULL
<<
31U,
**WIDE_RIGHT**
= 1ULL
<<
32U,
**SURROUND_DIRECT_LEFT**
= 1ULL
<<
33U,
**SURROUND_DIRECT_RIGHT**
= 1ULL
<<
34U,
<br/>
**LOW_FREQUENCY_2**
= 1ULL
<<
35U,
**TOP_SIDE_LEFT**
= 1ULL
<<
36U,
**TOP_SIDE_RIGHT**
= 1ULL
<<
37U,
**BOTTOM_FRONT_CENTER**
= 1ULL
<<
38U,
<br/>
**BOTTOM_FRONT_LEFT**
= 1ULL
<<
39U,
**BOTTOM_FRONT_RIGHT**
= 1ULL
<<
40U,
**AMBISONICS_ACN0**
= 1ULL
<<
41U, OHOS::Media::AMBISONICS_ACN1 = 1ULL
<<
42U,
<br/>
OHOS::Media::AMBISONICS_ACN2 = 1ULL
<<
43U, OHOS::Media::AMBISONICS_ACN3 = 1ULL
<<
44U, OHOS::Media::AMBISONICS_W = AMBISONICS_ACN0, OHOS::Media::AMBISONICS_Y = AMBISONICS_ACN1,
<br/>
OHOS::Media::AMBISONICS_Z = AMBISONICS_ACN2, OHOS::Media::AMBISONICS_X = AMBISONICS_ACN3, OHOS::Media::AMBISONICS_ACN4 = 1ULL
<<
45U, OHOS::Media::AMBISONICS_ACN5 = 1ULL
<<
46U,
<br/>
OHOS::Media::AMBISONICS_ACN6 = 1ULL
<<
47U, OHOS::Media::AMBISONICS_ACN7 = 1ULL
<<
48U, OHOS::Media::AMBISONICS_ACN8 = 1ULL
<<
49U, OHOS::Media::AMBISONICS_ACN9 = 1ULL
<<
50U,
<br/>
OHOS::Media::AMBISONICS_ACN10 = 1ULL
<<
51U, OHOS::Media::AMBISONICS_ACN11 = 1ULL
<<
52U, OHOS::Media::AMBISONICS_ACN12 = 1ULL
<<
53U, OHOS::Media::AMBISONICS_ACN13 = 1ULL
<<
54U,
<br/>
OHOS::Media::AMBISONICS_ACN14 = 1ULL
<<
55U, OHOS::Media::AMBISONICS_ACN15 = 1ULL
<<
56U
<br/>
} | 音频声道数集合, 将每一个声道数映射为int64的变量。 |
|
[
OHOS::Media::AudioChannelLayout
](
_audio_decoder.md#audiochannellayout
)
: uint64_t {
<br/>
**UNKNOWN_CHANNEL_LAYOUT**
= 0,
**MONO**
= (AudioChannelSet::FRONT_CENTER),
**STEREO**
= (AudioChannelSet::FRONT_LEFT
\|
AudioChannelSet::FRONT_RIGHT),
**CH_2POINT1**
= (STEREO
\|
AudioChannelSet::LOW_FREQUENCY),
<br/>
**CH_2_1**
= (STEREO
\|
AudioChannelSet::BACK_CENTER),
**SURROUND**
= (STEREO
\|
AudioChannelSet::FRONT_CENTER),
**CH_3POINT1**
= (SURROUND
\|
AudioChannelSet::LOW_FREQUENCY),
**CH_4POINT0**
= (SURROUND
\|
AudioChannelSet::BACK_CENTER),
<br/>
**CH_4POINT1**
= (CH_4POINT0
\|
AudioChannelSet::LOW_FREQUENCY),
**CH_2_2**
= (STEREO
\|
AudioChannelSet::SIDE_LEFT
\|
AudioChannelSet::SIDE_RIGHT),
**QUAD**
= (STEREO
\|
AudioChannelSet::BACK_LEFT
\|
AudioChannelSet::BACK_RIGHT),
**CH_5POINT0**
= (SURROUND
\|
AudioChannelSet::SIDE_LEFT
\|
AudioChannelSet::SIDE_RIGHT),
<br/>
**CH_5POINT1**
= (CH_5POINT0
\|
AudioChannelSet::LOW_FREQUENCY),
**CH_5POINT0_BACK**
= (SURROUND
\|
AudioChannelSet::BACK_LEFT
\|
AudioChannelSet::BACK_RIGHT),
**CH_5POINT1_BACK**
= (CH_5POINT0_BACK
\|
AudioChannelSet::LOW_FREQUENCY),
**CH_6POINT0**
= (CH_5POINT0
\|
AudioChannelSet::BACK_CENTER),
<br/>
**CH_6POINT0_FRONT**
= (CH_2_2
\|
AudioChannelSet::FRONT_LEFT_OF_CENTER
\|
AudioChannelSet::FRONT_RIGHT_OF_CENTER),
**HEXAGONAL**
= (CH_5POINT0_BACK
\|
AudioChannelSet::BACK_CENTER),
**CH_6POINT1**
= (CH_5POINT1
\|
AudioChannelSet::BACK_CENTER),
**CH_6POINT1_BACK**
= (CH_5POINT1_BACK
\|
AudioChannelSet::BACK_CENTER),
<br/>
**CH_6POINT1_FRONT**
= (CH_6POINT0_FRONT
\|
AudioChannelSet::LOW_FREQUENCY),
**CH_7POINT0**
= (CH_5POINT0
\|
AudioChannelSet::BACK_LEFT
\|
AudioChannelSet::BACK_RIGHT),
**CH_7POINT0_FRONT**
= (CH_5POINT0
\|
AudioChannelSet::FRONT_LEFT_OF_CENTER
\|
AudioChannelSet::FRONT_RIGHT_OF_CENTER),
**CH_7POINT1**
= (CH_5POINT1
\|
AudioChannelSet::BACK_LEFT
\|
AudioChannelSet::BACK_RIGHT),
<br/>
**CH_7POINT1_WIDE**
= (CH_5POINT1
\|
AudioChannelSet::FRONT_LEFT_OF_CENTER
\|
AudioChannelSet::FRONT_RIGHT_OF_CENTER),
**CH_7POINT1_WIDE_BACK**
,
**CH_3POINT1POINT2**
= (CH_3POINT1
\|
AudioChannelSet::TOP_FRONT_LEFT
\|
AudioChannelSet::TOP_FRONT_RIGHT),
**CH_5POINT1POINT2**
= (CH_5POINT1
\|
AudioChannelSet::TOP_SIDE_LEFT
\|
AudioChannelSet::TOP_SIDE_RIGHT),
<br/>
**CH_5POINT1POINT4**
,
**CH_7POINT1POINT2**
= (CH_7POINT1
\|
AudioChannelSet::TOP_SIDE_LEFT
\|
AudioChannelSet::TOP_SIDE_RIGHT),
**CH_7POINT1POINT4**
,
**CH_9POINT1POINT4**
= (CH_7POINT1POINT4
\|
AudioChannelSet::WIDE_LEFT
\|
AudioChannelSet::WIDE_RIGHT),
<br/>
**CH_9POINT1POINT6**
= (CH_9POINT1POINT4
\|
AudioChannelSet::TOP_SIDE_LEFT
\|
AudioChannelSet::TOP_SIDE_RIGHT),
**CH_10POINT2**
,
**CH_22POINT2**
,
**OCTAGONAL**
= (CH_5POINT0
\|
AudioChannelSet::BACK_LEFT
\|
AudioChannelSet::BACK_CENTER
\|
AudioChannelSet::BACK_RIGHT),
<br/>
**HEXADECAGONAL**
,
**STEREO_DOWNMIX**
= (AudioChannelSet::STEREO_LEFT
\|
AudioChannelSet::STEREO_RIGHT),
**HOA_FIRST**
,
**HOA_SECOND**
,
<br/>
**HOA_THIRD**
<br/>
} | 音频声道数类型, 将用户申请的解码器输出格式表示为编解码器的声道类型。 |
zh-cn/application-dev/reference/native-apis/native__avcapability_8h.md
0 → 100644
浏览文件 @
dc2cd5e0
# native_avcapability.h
## 概述
声明用于编解码能力查询到的Native API。
**起始版本:**
10
**相关模块:**
[
AVCapability
](
_a_v_capability.md
)
## 汇总
### 结构体
| 名称 | 描述 |
| -------- | -------- |
|
[
OH_AVRange
](
_o_h___a_v_range.md
)
| 范围包含最小值和最大值。 |
### 类型定义
| 名称 | 描述 |
| -------- | -------- |
|
[
OH_BitrateMode
](
_a_v_capability.md#oh_bitratemode
)
| 编码器的比特率模式。 |
|
[
OH_AVRange
](
_a_v_capability.md#oh_avrange
)
| 范围包含最小值和最大值。 |
|
[
OH_AVCodecCategory
](
_a_v_capability.md#oh_avcodeccategory
)
| 编解码器类别。 |
### 枚举
| 名称 | 描述 |
| -------- | -------- |
|
[
OH_BitrateMode
](
_a_v_capability.md#oh_bitratemode
)
{
**BITRATE_MODE_CBR**
= 0,
**BITRATE_MODE_VBR**
= 1,
**BITRATE_MODE_CQ**
= 2 } | 编码器的比特率模式。 |
|
[
OH_AVCodecCategory
](
_a_v_capability.md#oh_avcodeccategory
)
{
**HARDWARE**
= 0,
**SOFTWARE**
} | 编解码器类别。 |
### 函数
| 名称 | 描述 |
| -------- | -------- |
|
\*
[
OH_AVCodec_GetCapability
](
_a_v_capability.md#oh_avcodec_getcapability
)
(
const
char
\*
mime, bool isEncoder) | 获取系统推荐的编解码器能力。 |
|
\*
[
OH_AVCodec_GetCapabilityByCategory
](
_a_v_capability.md#oh_avcodec_getcapabilitybycategory
)
(
const
char
\*
mime, bool isEncoder,
[
OH_AVCodecCategory
](
_a_v_capability.md#oh_avcodeccategory
)
category) | 获取指定类别中的编解码器能力。通过指定类别, 匹配的编解码器仅限于硬件编解码器或软件编解码器。 |
|
[
OH_AVCapability_IsHardware
](
_a_v_capability.md#oh_avcapability_ishardware
)
(
OH_AVCapability
\*
capability) | 检查能力实例是否描述了硬件编解码器。 |
|
\*
[
OH_AVCapability_GetName
](
_a_v_capability.md#oh_avcapability_getname
)
(
OH_AVCapability
\*
capability) | 获取编解码器名称。 |
|
[
OH_AVCapability_GetMaxSupportedInstances
](
_a_v_capability.md#oh_avcapability_getmaxsupportedinstances
)
(
OH_AVCapability
\*
capability) | 获取编解码器支持的最大实例数。 |
|
[
OH_AVCapability_GetEncoderBitrateRange
](
_a_v_capability.md#oh_avcapability_getencoderbitraterange
)
(
OH_AVCapability
\*
capability,
[
OH_AVRange
](
_o_h___a_v_range.md
)
\*
bitrateRange) | 获取编码器支持的比特率范围。 |
|
[
OH_AVCapability_IsEncoderBitrateModeSupported
](
_a_v_capability.md#oh_avcapability_isencoderbitratemodesupported
)
(
OH_AVCapability
\*
capability,
[
OH_BitrateMode
](
_a_v_capability.md#oh_bitratemode
)
bitrateMode) | 检查编码器是否支持特定的比特率模式。 |
|
[
OH_AVCapability_GetEncoderQualityRange
](
_a_v_capability.md#oh_avcapability_getencoderqualityrange
)
(
OH_AVCapability
\*
capability,
[
OH_AVRange
](
_o_h___a_v_range.md
)
\*
qualityRange) | 获取编码器支持的质量范围。 |
|
[
OH_AVCapability_GetEncoderComplexityRange
](
_a_v_capability.md#oh_avcapability_getencodercomplexityrange
)
(
OH_AVCapability
\*
capability,
[
OH_AVRange
](
_o_h___a_v_range.md
)
\*
complexityRange) | 获取编码器支持的编码器复杂性范围。 |
|
[
OH_AVCapability_GetAudioSupportedSampleRates
](
_a_v_capability.md#oh_avcapability_getaudiosupportedsamplerates
)
(
OH_AVCapability
\*
capability, const int32_t
\*\*
sampleRates, uint32_t
\*
sampleRateNum) | 获取音频编解码器支持的采样速率。 |
|
[
OH_AVCapability_GetAudioChannelCountRange
](
_a_v_capability.md#oh_avcapability_getaudiochannelcountrange
)
(
OH_AVCapability
\*
capability,
[
OH_AVRange
](
_o_h___a_v_range.md
)
\*
channelCountRange) | 获取音频编解码器支持的音频通道计数范围。 |
|
[
OH_AVCapability_GetVideoWidthAlignment
](
_a_v_capability.md#oh_avcapability_getvideowidthalignment
)
(
OH_AVCapability
\*
capability, int32_t
\*
widthAlignment) | 获取视频编解码器支持的视频宽度对齐。 |
|
[
OH_AVCapability_GetVideoHeightAlignment
](
_a_v_capability.md#oh_avcapability_getvideoheightalignment
)
(
OH_AVCapability
\*
capability, int32_t
\*
heightAlignment) | 获取视频编解码器支持的视频高度对齐。 |
|
[
OH_AVCapability_GetVideoWidthRangeForHeight
](
_a_v_capability.md#oh_avcapability_getvideowidthrangeforheight
)
(
OH_AVCapability
\*
capability, int32_t height,
[
OH_AVRange
](
_o_h___a_v_range.md
)
\*
widthRange) | 获取指定高度情况下视频编解码器支持的视频宽度范围。 |
|
[
OH_AVCapability_GetVideoHeightRangeForWidth
](
_a_v_capability.md#oh_avcapability_getvideoheightrangeforwidth
)
(
OH_AVCapability
\*
capability, int32_t width,
[
OH_AVRange
](
_o_h___a_v_range.md
)
\*
heightRange) | 获取指定宽度情况下视频编解码器支持的视频高度范围。 |
|
[
OH_AVCapability_GetVideoWidthRange
](
_a_v_capability.md#oh_avcapability_getvideowidthrange
)
(
OH_AVCapability
\*
capability,
[
OH_AVRange
](
_o_h___a_v_range.md
)
\*
widthRange) | 获取视频编解码器支持的视频宽度范围。 |
|
[
OH_AVCapability_GetVideoHeightRange
](
_a_v_capability.md#oh_avcapability_getvideoheightrange
)
(
OH_AVCapability
\*
capability,
[
OH_AVRange
](
_o_h___a_v_range.md
)
\*
heightRange) | 获取视频编解码器支持的视频高度范围。 |
|
[
OH_AVCapability_IsVideoSizeSupported
](
_a_v_capability.md#oh_avcapability_isvideosizesupported
)
(
OH_AVCapability
\*
capability, int32_t width, int32_t height) | 检查视频编解码器是否支持特定的视频大小。 |
|
[
OH_AVCapability_GetVideoFrameRateRange
](
_a_v_capability.md#oh_avcapability_getvideoframeraterange
)
(
OH_AVCapability
\*
capability,
[
OH_AVRange
](
_o_h___a_v_range.md
)
\*
frameRateRange) | 获取视频编解码器支持的视频帧率范围。 |
|
[
OH_AVCapability_GetVideoFrameRateRangeForSize
](
_a_v_capability.md#oh_avcapability_getvideoframeraterangeforsize
)
(
OH_AVCapability
\*
capability, int32_t width, int32_t height,
[
OH_AVRange
](
_o_h___a_v_range.md
)
\*
frameRateRange) | 获取指定视频大小的视频编解码器支持的视频帧率范围。 |
|
[
OH_AVCapability_AreVideoSizeAndFrameRateSupported
](
_a_v_capability.md#oh_avcapability_arevideosizeandframeratesupported
)
(
OH_AVCapability
\*
capability, int32_t width, int32_t height, int32_t frameRate) | 检查视频编解码器是否支持视频大小和帧率的特定组合。 |
|
[
OH_AVCapability_GetVideoSupportedPixelFormats
](
_a_v_capability.md#oh_avcapability_getvideosupportedpixelformats
)
(
OH_AVCapability
\*
capability, const int32_t
\*\*
pixelFormats, uint32_t
\*
pixelFormatNum) | 获取视频编解码器支持的视频像素格式。 |
|
[
OH_AVCapability_GetSupportedProfiles
](
_a_v_capability.md#oh_avcapability_getsupportedprofiles
)
(
OH_AVCapability
\*
capability, const int32_t
\*\*
profiles, uint32_t
\*
profileNum) | 获取编解码器支持的配置文件。 |
|
[
OH_AVCapability_GetSupportedLevelsForProfile
](
_a_v_capability.md#oh_avcapability_getsupportedlevelsforprofile
)
(
OH_AVCapability
\*
capability, int32_t profile, const int32_t
\*\*
levels, uint32_t
\*
levelNum) | 获取特定配置文件支持的编解码器级别。 |
|
[
OH_AVCapability_AreProfileAndLevelSupported
](
_a_v_capability.md#oh_avcapability_areprofileandlevelsupported
)
(
OH_AVCapability
\*
capability, int32_t profile, int32_t level) | 检查编解码器是否支持配置文件和级别的特定组合。 |
zh-cn/application-dev/reference/native-apis/native__avcodec__audiodecoder_8h.md
浏览文件 @
dc2cd5e0
...
...
@@ -6,9 +6,10 @@
声明用于音频解码的Native API。
**起始版本:**
9
**相关模块
:
**
**相关模块
:
**
[
AudioDecoder
](
_audio_decoder.md
)
...
...
@@ -18,19 +19,20 @@
### 函数
| 名称 | 描述 |
| 名称 | 描述 |
| -------- | -------- |
|
[
OH_AudioDecoder_CreateByMime
](
_audio_decoder.md#oh_audiodecoder_createbymime
)
(
const
char
\*
mime) | 通过mime类型创建一个音频解码器实例,大多数情况下推荐使用该接口。 |
|
[
OH_AudioDecoder_CreateByName
](
_audio_decoder.md#oh_audiodecoder_createbyname
)
(
const
char
\*
name) | 通过音频解码器名称创建一个音频解码器实例,使用这个接口的前提是必须清楚解码器准确的名称。 |
|
[
OH_AudioDecoder_Destroy
](
_audio_decoder.md#oh_audiodecoder_destroy
)
(
OH_AVCodec
\*
codec) | 清空解码器内部资源,并销毁解码器实例 |
|
[
OH_AudioDecoder_SetCallback
](
_audio_decoder.md#oh_audiodecoder_setcallback
)
(
OH_AVCodec
\*
codec,
[
OH_AVCodecAsyncCallback
](
_o_h___a_v_codec_async_callback.md
)
callback, void
\*
userData) | 设置异步回调函数,使得你的应用能够响应音频解码器产生的事件,该接口被调用必须是在Prepare被调用前。 |
|
[
OH_AudioDecoder_Configure
](
_audio_decoder.md#oh_audiodecoder_configure
)
(
OH_AVCodec
\*
codec, OH_AVFormat
\*
format) | 配置音频解码器,典型地,需要配置被解码音频轨道的描述信息,这些信息能够从容器中提取出来, 该接口被调用必须是在Prepare被调用前。 |
|
[
OH_AudioDecoder_Prepare
](
_audio_decoder.md#oh_audiodecoder_prepare
)
(
OH_AVCodec
\*
codec) | 准备解码器内部资源,调用该接口前必须先调用Configure接口。 |
|
[
OH_AudioDecoder_Start
](
_audio_decoder.md#oh_audiodecoder_start
)
(
OH_AVCodec
\*
codec) | 启动解码器,该接口必须在已经Prepare成功后调用。 在启动成功后,解码器将开始报告
[
OH_AVCodecOnNeedInputData
](
_codec_base.md#oh_avcodeconneedinputdata
)
事件。 |
|
[
OH_AudioDecoder_Stop
](
_audio_decoder.md#oh_audiodecoder_stop
)
(
OH_AVCodec
\*
codec) | 停止解码器。在停止后可通过Start重新进入Started状态,但需要注意的是,若先前给解码器输入过 Codec-Specific-Data,则需要重新输入。 |
|
[
OH_AudioDecoder_Flush
](
_audio_decoder.md#oh_audiodecoder_flush
)
(
OH_AVCodec
\*
codec) | 清空解码器内部缓存的输入输出数据。在该接口被调用后,所有先前通过异步回调报告的Buffer的索引都将 失效,确保不要再访问这些索引对应的Buffers。 |
|
[
OH_AudioDecoder_Reset
](
_audio_decoder.md#oh_audiodecoder_reset
)
(
OH_AVCodec
\*
codec) | 重置解码器。如需继续解码工作,需要重新调用Configure接口以配置该解码器实例。 |
|
[
OH_AudioDecoder_GetOutputDescription
](
_audio_decoder.md#oh_audiodecoder_getoutputdescription
)
(
OH_AVCodec
\*
codec) | 获取该解码器输出数据的描述信息,需要注意的是,返回值所指向的OH_AVFormat实例需调用者手动释放。 |
|
[
OH_AudioDecoder_SetParameter
](
_audio_decoder.md#oh_audiodecoder_setparameter
)
(
OH_AVCodec
\*
codec, OH_AVFormat
\*
format) | 向解码器设置动态参数,注意:该接口仅能在解码器被启动后调用,同时错误的参数设置,可能会导致解码失败。 |
|
[
OH_AudioDecoder_PushInputData
](
_audio_decoder.md#oh_audiodecoder_pushinputdata
)
(
OH_AVCodec
\*
codec, uint32_t index,
[
OH_AVCodecBufferAttr
](
_o_h___a_v_codec_buffer_attr.md
)
attr) | 将填充好数据的输入Buffer提交给音频解码器。
[
OH_AVCodecOnNeedInputData
](
_codec_base.md#oh_avcodeconneedinputdata
)
回调会报告可用的输入 Buffer及对应的索引值。一旦指定索引的Buffer被提交给解码器,直到再一次收到
[
OH_AVCodecOnNeedInputData
](
_codec_base.md#oh_avcodeconneedinputdata
)
回调报告相同索引的Buffer可用前,该Buffer都不可以再次被访问。另外,对于部分解码器,要求在最开始给解码器输入 Codec-Specific-Data,用以初始化解码器的解码过程。 |
|
[
OH_AudioDecoder_FreeOutputData
](
_audio_decoder.md#oh_audiodecoder_freeoutputdata
)
(
OH_AVCodec
\*
codec, uint32_t index) | 将处理结束的输出Buffer交还给解码器。 |
|
\*
[
OHOS::Media::OH_AudioDecoder_CreateByMime
](
_audio_decoder.md#oh_audiodecoder_createbymime
)
(
const
char
\*
mime) | 根据MIME类型创建音频解码器实例,大多数场景下建议使用此方式。 |
|
\*
[
OHOS::Media::OH_AudioDecoder_CreateByName
](
_audio_decoder.md#oh_audiodecoder_createbyname
)
(
const
char
\*
name) | 通过音频解码器名称创建音频解码器实例,使用此接口的前提是知道解码器的确切名称。 |
|
[
OHOS::Media::OH_AudioDecoder_Destroy
](
_audio_decoder.md#oh_audiodecoder_destroy
)
(
OH_AVCodec
\*
codec) | 清理解码器内部资源,销毁解码器实例。 |
|
[
OHOS::Media::OH_AudioDecoder_SetCallback
](
_audio_decoder.md#oh_audiodecoder_setcallback
)
(
OH_AVCodec
\*
codec, OH_AVCodecAsyncCallback callback, void
\*
userData) | 设置异步回调函数,使您的应用程序可以响应音频解码器生成的事件。 |
|
[
OHOS::Media::OH_AudioDecoder_Configure
](
_audio_decoder.md#oh_audiodecoder_configure
)
(
OH_AVCodec
\*
codec, OH_AVFormat
\*
format) | 要配置音频解码器,通常需要配置从容器中提取的音频描述信息。 |
|
[
OHOS::Media::OH_AudioDecoder_Prepare
](
_audio_decoder.md#oh_audiodecoder_prepare
)
(
OH_AVCodec
\*
codec) | 准备解码器的内部资源,在调用此接口之前必须调用Configure接口。 |
|
[
OHOS::Media::OH_AudioDecoder_Start
](
_audio_decoder.md#oh_audiodecoder_start
)
(
OH_AVCodec
\*
codec) | Prepare成功后调用此接口启动解码器。 |
|
[
OHOS::Media::OH_AudioDecoder_Stop
](
_audio_decoder.md#oh_audiodecoder_stop
)
(
OH_AVCodec
\*
codec) | 停止解码器。 |
|
[
OHOS::Media::OH_AudioDecoder_Flush
](
_audio_decoder.md#oh_audiodecoder_flush
)
(
OH_AVCodec
\*
codec) | 清除解码器中缓存的输入和输出数据。 |
|
[
OHOS::Media::OH_AudioDecoder_Reset
](
_audio_decoder.md#oh_audiodecoder_reset
)
(
OH_AVCodec
\*
codec) | 重置解码器。如果要继续解码,需要再次调用Configure接口配置解码器实例 。 |
|
\*
[
OHOS::Media::OH_AudioDecoder_GetOutputDescription
](
_audio_decoder.md#oh_audiodecoder_getoutputdescription
)
(
OH_AVCodec
\*
codec) | 获取解码器输出数据的描述信息,详细信息请参见
**OH_AVFormat**
。 |
|
[
OHOS::Media::OH_AudioDecoder_SetParameter
](
_audio_decoder.md#oh_audiodecoder_setparameter
)
(
OH_AVCodec
\*
codec, OH_AVFormat
\*
format) | 配置解码器的动态参数。注意:该接口必须在解码器启动后才能调用。另外,参数配置错误可能会导致解码失败。 |
|
[
OHOS::Media::OH_AudioDecoder_PushInputData
](
_audio_decoder.md#oh_audiodecoder_pushinputdata
)
(
OH_AVCodec
\*
codec, uint32_t index, OH_AVCodecBufferAttr attr) | 将填充有数据的输入缓冲区提交给音频解码器。 |
|
[
OHOS::Media::OH_AudioDecoder_FreeOutputData
](
_audio_decoder.md#oh_audiodecoder_freeoutputdata
)
(
OH_AVCodec
\*
codec, uint32_t index) | 将处理后的输出缓冲区返回给解码器。 |
|
[
OHOS::Media::OH_AudioDecoder_IsValid
](
_audio_decoder.md#oh_audiodecoder_isvalid
)
(
OH_AVCodec
\*
codec, bool
\*
isValid) | 检查当前解码器实例是否有效,可用于后台故障恢复或应用程序从后台恢复时检测解码器有效状态。 |
zh-cn/application-dev/reference/native-apis/native__avcodec__audioencoder_8h.md
浏览文件 @
dc2cd5e0
...
...
@@ -6,9 +6,10 @@
声明用于音频编码的Native API。
**起始版本:**
9
**相关模块
:
**
**相关模块
:
**
[
AudioEncoder
](
_audio_encoder.md
)
...
...
@@ -18,19 +19,20 @@
### 函数
| 名称 | 描述 |
| 名称 | 描述 |
| -------- | -------- |
|
[
OH_AudioEncoder_CreateByMime
](
_audio_encoder.md#oh_audioencoder_createbymime
)
(
const
char
\*
mime) | 通过mime类型创建一个音频编码器实例,大多数情况下推荐使用该接口。 |
|
[
OH_AudioEncoder_CreateByName
](
_audio_encoder.md#oh_audioencoder_createbyname
)
(
const
char
\*
name) | 通过音频编码器名称创建一个音频编码器实例,使用这个接口的前提是必须清楚编码器准确的名称。 |
|
[
OH_AudioEncoder_Destroy
](
_audio_encoder.md#oh_audioencoder_destroy
)
(
OH_AVCodec
\*
codec) | 清空编码器内部资源,并销毁编码器实例。 |
|
[
OH_AudioEncoder_SetCallback
](
_audio_encoder.md#oh_audioencoder_setcallback
)
(
OH_AVCodec
\*
codec,
[
OH_AVCodecAsyncCallback
](
_o_h___a_v_codec_async_callback.md
)
callback, void
\*
userData) | 设置异步回调函数,使得你的应用能够响应音频编码器产生的事件,该接口被调用必须是在Prepare被调用前。 |
|
[
OH_AudioEncoder_Configure
](
_audio_encoder.md#oh_audioencoder_configure
)
(
OH_AVCodec
\*
codec, OH_AVFormat
\*
format) | 配置音频编码器,典型地,需要配置被编码音频轨道的描述信息,该接口被调用必须是在Prepare被调用前。 |
|
[
OH_AudioEncoder_Prepare
](
_audio_encoder.md#oh_audioencoder_prepare
)
(
OH_AVCodec
\*
codec) | 准备编码器内部资源,调用该接口前必须先调用Configure接口。 |
|
[
OH_AudioEncoder_Start
](
_audio_encoder.md#oh_audioencoder_start
)
(
OH_AVCodec
\*
codec) | 启动编码器,该接口必须在已经Prepare成功后调用。 在启动成功后,编码器将开始报告
[
OH_AVCodecOnNeedInputData
](
_codec_base.md#oh_avcodeconneedinputdata
)
事件。 |
|
[
OH_AudioEncoder_Stop
](
_audio_encoder.md#oh_audioencoder_stop
)
(
OH_AVCodec
\*
codec) | 停止编码器。在停止后可通过Start重新进入Started状态。 |
|
[
OH_AudioEncoder_Flush
](
_audio_encoder.md#oh_audioencoder_flush
)
(
OH_AVCodec
\*
codec) | 清空编码器内部缓存的输入输出数据。在该接口被调用后,所有先前通过异步回调报告的Buffer的索引都将 失效,确保不要再访问这些索引对应的Buffers。 |
|
[
OH_AudioEncoder_Reset
](
_audio_encoder.md#oh_audioencoder_reset
)
(
OH_AVCodec
\*
codec) | 重置编码器。如需继续编码工作,需要重新调用Configure接口以配置该编码器实例。 |
|
[
OH_AudioEncoder_GetOutputDescription
](
_audio_encoder.md#oh_audioencoder_getoutputdescription
)
(
OH_AVCodec
\*
codec) | 获取该编码器输出数据的描述信息,需要注意的是,返回值所指向的OH_AVFormat实例需调用者手动释放。 |
|
[
OH_AudioEncoder_SetParameter
](
_audio_encoder.md#oh_audioencoder_setparameter
)
(
OH_AVCodec
\*
codec, OH_AVFormat
\*
format) | 向编码器设置动态参数,注意:该接口仅能在编码器被启动后调用,同时错误的参数设置,可能会导致编码失败。 |
|
[
OH_AudioEncoder_PushInputData
](
_audio_encoder.md#oh_audioencoder_pushinputdata
)
(
OH_AVCodec
\*
codec, uint32_t index,
[
OH_AVCodecBufferAttr
](
_o_h___a_v_codec_buffer_attr.md
)
attr) | 将填充好数据的输入Buffer提交给音频编码器。
[
OH_AVCodecOnNeedInputData
](
_codec_base.md#oh_avcodeconneedinputdata
)
回调会报告可用的输入 Buffer及对应的索引值。一旦指定索引的Buffer被提交给编码器,直到再一次收到
[
OH_AVCodecOnNeedInputData
](
_codec_base.md#oh_avcodeconneedinputdata
)
回调报告相同索引的Buffer可用前,该Buffer都不可以再次被访问。 |
|
[
OH_AudioEncoder_FreeOutputData
](
_audio_encoder.md#oh_audioencoder_freeoutputdata
)
(
OH_AVCodec
\*
codec, uint32_t index) | 将处理结束的输出Buffer交还给编码器。 |
|
\*
[
OHOS::Media::OH_AudioEncoder_CreateByMime
](
_audio_encoder.md#oh_audioencoder_createbymime
)
(
const
char
\*
mime) | 根据MIME类型创建音频编码器实例,大多数场景下建议使用此方式。 |
|
\*
[
OHOS::Media::OH_AudioEncoder_CreateByName
](
_audio_encoder.md#oh_audioencoder_createbyname
)
(
const
char
\*
name) | 通过音频编码器名称创建音频编码器实例,使用此接口的前提是知道编码器的确切名称。 |
|
[
OHOS::Media::OH_AudioEncoder_Destroy
](
_audio_encoder.md#oh_audioencoder_destroy
)
(
OH_AVCodec
\*
codec) | 清理编码器内部资源,销毁编码器实例。 |
|
[
OHOS::Media::OH_AudioEncoder_SetCallback
](
_audio_encoder.md#oh_audioencoder_setcallback
)
(
OH_AVCodec
\*
codec, OH_AVCodecAsyncCallback callback, void
\*
userData) | 设置异步回调函数,使您的应用程序可以响应音频编码器生成的事件。 |
|
[
OHOS::Media::OH_AudioEncoder_Configure
](
_audio_encoder.md#oh_audioencoder_configure
)
(
OH_AVCodec
\*
codec, OH_AVFormat
\*
format) | 要配置音频编码器,通常需要配置编码后的音轨的描述信息。 |
|
[
OHOS::Media::OH_AudioEncoder_Prepare
](
_audio_encoder.md#oh_audioencoder_prepare
)
(
OH_AVCodec
\*
codec) | 准备编码器的内部资源,在调用此接口之前必须调用Configure接口。 |
|
[
OHOS::Media::OH_AudioEncoder_Start
](
_audio_encoder.md#oh_audioencoder_start
)
(
OH_AVCodec
\*
codec) | Prepare成功后调用此接口启动编码器。 |
|
[
OHOS::Media::OH_AudioEncoder_Stop
](
_audio_encoder.md#oh_audioencoder_stop
)
(
OH_AVCodec
\*
codec) | 停止编码器。 |
|
[
OHOS::Media::OH_AudioEncoder_Flush
](
_audio_encoder.md#oh_audioencoder_flush
)
(
OH_AVCodec
\*
codec) | 清除编码器中缓存的输入和输出数据。 |
|
[
OHOS::Media::OH_AudioEncoder_Reset
](
_audio_encoder.md#oh_audioencoder_reset
)
(
OH_AVCodec
\*
codec) | 重置编码器。 |
|
\*
[
OHOS::Media::OH_AudioEncoder_GetOutputDescription
](
_audio_encoder.md#oh_audioencoder_getoutputdescription
)
(
OH_AVCodec
\*
codec) | 获取编码器输出数据的描述信息,详细信息请参见
**OH_AVFormat**
。 |
|
[
OHOS::Media::OH_AudioEncoder_SetParameter
](
_audio_encoder.md#oh_audioencoder_setparameter
)
(
OH_AVCodec
\*
codec, OH_AVFormat
\*
format) | 配置编码器的动态参数。 |
|
[
OHOS::Media::OH_AudioEncoder_PushInputData
](
_audio_encoder.md#oh_audioencoder_pushinputdata
)
(
OH_AVCodec
\*
codec, uint32_t index, OH_AVCodecBufferAttr attr) | 将填充有数据的输入缓冲区提交给音频编码器。 |
|
[
OHOS::Media::OH_AudioEncoder_FreeOutputData
](
_audio_encoder.md#oh_audioencoder_freeoutputdata
)
(
OH_AVCodec
\*
codec, uint32_t index) | 将处理后的输出缓冲区返回给编码器。 |
|
[
OHOS::Media::OH_AudioEncoder_IsValid
](
_audio_encoder.md#oh_audioencoder_isvalid
)
(
OH_AVCodec
\*
codec, bool
\*
isValid) | 检查当前编码器实例是否有效,可用于后台故障恢复或应用程序从后台恢复时检测编码器有效状态。 |
zh-cn/application-dev/reference/native-apis/native__avcodec__base_8h.md
浏览文件 @
dc2cd5e0
...
...
@@ -6,6 +6,7 @@
声明运行音视频编解码通用的结构体、字符常量、枚举。
**起始版本:**
9
**相关模块:**
...
...
@@ -20,57 +21,113 @@
| 名称 | 描述 |
| -------- | -------- |
|
[
OH_AVCodecBufferAttr
](
_o_h___a_v_codec_buffer_attr.md
)
| 定义OH_AVCodec的
Buffer描述信息。
|
|
[
OH_AVCodecAsyncCallback
](
_o_h___a_v_codec_async_callback.md
)
|
AVCodec所有的异步回调函数指针集合。注册一个该结构体实例给OH_AVCodec实例,并处理通过该回调报告 的信息,以确保AVCodec正常运转。
|
|
[
OH_AVCodecBufferAttr
](
_o_h___a_v_codec_buffer_attr.md
)
| 定义OH_AVCodec的
缓冲区描述信息。
|
|
[
OH_AVCodecAsyncCallback
](
_o_h___a_v_codec_async_callback.md
)
|
OH_AVCodec中所有异步回调函数指针的集合。
|
### 类型定义
| 名称 | 描述 |
| -------- | -------- |
|
[
OH_AVCodecBufferFlags
](
_codec_base.md#oh_avcodecbufferflags
)
| 枚举OH_AVCodec的Buffer标记的类别。|
|
[
OH_AVCodecBufferAttr
](
_codec_base.md#oh_avcodecbufferattr
)
| 定义OH_AVCodec的Buffer描述信息。|
| (
\*
[
OH_AVCodecOnError
](
_codec_base.md#oh_avcodeconerror
)
) (OH_AVCodec
\*
codec, int32_t errorCode, void
\*
userData) | 当OH_AVCodec实例运行发生错误时,该函数指针会被调用以报告具体错误信息。|
| (
\*
[
OH_AVCodecOnStreamChanged
](
_codec_base.md#oh_avcodeconstreamchanged
)
) (OH_AVCodec
\*
codec, OH_AVFormat
\*
format, void
\*
userData) | 当输出流发生变化时,该函数指针会被调用以报告新的流描述信息。 需要注意的时,OH_AVFormat指针的生命周期仅维持在该函数指针被调用时上有效,禁止在调用结束后继续访问。|
| (
\*
[
OH_AVCodecOnNeedInputData
](
_codec_base.md#oh_avcodeconneedinputdata
)
) (OH_AVCodec
\*
codec, uint32_t index, OH_AVMemory
\*
data, void
\*
userData) | 当AVCodec运行过程中需要新的输入数据时,该函数指针会被调用,并携带一块可用的Buffer以供填入新的输入数据。|
| (
\*
[
OH_AVCodecOnNewOutputData
](
_codec_base.md#oh_avcodeconnewoutputdata
)
) (OH_AVCodec
\*
codec, uint32_t index, OH_AVMemory
\*
data,
[
OH_AVCodecBufferAttr
](
_o_h___a_v_codec_buffer_attr.md
)
\*
attr, void
\*
userData) | 当AVCodec运行过程中产生了新的输出数据时,该函数指针会被调用,并携带一块包含新输出数据的Buffer, 需要注意的是,OH_AVCodecBufferAttr指针的生命周期仅维持在该函数指针被调用时有效,禁止调用结束后继续访问。|
|
[
OH_AVCodecAsyncCallback
](
_codec_base.md#oh_avcodecasynccallback
)
| AVCodec所有的异步回调函数指针集合。注册一个该结构体实例给OH_AVCodec实例,并处理通过该回调报告 的信息,以确保AVCodec正常运转。|
|
[
OH_MediaType
](
_codec_base.md#oh_mediatype
)
| 媒体类型。|
|
[
OH_AVCProfile
](
_codec_base.md#oh_avcprofile
)
| AVC Profile枚举。|
|
[
OH_AACProfile
](
_codec_base.md#oh_aacprofile
)
| AAC Profile枚举。|
|
[
OH_AVCodecBufferFlags
](
_codec_base.md#oh_avcodecbufferflags
)
| 枚举OH_AVCodec缓冲区标记的类别。 |
|
[
OH_AVOutputFormat
](
_codec_base.md#oh_avoutputformat
)
| 枚举封装器的输出文件格式。 |
|
[
OH_AVCodecBufferAttr
](
_codec_base.md#oh_avcodecbufferattr
)
| 定义OH_AVCodec的缓冲区描述信息。 |
| (
\*
[
OH_AVCodecOnError
](
_codec_base.md#oh_avcodeconerror
)
) (OH_AVCodec
\*
codec, int32_t errorCode, void
\*
userData) | 当OH_AVCodec实例运行出错时,会调用来上报具体的错误信息的函数指针。 |
| (
\*
[
OH_AVCodecOnStreamChanged
](
_codec_base.md#oh_avcodeconstreamchanged
)
) (OH_AVCodec
\*
codec, OH_AVFormat
\*
format, void
\*
userData) | 当输出流发生变化时,将调用此函数指针报告新的流描述信息。 |
| (
\*
[
OH_AVCodecOnNeedInputData
](
_codec_base.md#oh_avcodeconneedinputdata
)
) (OH_AVCodec
\*
codec, uint32_t index, OH_AVMemory
\*
data, void
\*
userData) | 当OH_AVCodec在运行过程中需要新的输入数据时,将调用此函数指针,并携带可用的缓冲区来填充新的输入数据。 |
| (
\*
[
OH_AVCodecOnNewOutputData
](
_codec_base.md#oh_avcodeconnewoutputdata
)
) (OH_AVCodec
\*
codec, uint32_t index, OH_AVMemory
\*
data,
[
OH_AVCodecBufferAttr
](
_o_h___a_v_codec_buffer_attr.md
)
\*
attr, void
\*
userData) | 当OH_AVCodec运行过程中生成新的输出数据时,将调用此函数指针,并携带包含新输出数据的缓冲区。 |
|
[
OH_AVCodecAsyncCallback
](
_codec_base.md#oh_avcodecasynccallback
)
| OH_AVCodec中所有异步回调函数指针的集合。 |
|
[
OH_MediaType
](
_codec_base.md#oh_mediatype
)
| 媒体类型。 |
|
[
OH_AVCProfile
](
_codec_base.md#oh_avcprofile
)
| AVC Profile枚举。 |
|
[
OH_HEVCProfile
](
_codec_base.md#oh_hevcprofile
)
| HEVC Profile枚举。 |
|
[
OH_AACProfile
](
_codec_base.md#oh_aacprofile
)
| AAC Profile枚举。 |
|
[
OH_AVSeekMode
](
_codec_base.md#oh_avseekmode
)
| 跳转模式。 |
|
[
OH_ColorPrimary
](
_codec_base.md#oh_colorprimary
)
| 原色。 |
|
[
OH_TransferCharacteristic
](
_codec_base.md#oh_transfercharacteristic
)
| 转移特性。 |
|
[
OH_MatrixCoefficient
](
_codec_base.md#oh_matrixcoefficient
)
| 矩阵系数。 |
|
[
OH_BitsPerSample
](
_codec_base.md#oh_bitspersample
)
| 枚举每个编码样本的音频位数。 |
### 枚举
| 名称 | 描述 |
| -------- | -------- |
|
[
OH_AVCodecBufferFlags
](
_codec_base.md#oh_avcodecbufferflags
)
{
<br/>
**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,
<br/>
**AVCODEC_BUFFER_FLAGS_CODEC_DATA**
= 1
<<
3
<br/>
} | 枚举OH_AVCodec的Buffer标记的类别。|
|
[
OH_MediaType
](
_codec_base.md#oh_mediatype
)
{
**MEDIA_TYPE_AUD**
= 0,
**MEDIA_TYPE_VID**
= 1 } | 媒体类型。|
|
[
OH_AVCProfile
](
_codec_base.md#oh_avcprofile
)
{
**AVC_PROFILE_BASELINE**
= 0,
**AVC_PROFILE_HIGH**
= 4,
**AVC_PROFILE_MAIN**
= 8 } | AVC Profile枚举。|
|
[
OH_AACProfile
](
_codec_base.md#oh_aacprofile
)
{
**AAC_PROFILE_LC**
= 0 } | AAC Profile枚举。|
|
[
OH_AVCodecBufferFlags
](
_codec_base.md#oh_avcodecbufferflags
)
{
<br/>
**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,
<br/>
**AVCODEC_BUFFER_FLAGS_CODEC_DATA**
= 1
<<
3
<br/>
} | 枚举OH_AVCodec缓冲区标记的类别。 |
|
[
OH_AVOutputFormat
](
_codec_base.md#oh_avoutputformat
)
{
**AV_OUTPUT_FORMAT_DEFAULT**
= 0,
**AV_OUTPUT_FORMAT_MPEG_4**
= 2,
**AV_OUTPUT_FORMAT_M4A**
= 6 } | 枚举封装器的输出文件格式。 |
|
[
OH_MediaType
](
_codec_base.md#oh_mediatype
)
{
**MEDIA_TYPE_AUD**
= 0,
**MEDIA_TYPE_VID**
= 1 } | 媒体类型。 |
|
[
OH_AVCProfile
](
_codec_base.md#oh_avcprofile
)
{
**AVC_PROFILE_BASELINE**
= 0,
**AVC_PROFILE_HIGH**
= 4,
**AVC_PROFILE_MAIN**
= 8 } | AVC Profile枚举。 |
|
[
OH_HEVCProfile
](
_codec_base.md#oh_hevcprofile
)
{
<br/>
**HEVC_PROFILE_MAIN**
= 0,
**HEVC_PROFILE_MAIN_10**
= 1,
**HEVC_PROFILE_MAIN_STILL**
= 2,
**HEVC_PROFILE_MAIN_10_HDR10**
= 3,
<br/>
**HEVC_PROFILE_MAIN_10_HDR10_PLUS**
= 4
<br/>
} | HEVC Profile枚举。 |
|
[
OH_AACProfile
](
_codec_base.md#oh_aacprofile
)
{
**AAC_PROFILE_LC**
= 0 } | AAC Profile枚举。 |
|
[
OH_AVSeekMode
](
_codec_base.md#oh_avseekmode
)
{
**SEEK_MODE_NEXT_SYNC**
= 0,
**SEEK_MODE_PREVIOUS_SYNC**
,
**SEEK_MODE_CLOSEST_SYNC**
} | 跳转模式。 |
|
[
OH_ColorPrimary
](
_codec_base.md#oh_colorprimary
)
{
<br/>
**COLOR_PRIMARY_BT709**
= 1,
**COLOR_PRIMARY_UNSPECIFIED**
= 2,
**COLOR_PRIMARY_BT470_M**
= 4,
**COLOR_PRIMARY_BT601_625**
= 5,
<br/>
**COLOR_PRIMARY_BT601_525**
= 6,
**COLOR_PRIMARY_SMPTE_ST240**
= 7,
**COLOR_PRIMARY_GENERIC_FILM**
= 8,
**COLOR_PRIMARY_BT2020**
= 9,
<br/>
**COLOR_PRIMARY_SMPTE_ST428**
= 10,
**COLOR_PRIMARY_P3DCI**
= 11,
**COLOR_PRIMARY_P3D65**
= 12
<br/>
} | 原色。 |
|
[
OH_TransferCharacteristic
](
_codec_base.md#oh_transfercharacteristic
)
{
<br/>
**TRANSFER_CHARACTERISTIC_BT709**
= 1,
**TRANSFER_CHARACTERISTIC_UNSPECIFIED**
= 2,
**TRANSFER_CHARACTERISTIC_GAMMA_2_2**
= 4,
**TRANSFER_CHARACTERISTIC_GAMMA_2_8**
= 5,
<br/>
**TRANSFER_CHARACTERISTIC_BT601**
= 6,
**TRANSFER_CHARACTERISTIC_SMPTE_ST240**
= 7,
**TRANSFER_CHARACTERISTIC_LINEAR**
= 8,
**TRANSFER_CHARACTERISTIC_LOG**
= 9,
<br/>
**TRANSFER_CHARACTERISTIC_LOG_SQRT**
= 10,
**TRANSFER_CHARACTERISTIC_IEC_61966_2_4**
= 11,
**TRANSFER_CHARACTERISTIC_BT1361**
= 12,
**TRANSFER_CHARACTERISTIC_IEC_61966_2_1**
= 13,
<br/>
**TRANSFER_CHARACTERISTIC_BT2020_10BIT**
= 14,
**TRANSFER_CHARACTERISTIC_BT2020_12BIT**
= 15,
**TRANSFER_CHARACTERISTIC_PQ**
= 16,
**TRANSFER_CHARACTERISTIC_SMPTE_ST428**
= 17,
<br/>
**TRANSFER_CHARACTERISTIC_HLG**
= 18
<br/>
} | 转移特性。 |
|
[
OH_MatrixCoefficient
](
_codec_base.md#oh_matrixcoefficient
)
{
<br/>
**MATRIX_COEFFICIENT_IDENTITY**
= 0,
**MATRIX_COEFFICIENT_BT709**
= 1,
**MATRIX_COEFFICIENT_UNSPECIFIED**
= 2,
**MATRIX_COEFFICIENT_FCC**
= 4,
<br/>
**MATRIX_COEFFICIENT_BT601_625**
= 5,
**MATRIX_COEFFICIENT_BT601_525**
= 6,
**MATRIX_COEFFICIENT_SMPTE_ST240**
= 7,
**MATRIX_COEFFICIENT_YCGCO**
= 8,
<br/>
**MATRIX_COEFFICIENT_BT2020_NCL**
= 9,
**MATRIX_COEFFICIENT_BT2020_CL**
= 10,
**MATRIX_COEFFICIENT_SMPTE_ST2085**
= 11,
**MATRIX_COEFFICIENT_CHROMATICITY_NCL**
= 12,
<br/>
**MATRIX_COEFFICIENT_CHROMATICITY_CL**
= 13,
**MATRIX_COEFFICIENT_ICTCP**
= 14
<br/>
} | 矩阵系数。 |
|
[
OH_BitsPerSample
](
_codec_base.md#oh_bitspersample
)
{
<br/>
**SAMPLE_U8**
= 0,
**SAMPLE_S16LE**
= 1,
**SAMPLE_S24LE**
= 2,
**SAMPLE_S32LE**
= 3,
<br/>
**SAMPLE_F32LE**
= 4,
**SAMPLE_U8P**
= 5,
**SAMPLE_S16P**
= 6,
**SAMPLE_S24P**
= 7,
<br/>
**SAMPLE_S32P**
= 8,
**SAMPLE_F32P**
= 9,
**INVALID_WIDTH**
= -1
<br/>
} | 枚举每个编码样本的音频位数。 |
### 变量
| 名称 | 描述 |
| -------- | -------- |
|
[
OH_AVCODEC_MIMETYPE_VIDEO_AVC
](
_codec_base.md#oh_avcodec_mimetype_video_avc
)
| AVC视频编解码器的MIME类型。|
|
[
OH_AVCODEC_MIMETYPE_AUDIO_AAC
](
_codec_base.md#oh_avcodec_mimetype_audio_aac
)
| AAC音频编解码器的MIME类型。|
|
[
OH_ED_KEY_TIME_STAMP
](
_codec_base.md#oh_ed_key_time_stamp
)
| 提供统一的surface Buffer附属数据的字符描述符。|
|
[
OH_ED_KEY_EOS
](
_codec_base.md#oh_ed_key_eos
)
| surface附属数据中结束流的字符描述符,值类型为bool。 |
|
[
OH_MD_KEY_TRACK_TYPE
](
_codec_base.md#oh_md_key_track_type
)
| 为媒体播放框架提供统一的字符描述符。|
|
[
OH_MD_KEY_CODEC_MIME
](
_codec_base.md#oh_md_key_codec_mime
)
| MIME类型的字符描述符,值类型为string。 |
|
[
OH_MD_KEY_DURATION
](
_codec_base.md#oh_md_key_duration
)
|duration的字符描述符,值类型为int64_t。|
|
[
OH_MD_KEY_BITRATE
](
_codec_base.md#oh_md_key_bitrate
)
| 比特率的字符描述符,值类型为uint32_t。 |
|
[
OH_MD_KEY_MAX_INPUT_SIZE
](
_codec_base.md#oh_md_key_max_input_size
)
| 最大输入尺寸的字符描述符,值类型为uint32_t。 |
|
[
OH_MD_KEY_WIDTH
](
_codec_base.md#oh_md_key_width
)
| 视频宽度的字符描述符,值类型为uint32_t。 |
|
[
OH_MD_KEY_HEIGHT
](
_codec_base.md#oh_md_key_height
)
| 视频高度的字符描述符,值类型为uint32_t。 |
|
[
OH_MD_KEY_PIXEL_FORMAT
](
_codec_base.md#oh_md_key_pixel_format
)
| 视频像素格式的字符描述符,值类型为int32_t,具体见
[
OH_AVPixelFormat
](
_core.md#oh_avpixelformat
)
。 |
|
[
OH_MD_KEY_AUDIO_SAMPLE_FORMAT
](
_codec_base.md#oh_md_key_audio_sample_format
)
| 音频采样格式的字符描述符,值类型为uint32_t。 |
|
[
OH_MD_KEY_FRAME_RATE
](
_codec_base.md#oh_md_key_frame_rate
)
| 视频帧率的字符描述符,值类型为double。|
|
[
OH_MD_KEY_VIDEO_ENCODE_BITRATE_MODE
](
_codec_base.md#oh_md_key_video_encode_bitrate_mode
)
| 视频编码比特率模式的字符描述符,值类型为int32_t,具体见
[
OH_VideoEncodeBitrateMode
](
_video_encoder.md#oh_videoencodebitratemode
)
。 |
|
[
OH_MD_KEY_PROFILE
](
_codec_base.md#oh_md_key_profile
)
| 音视频编码能力的字符描述符,值类型为int32_t,具体见
[
OH_AVCProfile
](
_codec_base.md#oh_avcprofile
)
或
[
OH_AACProfile
](
_codec_base.md#oh_aacprofile
)
。 |
|
[
OH_MD_KEY_AUD_CHANNEL_COUNT
](
_codec_base.md#oh_md_key_aud_channel_count
)
| 音频声道数的字符描述符,值类型为uint32_t。 |
|
[
OH_MD_KEY_AUD_SAMPLE_RATE
](
_codec_base.md#oh_md_key_aud_sample_rate
)
| 音频采样率的字符描述符,值类型为uint32_t。 |
|
[
OH_MD_KEY_I_FRAME_INTERVAL
](
_codec_base.md#oh_md_key_i_frame_interval
)
| I帧间隔时长的字符描述符,值类型为int32_t,单位是毫秒。|
|
[
OH_MD_KEY_ROTATION
](
_codec_base.md#oh_md_key_rotation
)
| surface旋转角度的字符描述符,值类型为int32_t,限于{0, 90, 180, 270},默认值为0。 |
|
[
OH_AVCodecBufferAttr::pts
](
_o_h___a_v_codec_buffer_attr.md#pts
)
| 此缓冲区的显示时间戳(以微秒为单位) |
|
[
OH_AVCodecBufferAttr::size
](
_o_h___a_v_codec_buffer_attr.md#size
)
| 缓冲区中包含的数据的大小(以字节为单位) |
|
[
OH_AVCodecBufferAttr::offset
](
_o_h___a_v_codec_buffer_attr.md#offset
)
| 此缓冲区中有效数据的起始偏移量 |
|
[
OH_AVCodecBufferAttr::flags
](
_o_h___a_v_codec_buffer_attr.md#flags
)
| 此缓冲区具有的标志,也是多个
[
OH_AVCodecBufferFlags
](
_codec_base.md#oh_avcodecbufferflags
)
的组合。 |
|
[
OH_AVCodecAsyncCallback::onError
](
_o_h___a_v_codec_async_callback.md#onerror
)
| 监控编解码器操作错误,请参见
[
OH_AVCodecOnError
](
_codec_base.md#oh_avcodeconerror
)
|
|
[
OH_AVCodecAsyncCallback::onStreamChanged
](
_o_h___a_v_codec_async_callback.md#onstreamchanged
)
| 监控编解码器流变化,请参见
[
OH_AVCodecOnStreamChanged
](
_codec_base.md#oh_avcodeconstreamchanged
)
|
|
[
OH_AVCodecAsyncCallback::onNeedInputData
](
_o_h___a_v_codec_async_callback.md#onneedinputdata
)
| 监控编解码器需要输入数据,请参见
[
OH_AVCodecOnNeedInputData
](
_codec_base.md#oh_avcodeconneedinputdata
)
|
|
[
OH_AVCodecAsyncCallback::onNeedOutputData
](
_o_h___a_v_codec_async_callback.md#onneedinputdata
)
| 监控编解码器已生成输出数据,请参见
[
OH_AVCodecOnNewOutputData
](
_codec_base.md#oh_avcodeconnewoutputdata
)
|
|
\*
[
OH_AVCODEC_MIMETYPE_VIDEO_AVC
](
_codec_base.md#oh_avcodec_mimetype_video_avc
)
| AVC视频编解码器的MIME类型。 |
|
\*
[
OH_AVCODEC_MIMETYPE_AUDIO_AAC
](
_codec_base.md#oh_avcodec_mimetype_audio_aac
)
| AAC音频编解码器的MIME类型。 |
|
\*
[
OH_AVCODEC_MIMETYPE_VIDEO_MPEG4
](
_codec_base.md#oh_avcodec_mimetype_video_mpeg4
)
| MPEG4视频编解码器的MIME类型。 |
|
\*
[
OH_AVCODEC_MIMETYPE_VIDEO_HEVC
](
_codec_base.md#oh_avcodec_mimetype_video_hevc
)
| HEVC视频编解码器的MIME类型。 |
|
\*
[
OH_AVCODEC_MIMETYPE_AUDIO_MPEG
](
_codec_base.md#oh_avcodec_mimetype_audio_mpeg
)
| MPEG音频编解码器的MIME类型。 |
|
\*
[
OH_AVCODEC_MIMETYPE_IMAGE_JPG
](
_codec_base.md#oh_avcodec_mimetype_image_jpg
)
| JPG图片编解码器的MIME类型。 |
|
\*
[
OH_AVCODEC_MIMETYPE_IMAGE_PNG
](
_codec_base.md#oh_avcodec_mimetype_image_png
)
| PNG图片编解码器的MIME类型。 |
|
\*
[
OH_AVCODEC_MIMETYPE_IMAGE_BMP
](
_codec_base.md#oh_avcodec_mimetype_image_bmp
)
| BMP图片编解码器的MIME类型。 |
|
\*
[
OH_AVCODEC_MIMETYPE_AUDIO_FLAC
](
_codec_base.md#oh_avcodec_mimetype_audio_flac
)
| FLAC音频编解码器的MIME类型。 |
|
\*
[
OH_AVCODEC_MIMETYPE_AUDIO_VORBIS
](
_codec_base.md#oh_avcodec_mimetype_audio_vorbis
)
| VORBIS音频编解码器的MIME类型。 |
|
\*
[
OH_ED_KEY_TIME_STAMP
](
_codec_base.md#oh_ed_key_time_stamp
)
| 表面的额外数据中时间戳的键,值类型为int64 |
|
\*
[
OH_ED_KEY_EOS
](
_codec_base.md#oh_ed_key_eos
)
| 表面的额外数据中流结束符的键,值类型为bool |
|
\*
[
OH_MD_KEY_TRACK_TYPE
](
_codec_base.md#oh_md_key_track_type
)
| 提供统一容器,用于存储媒体描述。 |
|
\*
[
OH_MD_KEY_CODEC_MIME
](
_codec_base.md#oh_md_key_codec_mime
)
| 编解码器mime类型的键,值类型为字符串。 |
|
\*
[
OH_MD_KEY_DURATION
](
_codec_base.md#oh_md_key_duration
)
| 持续时间键,值类型为int64_t。 |
|
\*
[
OH_MD_KEY_BITRATE
](
_codec_base.md#oh_md_key_bitrate
)
| 比特率的键,值类型为uint32_t。 |
|
\*
[
OH_MD_KEY_MAX_INPUT_SIZE
](
_codec_base.md#oh_md_key_max_input_size
)
| 最大输入大小的键,值类型为uint32_t |
|
\*
[
OH_MD_KEY_WIDTH
](
_codec_base.md#oh_md_key_width
)
| 视频宽度的键,值类型为uint32_t |
|
\*
[
OH_MD_KEY_HEIGHT
](
_codec_base.md#oh_md_key_height
)
| 视频高度键,值类型为uint32_t |
|
\*
[
OH_MD_KEY_PIXEL_FORMAT
](
_codec_base.md#oh_md_key_pixel_format
)
| 视频像素格式的键,值类型为int32_t,具体见
[
OH_AVPixelFormat
](
_core.md#oh_avpixelformat
)
|
|
\*
[
OH_MD_KEY_RANGE_FLAG
](
_codec_base.md#oh_md_key_range_flag
)
| 视频YUV取值范围标志的键,值类型为bool |
|
\*
[
OH_MD_KEY_COLOR_PRIMARIES
](
_codec_base.md#oh_md_key_color_primaries
)
| 视频颜色原色键, 值类型为int32_t |
|
\*
[
OH_MD_KEY_TRANSFER_CHARACTERISTICS
](
_codec_base.md#oh_md_key_transfer_characteristics
)
| 视频转移特性的键,值类型为int32_t |
|
\*
[
OH_MD_KEY_MATRIX_COEFFICIENTS
](
_codec_base.md#oh_md_key_matrix_coefficients
)
| 视频矩阵系数的键,值类型为int32_t |
|
\*
[
OH_MD_KEY_AUDIO_SAMPLE_FORMAT
](
_codec_base.md#oh_md_key_audio_sample_format
)
| 音频原始格式的键,值类型为uint32_t |
|
\*
[
OH_MD_KEY_FRAME_RATE
](
_codec_base.md#oh_md_key_frame_rate
)
| 视频帧率的键,值类型为双精度浮点。 |
|
\*
[
OH_MD_KEY_VIDEO_ENCODE_BITRATE_MODE
](
_codec_base.md#oh_md_key_video_encode_bitrate_mode
)
| 视频编码码率模式,值类型为int32_t,具体见
[
OH_VideoEncodeBitrateMode
](
_video_encoder.md#oh_videoencodebitratemode
)
|
|
\*
[
OH_MD_KEY_PROFILE
](
_codec_base.md#oh_md_key_profile
)
| 编码模板,值类型为数字,具体见
[
OH_AVCProfile
](
_codec_base.md#oh_avcprofile
)
,
[
OH_AACProfile
](
_codec_base.md#oh_aacprofile
)
或
[
CodecBase
](
_codec_base.md#oh_hevcprofile
)
。 |
|
\*
[
OH_MD_KEY_AUD_CHANNEL_COUNT
](
_codec_base.md#oh_md_key_aud_channel_count
)
| 音频通道计数键,值类型为uint32_t |
|
\*
[
OH_MD_KEY_AUD_SAMPLE_RATE
](
_codec_base.md#oh_md_key_aud_sample_rate
)
| 音频采样率键,值类型为uint32_t |
|
\*
[
OH_MD_KEY_I_FRAME_INTERVAL
](
_codec_base.md#oh_md_key_i_frame_interval
)
| 关键帧间隔的键,值类型为int32_t,单位为毫秒。 |
|
\*
[
OH_MD_KEY_ROTATION
](
_codec_base.md#oh_md_key_rotation
)
| 表面旋转角度的键。值类型为int32_t:应为{0, 90, 180, 270},默认值为0。 |
|
\*
[
OH_MD_KEY_CODEC_CONFIG
](
_codec_base.md#oh_md_key_codec_config
)
| 编解码器特定数据的键,值类型为uint8_t
\*
。 |
|
\*
[
OH_MD_KEY_REQUEST_I_FRAME
](
_codec_base.md#oh_md_key_request_i_frame
)
| 请求立即编码I帧的键。值类型为布尔值 |
|
\*
[
OH_MD_KEY_QUALITY
](
_codec_base.md#oh_md_key_quality
)
| 所需编码质量的键。值类型为uint32_t,此键仅适用于配置在恒定质量模式下的编码器 |
|
\*
[
OH_MD_KEY_CHANNEL_LAYOUT
](
_codec_base.md#oh_md_key_channel_layout
)
| 所需编码通道布局的键。值类型为int64_t,此键仅适用于编码器。 |
|
\*
[
OH_MD_KEY_BITS_PER_CODED_SAMPLE
](
_codec_base.md#oh_md_key_bits_per_coded_sample
)
| 每个编码样本位数的键,值类型为uint32_t,支持flac编码器。 |
|
\*
[
OH_MD_KEY_AAC_IS_ADTS
](
_codec_base.md#oh_md_key_aac_is_adts
)
| aac格式的键,值类型为uint32_t,aac解码器支持。 |
|
\*
[
OH_MD_KEY_SBR
](
_codec_base.md#oh_md_key_sbr
)
| aac sbr模式的键,值类型为uint32_t,aac编码器支持。 |
|
\*
[
OH_MD_KEY_COMPLIANCE_LEVEL
](
_codec_base.md#oh_md_key_compliance_level
)
| flac合规性级别的键,值类型为int32_t。 |
|
\*
[
OH_MD_KEY_IDENTIFICATION_HEADER
](
_codec_base.md#oh_md_key_identification_header
)
| vorbis标识头的键,值类型为uint8_t
\*
,仅vorbis解码器支持。 |
|
\*
[
OH_MD_KEY_SETUP_HEADER
](
_codec_base.md#oh_md_key_setup_header
)
| vorbis设置头的键,值类型为uint8_t
\*
,仅vorbis解码器支持。 |
|
\*
[
OH_MD_KEY_TITLE
](
_codec_base.md#oh_md_key_title
)
| 源格式标题的键,值类型为字符串 |
|
\*
[
OH_MD_KEY_ARTIST
](
_codec_base.md#oh_md_key_artist
)
| 艺术家的源格式Key,值类型为字符串 |
|
\*
[
OH_MD_KEY_ALBUM
](
_codec_base.md#oh_md_key_album
)
| 相册的源格式键,值类型为字符串 |
|
\*
[
OH_MD_KEY_ALBUM_ARTIST
](
_codec_base.md#oh_md_key_album_artist
)
| 源格式专辑_artist的键,值类型为字符串 |
|
\*
[
OH_MD_KEY_DATE
](
_codec_base.md#oh_md_key_date
)
| 源格式日期的键,值类型为字符串 |
|
\*
[
OH_MD_KEY_COMMENT
](
_codec_base.md#oh_md_key_comment
)
| 源格式注释的键,值类型为字符串 |
|
\*
[
OH_MD_KEY_GENRE
](
_codec_base.md#oh_md_key_genre
)
| 源格式类型的键,值类型为字符串 |
|
\*
[
OH_MD_KEY_COPYRIGHT
](
_codec_base.md#oh_md_key_copyright
)
| 源格式版权的键,值类型为字符串 |
|
\*
[
OH_MD_KEY_LANGUAGE
](
_codec_base.md#oh_md_key_language
)
| 源格式语言的键,值类型为字符串 |
|
\*
[
OH_MD_KEY_DESCRIPTION
](
_codec_base.md#oh_md_key_description
)
| 源格式描述的键,值类型为字符串 |
|
\*
[
OH_MD_KEY_LYRICS
](
_codec_base.md#oh_md_key_lyrics
)
| 源格式歌词的键,值类型为字符串 |
|
\*
[
OH_MD_KEY_TRACK_COUNT
](
_codec_base.md#oh_md_key_track_count
)
| 源格式轨道计数的键,值类型为uint32_t |
zh-cn/application-dev/reference/native-apis/native__avcodec__videodecoder_8h.md
浏览文件 @
dc2cd5e0
...
...
@@ -6,9 +6,10 @@
声明用于视频解码的Native API。
**起始版本:**
9
**相关模块
:
**
**相关模块
:
**
[
VideoDecoder
](
_video_decoder.md
)
...
...
@@ -20,19 +21,20 @@
| 名称 | 描述 |
| -------- | -------- |
|
[
OH_VideoDecoder_CreateByMime
](
_video_decoder.md#oh_videodecoder_createbymime
)
(
const
char
\*
mime) | 通过mime类型创建一个视频解码器实例,大多数情况下推荐使用该接口。|
|
[
OH_VideoDecoder_CreateByName
](
_video_decoder.md#oh_videodecoder_createbyname
)
(
const
char
\*
name) | 通过视频解码器名称创建一个视频解码器实例,使用这个接口的前提是必须清楚解码器准确的名称。|
|
[
OH_VideoDecoder_Destroy
](
_video_decoder.md#oh_videodecoder_destroy
)
(
OH_AVCodec
\*
codec) | 清空解码器内部资源,并销毁解码器实例。|
|
[
OH_VideoDecoder_SetCallback
](
_video_decoder.md#oh_videodecoder_setcallback
)
(
OH_AVCodec
\*
codec,
[
OH_AVCodecAsyncCallback
](
_o_h___a_v_codec_async_callback.md
)
callback, void
\*
userData) | 设置异步回调函数,使得你的应用能够响应视频解码器产生的事件,该接口被调用必须是在Prepare被调用前。|
|
[
OH_VideoDecoder_SetSurface
](
_video_decoder.md#oh_videodecoder_setsurface
)
(
OH_AVCodec
\*
codec, OHNativeWindow
\*
window) | 指定输出Surface,以提供视频解码输出,该接口被调用必须是在Prepare被调用前。|
|
[
OH_VideoDecoder_Configure
](
_video_decoder.md#oh_videodecoder_configure
)
(
OH_AVCodec
\*
codec, OH_AVFormat
\*
format) | 配置视频解码器,典型地,需要配置被解码视频轨道的描述信息,这些信息能够从容器中提取出来, 该接口被调用必须是在Prepare被调用前。|
|
[
OH_VideoDecoder_Prepare
](
_video_decoder.md#oh_videodecoder_prepare
)
(
OH_AVCodec
\*
codec) | 准备解码器内部资源,调用该接口前必须先调用Configure接口。|
|
[
OH_VideoDecoder_Start
](
_video_decoder.md#oh_videodecoder_start
)
(
OH_AVCodec
\*
codec) | 启动解码器,该接口必须在已经Prepare成功后调用。 在启动成功后,解码器将开始报告
[
OH_AVCodecOnNeedInputData
](
_codec_base.md#oh_avcodeconneedinputdata
)
事件。|
|
[
OH_VideoDecoder_Stop
](
_video_decoder.md#oh_videodecoder_stop
)
(
OH_AVCodec
\*
codec) | 停止解码器。在停止后可通过Start重新进入Started状态,但需要注意的是,若先前给解码器输入过 Codec-Specific-Data,则需要重新输入。|
|
[
OH_VideoDecoder_Flush
](
_video_decoder.md#oh_videodecoder_flush
)
(
OH_AVCodec
\*
codec) | 清空解码器内部缓存的输入输出数据。在该接口被调用后,所有先前通过异步回调报告的Buffer的索引都将 失效,确保不要再访问这些索引对应的Buffers。|
|
[
OH_VideoDecoder_Reset
](
_video_decoder.md#oh_videodecoder_reset
)
(
OH_AVCodec
\*
codec) | 重置解码器。如需继续解码工作,需要重新调用Configure接口以配置该解码器实例。|
|
[
OH_VideoDecoder_GetOutputDescription
](
_video_decoder.md#oh_videodecoder_getoutputdescription
)
(
OH_AVCodec
\*
codec) | 获取该解码器输出数据的描述信息,需要注意的是,返回值所指向的OH_AVFormat实例的生命周期 将会再下一次调用该接口时或者该OH_AVCodec实例被销毁时失效。|
|
[
OH_VideoDecoder_SetParameter
](
_video_decoder.md#oh_videodecoder_setparameter
)
(
OH_AVCodec
\*
codec, OH_AVFormat
\*
format) | 向解码器设置动态参数,注意:该接口仅能在解码器被启动后调用,同时错误的参数设置,可能会导致解码失败。|
|
[
OH_VideoDecoder_PushInputData
](
_video_decoder.md#oh_videodecoder_pushinputdata
)
(
OH_AVCodec
\*
codec, uint32_t index,
[
OH_AVCodecBufferAttr
](
_o_h___a_v_codec_buffer_attr.md
)
attr) | 将填充好数据的输入Buffer提交给视频解码器。
[
OH_AVCodecOnNeedInputData
](
_codec_base.md#oh_avcodeconneedinputdata
)
回调会报告可用的输入 Buffer及对应的索引值。一旦指定索引的Buffer被提交给解码器,直到再一次收到
[
OH_AVCodecOnNeedInputData
](
_codec_base.md#oh_avcodeconneedinputdata
)
回调报告相同索引的Buffer可用前,该Buffer都不可以再次被访问。另外,对于部分解码器,要求在最开始给解码器输入 Codec-Specific-Data,用以初始化解码器的解码过程,例如H264格式的PPS/SPS数据。|
|
[
OH_VideoDecoder_RenderOutputData
](
_video_decoder.md#oh_videodecoder_renderoutputdata
)
(
OH_AVCodec
\*
codec, uint32_t index) | 将处理结束的输出Buffer交还给解码器,并通知解码器完成将该Buffer内包含的解码后的数据在输出Surface上渲染。 如果先前未配置输出Surface,调用该接口仅仅将指定索引对应的输出Buffer交还给解码器。|
|
[
OH_VideoDecoder_FreeOutputData
](
_video_decoder.md#oh_videodecoder_freeoutputdata
)
(
OH_AVCodec
\*
codec, uint32_t index) | 将处理结束的输出Buffer交还给解码器。|
|
\*
[
OH_VideoDecoder_CreateByMime
](
_video_decoder.md#oh_videodecoder_createbymime
)
(
const
char
\*
mime) | 从MIME类型创建视频解码器实例,大多数情况下建议使用。 |
|
\*
[
OH_VideoDecoder_CreateByName
](
_video_decoder.md#oh_videodecoder_createbyname
)
(
const
char
\*
name) | 通过视频解码器名称创建视频解码器实例。 使用此接口的前提是知道解码器的确切名称。 |
|
[
OH_VideoDecoder_Destroy
](
_video_decoder.md#oh_videodecoder_destroy
)
(
OH_AVCodec
\*
codec) | 清理解码器内部资源,销毁解码器实例。 |
|
[
OH_VideoDecoder_SetCallback
](
_video_decoder.md#oh_videodecoder_setcallback
)
(
OH_AVCodec
\*
codec, OH_AVCodecAsyncCallback callback, void
\*
userData) | 设置异步回调函数,以便您的应用程序可以响应视频解码器生成的事件。 |
|
[
OH_VideoDecoder_SetSurface
](
_video_decoder.md#oh_videodecoder_setsurface
)
(
OH_AVCodec
\*
codec, OHNativeWindow
\*
window) | 指定输出表面以提供视频解码输出,必须在调用Prepare之前调用此接口。 |
|
[
OH_VideoDecoder_Configure
](
_video_decoder.md#oh_videodecoder_configure
)
(
OH_AVCodec
\*
codec, OH_AVFormat
\*
format) | 配置视频解码器,通常需要配置解码视频轨迹的描述信息,这些信息可以从容器中提取。 |
|
[
OH_VideoDecoder_Prepare
](
_video_decoder.md#oh_videodecoder_prepare
)
(
OH_AVCodec
\*
codec) | 要准备解码器的内部资源,在调用该接口之前,必须调用Configure接口。 |
|
[
OH_VideoDecoder_Start
](
_video_decoder.md#oh_videodecoder_start
)
(
OH_AVCodec
\*
codec) | 启动解码器,准备成功后必须调用此接口。 |
|
[
OH_VideoDecoder_Stop
](
_video_decoder.md#oh_videodecoder_stop
)
(
OH_AVCodec
\*
codec) | 停止解码器。 |
|
[
OH_VideoDecoder_Flush
](
_video_decoder.md#oh_videodecoder_flush
)
(
OH_AVCodec
\*
codec) | 清除解码器中缓存的输入和输出数据。 |
|
[
OH_VideoDecoder_Reset
](
_video_decoder.md#oh_videodecoder_reset
)
(
OH_AVCodec
\*
codec) | 重置解码器。 |
|
\*
[
OH_VideoDecoder_GetOutputDescription
](
_video_decoder.md#oh_videodecoder_getoutputdescription
)
(
OH_AVCodec
\*
codec) | 获取解码器输出数据的描述信息。 |
|
[
OH_VideoDecoder_SetParameter
](
_video_decoder.md#oh_videodecoder_setparameter
)
(
OH_AVCodec
\*
codec, OH_AVFormat
\*
format) | 设置解码器的动态参数。 |
|
[
OH_VideoDecoder_PushInputData
](
_video_decoder.md#oh_videodecoder_pushinputdata
)
(
OH_AVCodec
\*
codec, uint32_t index, OH_AVCodecBufferAttr attr) | 将填充数据的输入缓冲区提交给视频解码器。 |
|
[
OH_VideoDecoder_RenderOutputData
](
_video_decoder.md#oh_videodecoder_renderoutputdata
)
(
OH_AVCodec
\*
codec, uint32_t index) | 将处理后的输出Buffer返回给解码器,并通知解码器完成在输出表面上渲染Buffer中包含的解码数据。 |
|
[
OH_VideoDecoder_FreeOutputData
](
_video_decoder.md#oh_videodecoder_freeoutputdata
)
(
OH_AVCodec
\*
codec, uint32_t index) | 将处理后的输出缓冲区返回到解码器。 |
|
[
OH_VideoDecoder_IsValid
](
_video_decoder.md#oh_videodecoder_isvalid
)
(
OH_AVCodec
\*
codec, bool
\*
isValid) | 检查当前编解码实例是否有效。 |
zh-cn/application-dev/reference/native-apis/native__avcodec__videoencoder_8h.md
浏览文件 @
dc2cd5e0
...
...
@@ -6,9 +6,10 @@
声明用于视频编码的Native API。
**起始版本:**
9
**相关模块
:
**
**相关模块
:
**
[
VideoEncoder
](
_video_encoder.md
)
...
...
@@ -20,32 +21,35 @@
| 名称 | 描述 |
| -------- | -------- |
|
[
OH_VideoEncodeBitrateMode
](
_video_encoder.md#oh_videoencodebitratemode
)
| 视频编码
的比特率模式。
|
|
[
OH_VideoEncodeBitrateMode
](
_video_encoder.md#oh_videoencodebitratemode
)
| 视频编码
器的比特率模式。
|
### 枚举
| 名称 | 描述 |
| -------- | -------- |
|
[
OH_VideoEncodeBitrateMode
](
_video_encoder.md#oh_videoencodebitratemode
)
{
**CBR**
= 0,
**VBR**
= 1,
**CQ**
= 2 } | 视频编码
的比特率模式。
|
|
[
OH_VideoEncodeBitrateMode
](
_video_encoder.md#oh_videoencodebitratemode
)
{
**CBR**
= 0,
**VBR**
= 1,
**CQ**
= 2 } | 视频编码
器的比特率模式。
|
### 函数
| 名称 | 描述 |
| -------- | -------- |
|
[
OH_VideoEncoder_CreateByMime
](
_video_encoder.md#oh_videoencoder_createbymime
)
(
const
char
\*
mime) | 通过mime类型创建一个视频编码器实例,大多数情况下推荐使用该接口。|
|
[
OH_VideoEncoder_CreateByName
](
_video_encoder.md#oh_videoencoder_createbyname
)
(
const
char
\*
name) | 通过视频编码器名称创建一个视频编码器实例,使用这个接口的前提是必须清楚编码器准确的名称。|
|
[
OH_VideoEncoder_Destroy
](
_video_encoder.md#oh_videoencoder_destroy
)
(
OH_AVCodec
\*
codec) | 清空编码器内部资源,并销毁编码器实例。|
|
[
OH_VideoEncoder_SetCallback
](
_video_encoder.md#oh_videoencoder_setcallback
)
(
OH_AVCodec
\*
codec,
[
OH_AVCodecAsyncCallback
](
_o_h___a_v_codec_async_callback.md
)
callback, void
\*
userData) | 设置异步回调函数,使得你的应用能够响应视频编码器产生的事件,该接口被调用必须是在Prepare被调用前。|
|
[
OH_VideoEncoder_Configure
](
_video_encoder.md#oh_videoencoder_configure
)
(
OH_AVCodec
\*
codec, OH_AVFormat
\*
format) | 配置视频编码器,典型地,需要配置被编码视频轨道的描述信息,该接口被调用必须是在Prepare被调用前。|
|
[
OH_VideoEncoder_Prepare
](
_video_encoder.md#oh_videoencoder_prepare
)
(
OH_AVCodec
\*
codec) | 准备编码器内部资源,调用该接口前必须先调用Configure接口。|
|
[
OH_VideoEncoder_Start
](
_video_encoder.md#oh_videoencoder_start
)
(
OH_AVCodec
\*
codec) | 启动编码器,该接口必须在已经Prepare成功后调用。 在启动成功后,编码器将开始报告
[
OH_AVCodecOnNeedInputData
](
_codec_base.md#oh_avcodeconneedinputdata
)
事件。|
|
[
OH_VideoEncoder_Stop
](
_video_encoder.md#oh_videoencoder_stop
)
(
OH_AVCodec
\*
codec) | 停止编码器。在停止后可通过Start重新进入Started状态。|
|
[
OH_VideoEncoder_Flush
](
_video_encoder.md#oh_videoencoder_flush
)
(
OH_AVCodec
\*
codec) | 清空编码器内部缓存的输入输出数据。在该接口被调用后,所有先前通过异步回调报告的Buffer的索引都将 失效,确保不要再访问这些索引对应的Buffers。|
|
[
OH_VideoEncoder_Reset
](
_video_encoder.md#oh_videoencoder_reset
)
(
OH_AVCodec
\*
codec) | 重置编码器。如需继续编码工作,需要重新调用Configure接口以配置该编码器实例。|
|
[
OH_VideoEncoder_GetOutputDescription
](
_video_encoder.md#oh_videoencoder_getoutputdescription
)
(
OH_AVCodec
\*
codec) | 获取该编码器输出数据的描述信息,需要注意的是,返回值所指向的OH_AVFormat实例的生命周期 将会再下一次调用该接口时或者该OH_AVCodec实例被销毁时失效。|
|
[
OH_VideoEncoder_SetParameter
](
_video_encoder.md#oh_videoencoder_setparameter
)
(
OH_AVCodec
\*
codec, OH_AVFormat
\*
format) | 向编码器设置动态参数,注意:该接口仅能在编码器被启动后调用,同时错误的参数设置,可能会导致编码失败。|
|
[
OH_VideoEncoder_GetSurface
](
_video_encoder.md#oh_videoencoder_getsurface
)
(
OH_AVCodec
\*
codec, OHNativeWindow
\*\*
window) | 从视频编码器获取输入Surface, 该接口被调用必须是在Prepare被调用前。|
|
[
OH_VideoEncoder_FreeOutputData
](
_video_encoder.md#oh_videoencoder_freeoutputdata
)
(
OH_AVCodec
\*
codec, uint32_t index) | 将处理结束的输出Buffer交还给编码器。|
|
[
OH_VideoEncoder_NotifyEndOfStream
](
_video_encoder.md#oh_videoencoder_notifyendofstream
)
(
OH_AVCodec
\*
codec) | 通知视频编码器输入码流已结束。surface模式推荐使用该接口通知编码器码流结束。|
|
\*
[
OH_VideoEncoder_CreateByMime
](
_video_encoder.md#oh_videoencoder_createbymime
)
(
const
char
\*
mime) | 多数情况下,推荐从MIME类型创建视频编码器实例。 |
|
\*
[
OH_VideoEncoder_CreateByName
](
_video_encoder.md#oh_videoencoder_createbyname
)
(
const
char
\*
name) | 通过视频编码器名称创建一个视频编码器实例。使用此接口的前提是知道编码器的确切名称。 |
|
[
OH_VideoEncoder_Destroy
](
_video_encoder.md#oh_videoencoder_destroy
)
(
OH_AVCodec
\*
codec) | 清除编码器的内部资源并销毁编码器实例。 |
|
[
OH_VideoEncoder_SetCallback
](
_video_encoder.md#oh_videoencoder_setcallback
)
(
OH_AVCodec
\*
codec, OH_AVCodecAsyncCallback callback, void
\*
userData) | 设置异步回调函数,以便您的应用程序能够响应视频编码器事件。 |
|
[
OH_VideoEncoder_Configure
](
_video_encoder.md#oh_videoencoder_configure
)
(
OH_AVCodec
\*
codec, OH_AVFormat
\*
format) | 配置视频编码器,通常需要配置要编码的视频轨的描述信息。 |
|
[
OH_VideoEncoder_Prepare
](
_video_encoder.md#oh_videoencoder_prepare
)
(
OH_AVCodec
\*
codec) | 若要准备编码器的内部资源,必须先调用Configure接口,再调用此接口。 |
|
[
OH_VideoEncoder_Start
](
_video_encoder.md#oh_videoencoder_start
)
(
OH_AVCodec
\*
codec) | 启动编码器, 这个接口必须要在Prepare接口执行成功后调用。 |
|
[
OH_VideoEncoder_Stop
](
_video_encoder.md#oh_videoencoder_stop
)
(
OH_AVCodec
\*
codec) | 停止编码器。 |
|
[
OH_VideoEncoder_Flush
](
_video_encoder.md#oh_videoencoder_flush
)
(
OH_AVCodec
\*
codec) | 清除编码器中缓冲的输入和输出数据。 |
|
[
OH_VideoEncoder_Reset
](
_video_encoder.md#oh_videoencoder_reset
)
(
OH_AVCodec
\*
codec) | 重置编码器。 |
|
\*
[
OH_VideoEncoder_GetOutputDescription
](
_video_encoder.md#oh_videoencoder_getoutputdescription
)
(
OH_AVCodec
\*
codec) | 获取编码器输出数据的描述信息,详细信息请参阅
**OH_AVFormat**
。 |
|
[
OH_VideoEncoder_SetParameter
](
_video_encoder.md#oh_videoencoder_setparameter
)
(
OH_AVCodec
\*
codec, OH_AVFormat
\*
format) | 为编码器设置动态参数。 |
|
[
OH_VideoEncoder_GetSurface
](
_video_encoder.md#oh_videoencoder_getsurface
)
(
OH_AVCodec
\*
codec, OHNativeWindow
\*\*
window) | 从视频编码器获取输入Surface,必须在调用Prepare之前调用此接口。 |
|
[
OH_VideoEncoder_FreeOutputData
](
_video_encoder.md#oh_videoencoder_freeoutputdata
)
(
OH_AVCodec
\*
codec, uint32_t index) | 将处理后的输出缓冲区返回给编码器。 |
|
[
OH_VideoEncoder_NotifyEndOfStream
](
_video_encoder.md#oh_videoencoder_notifyendofstream
)
(
OH_AVCodec
\*
codec) | 通知视频编码器输入流已结束。建议使用此接口进行通知。 |
|
[
OH_VideoEncoder_PushInputData
](
_video_encoder.md#oh_videoencoder_pushinputdata
)
(
OH_AVCodec
\*
codec, uint32_t index, OH_AVCodecBufferAttr attr) | 将填入数据的输入缓冲区提交给视频编码器。 |
|
\*
[
OH_VideoEncoder_GetInputDescription
](
_video_encoder.md#oh_videoencoder_getinputdescription
)
(
OH_AVCodec
\*
codec) | 获取视频编码器接收的描述信息,调用Configure后调用此接口,请参阅
**OH_AVFormat**
获取详细信息。 |
|
[
OH_VideoEncoder_IsValid
](
_video_encoder.md#oh_videoencoder_isvalid
)
(
OH_AVCodec
\*
codec, bool
\*
isValid) | 检查当前编解码器实例是否有效。 |
zh-cn/application-dev/reference/native-apis/native__avdemuxer_8h.md
0 → 100644
浏览文件 @
dc2cd5e0
# native_avdemuxer.h
## 概述
声明用于音视频解封装的Native API。
**起始版本:**
10
**相关模块:**
[
AVDemuxer
](
_a_v_demuxer.md
)
## 汇总
### 函数
| 名称 | 描述 |
| -------- | -------- |
|
\*
[
OH_AVDemuxer_CreateWithSource
](
_a_v_demuxer.md#oh_avdemuxer_createwithsource
)
(
OH_AVSource
\*
source) | 通过source实例对象创建OH_AVDemuxer实例对象。 |
|
[
OH_AVDemuxer_Destroy
](
_a_v_demuxer.md#oh_avdemuxer_destroy
)
(
OH_AVDemuxer
\*
demuxer) | 销毁OH_AVDemuxer实例并清理内部资源。 |
|
[
OH_AVDemuxer_SelectTrackByID
](
_a_v_demuxer.md#oh_avdemuxer_selecttrackbyid
)
(
OH_AVDemuxer
\*
demuxer, uint32_t trackIndex) | 选中指定轨道,解封装器将会从该轨道中读取数据。 |
|
[
OH_AVDemuxer_UnselectTrackByID
](
_a_v_demuxer.md#oh_avdemuxer_unselecttrackbyid
)
(
OH_AVDemuxer
\*
demuxer, uint32_t trackIndex) | 取消选择指定轨道,未选中的轨道的数据不会被解封装器读取。 |
|
[
OH_AVDemuxer_ReadSample
](
_a_v_demuxer.md#oh_avdemuxer_readsample
)
(
OH_AVDemuxer
\*
demuxer, uint32_t trackIndex, OH_AVMemory
\*
sample, OH_AVCodecBufferAttr
\*
info) | 从选中轨道中获取当前位置压缩帧及相关信息。 |
|
[
OH_AVDemuxer_SeekToTime
](
_a_v_demuxer.md#oh_avdemuxer_seektotime
)
(
OH_AVDemuxer
\*
demuxer, int64_t millisecond, OH_AVSeekMode mode) | 根据设定的跳转模式,将所有选中的轨道到指定时间附近。 |
zh-cn/application-dev/reference/native-apis/native__averrors_8h.md
浏览文件 @
dc2cd5e0
...
...
@@ -6,9 +6,10 @@
声明了媒体播放框架的错误码。
**起始版本:**
9
**相关模块
:
**
**相关模块
:
**
[
Core
](
_core.md
)
...
...
@@ -18,13 +19,13 @@
### 类型定义
| 名称 | 描述 |
| 名称 | 描述 |
| -------- | -------- |
|
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
| 音视频错误码。
|
|
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
| 音视频错误码。 |
### 枚举
| 名称 | 描述 |
| 名称 | 描述 |
| -------- | -------- |
|
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
{
<br/>
**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
<br/>
} | 音视频错误码。
|
|
[
OH_AVErrCode
](
_core.md#oh_averrcode
)
{
<br/>
AV_ERR_OK = 0, AV_ERR_NO_MEMORY = 1, AV_ERR_OPERATE_NOT_PERMIT = 2, AV_ERR_INVALID_VAL = 3,
<br/>
AV_ERR_IO = 4, AV_ERR_TIMEOUT = 5, AV_ERR_UNKNOWN = 6, AV_ERR_SERVICE_DIED = 7,
<br/>
AV_ERR_INVALID_STATE = 8, AV_ERR_UNSUPPORT = 9, AV_ERR_EXTEND_START = 100
<br/>
} | 音视频错误码。
|
zh-cn/application-dev/reference/native-apis/native__avformat_8h.md
浏览文件 @
dc2cd5e0
...
...
@@ -6,9 +6,10 @@
声明了格式相关的函数和枚举。
**起始版本:**
9
**相关模块
:
**
**相关模块
:
**
[
Core
](
_core.md
)
...
...
@@ -20,33 +21,35 @@
| 名称 | 描述 |
| -------- | -------- |
|
[
OH_AVPixelFormat
](
_core.md#oh_avpixelformat
)
| AVPixel 格式的枚举
。
|
|
[
OH_AVPixelFormat
](
_core.md#oh_avpixelformat
)
| AVPixel 格式的枚举
类。
|
### 枚举
| 名称 | 描述 |
| -------- | -------- |
|
[
OH_AVPixelFormat
](
_core.md#oh_avpixelformat
)
{
<br/>
**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
<br/>
} | AVPixel 格式的枚举。
|
|
[
OH_AVPixelFormat
](
_core.md#oh_avpixelformat
)
{
<br/>
AV_PIXEL_FORMAT_YUVI420 = 1, AV_PIXEL_FORMAT_NV12 = 2, AV_PIXEL_FORMAT_NV21 = 3, AV_PIXEL_FORMAT_SURFACE_FORMAT = 4,
<br/>
AV_PIXEL_FORMAT_RGBA = 5
<br/>
} | AVPixel 格式的枚举类。
|
### 函数
| 名称 | 描述 |
| -------- | -------- |
|
[
OH_AVFormat_Create
](
_core.md#oh_avformat_create
)
(
void
)
| 创建一个OH_AVFormat句柄指针,用以读写数据。|
|
[
OH_AVFormat_Destroy
](
_core.md#oh_avformat_destroy
)
(
struct
OH_AVFormat
\*
format) | 销毁指定OH_AVFormat句柄资源。|
|
[
OH_AVFormat_Copy
](
_core.md#oh_avformat_copy
)
(
struct
OH_AVFormat
\*
to, struct OH_AVFormat
\*
from) | 拷贝OH_AVFormat句柄资源.|
|
[
OH_AVFormat_SetIntValue
](
_core.md#oh_avformat_setintvalue
)
(
struct
OH_AVFormat
\*
format, const char
\*
key, int32_t value) | 向OH_AVFormat写入Int数据.|
|
[
OH_AVFormat_SetLongValue
](
_core.md#oh_avformat_setlongvalue
)
(
struct
OH_AVFormat
\*
format, const char
\*
key, int64_t value) | 向OH_AVFormat写入Long数据。|
|
[
OH_AVFormat_SetFloatValue
](
_core.md#oh_avformat_setfloatvalue
)
(
struct
OH_AVFormat
\*
format, const char
\*
key, float value) | 向OH_AVFormat写入Float数据。|
|
[
OH_AVFormat_SetDoubleValue
](
_core.md#oh_avformat_setdoublevalue
)
(
struct
OH_AVFormat
\*
format, const char
\*
key, double value) | 向OH_AVFormat写入Double数据。|
|
[
OH_AVFormat_SetStringValue
](
_core.md#oh_avformat_setstringvalue
)
(
struct
OH_AVFormat
\*
format, const char
\*
key, const char
\*
value) | 向OH_AVFormat写入String数据。|
|
[
OH_AVFormat_SetBuffer
](
_core.md#oh_avformat_setbuffer
)
(
struct
OH_AVFormat
\*
format, const char
\*
key, const uint8_t
\*
addr, size_t size) | 向OH_AVFormat写入一块指定长度的数据。|
|
[
OH_AVFormat_GetIntValue
](
_core.md#oh_avformat_getintvalue
)
(
struct
OH_AVFormat
\*
format, const char
\*
key, int32_t
\*
out) | 从OH_AVFormat读取Int数据。|
|
[
OH_AVFormat_GetLongValue
](
_core.md#oh_avformat_getlongvalue
)
(
struct
OH_AVFormat
\*
format, const char
\*
key, int64_t
\*
out) | 从OH_AVFormat读取Long数据。|
|
[
OH_AVFormat_GetFloatValue
](
_core.md#oh_avformat_getfloatvalue
)
(
struct
OH_AVFormat
\*
format, const char
\*
key, float
\*
out) | 从OH_AVFormat读取Float数据。|
|
[
OH_AVFormat_GetDoubleValue
](
_core.md#oh_avformat_getdoublevalue
)
(
struct
OH_AVFormat
\*
format, const char
\*
key, double
\*
out) | 从OH_AVFormat读取Double数据。|
|
[
OH_AVFormat_GetStringValue
](
_core.md#oh_avformat_getstringvalue
)
(
struct
OH_AVFormat
\*
format, const char
\*
key, const char
\*\*
out) | 从OH_AVFormat读取Double数据。|
|
[
OH_AVFormat_GetBuffer
](
_core.md#oh_avformat_getbuffer
)
(
struct
OH_AVFormat
\*
format, const char
\*
key, uint8_t
\*\*
addr, size_t
\*
size) | 从OH_AVFormat读取一块指定长度的数据。|
|
[
OH_AVFormat_DumpInfo
](
_core.md#oh_avformat_dumpinfo
)
(
struct
OH_AVFormat
\*
format) | 以字符串的形式输出OH_AVFormat所包含的信息。|
|
\*
[
OH_AVFormat_Create
](
_core.md#oh_avformat_create
)
(
void
)
| 创建OH_AVFormat句柄,用于读取数据。 |
|
\*
[
OH_AVFormat_CreateAudioFormat
](
_core.md#oh_avformat_createaudioformat
)
(
const
char
\*
mimeType, int32_t sampleRate, int32_t channelCount) | 创建音频OH_AVFormat句柄指针,用于读写数据。 |
|
\*
[
OH_AVFormat_CreateVideoFormat
](
_core.md#oh_avformat_createvideoformat
)
(
const
char
\*
mimeType, int32_t width, int32_t height) | 创建视频OH_AVFormat句柄指针,用于读写数据。 |
|
[
OH_AVFormat_Destroy
](
_core.md#oh_avformat_destroy
)
(
struct
OH_AVFormat
\*
format) | 销毁OH_AVFormat句柄。 |
|
[
OH_AVFormat_Copy
](
_core.md#oh_avformat_copy
)
(
struct
OH_AVFormat
\*
to, struct OH_AVFormat
\*
from) | 复制OH_AVFormat句柄。 |
|
[
OH_AVFormat_SetIntValue
](
_core.md#oh_avformat_setintvalue
)
(
struct
OH_AVFormat
\*
format, const char
\*
key, int32_t value) | 将int数据写入OH_AVFormat。 |
|
[
OH_AVFormat_SetLongValue
](
_core.md#oh_avformat_setlongvalue
)
(
struct
OH_AVFormat
\*
format, const char
\*
key, int64_t value) | 将long数据写入OH_AVFormat。 |
|
[
OH_AVFormat_SetFloatValue
](
_core.md#oh_avformat_setfloatvalue
)
(
struct
OH_AVFormat
\*
format, const char
\*
key, float value) | 将float数据写入OH_AVFormat。 |
|
[
OH_AVFormat_SetDoubleValue
](
_core.md#oh_avformat_setdoublevalue
)
(
struct
OH_AVFormat
\*
format, const char
\*
key, double value) | 将double数据写入OH_AVFormat。 |
|
[
OH_AVFormat_SetStringValue
](
_core.md#oh_avformat_setstringvalue
)
(
struct
OH_AVFormat
\*
format, const char
\*
key, const char
\*
value) | 将string数据写入OH_AVFormat。 |
|
[
OH_AVFormat_SetBuffer
](
_core.md#oh_avformat_setbuffer
)
(
struct
OH_AVFormat
\*
format, const char
\*
key, const uint8_t
\*
addr, size_t size) | 将指定长度的数据块写入OH_AVFormat。 |
|
[
OH_AVFormat_GetIntValue
](
_core.md#oh_avformat_getintvalue
)
(
struct
OH_AVFormat
\*
format, const char
\*
key, int32_t
\*
out) | 从OH_AVFormat读取int数据。 |
|
[
OH_AVFormat_GetLongValue
](
_core.md#oh_avformat_getlongvalue
)
(
struct
OH_AVFormat
\*
format, const char
\*
key, int64_t
\*
out) | 从OH_AVFormat读取long数据。 |
|
[
OH_AVFormat_GetFloatValue
](
_core.md#oh_avformat_getfloatvalue
)
(
struct
OH_AVFormat
\*
format, const char
\*
key, float
\*
out) | 从OH_AVFormat读取float数据。 |
|
[
OH_AVFormat_GetDoubleValue
](
_core.md#oh_avformat_getdoublevalue
)
(
struct
OH_AVFormat
\*
format, const char
\*
key, double
\*
out) | 从OH_AVFormat读取double数据。 |
|
[
OH_AVFormat_GetStringValue
](
_core.md#oh_avformat_getstringvalue
)
(
struct
OH_AVFormat
\*
format, const char
\*
key, const char
\*\*
out) | 从OH_AVFormat读取string数据。 |
|
[
OH_AVFormat_GetBuffer
](
_core.md#oh_avformat_getbuffer
)
(
struct
OH_AVFormat
\*
format, const char
\*
key, uint8_t
\*\*
addr, size_t
\*
size) | 从OH_AVFormat中读取指定长度的数据块。 |
|
\*
[
OH_AVFormat_DumpInfo
](
_core.md#oh_avformat_dumpinfo
)
(
struct
OH_AVFormat
\*
format) | 输出OH_AVFormat中包含的字符串。 |
zh-cn/application-dev/reference/native-apis/native__avmemory_8h.md
浏览文件 @
dc2cd5e0
...
...
@@ -6,9 +6,10 @@
声明了AVMemory的函数接口。
**起始版本:**
9
**相关模块
:
**
**相关模块
:
**
[
Core
](
_core.md
)
...
...
@@ -18,7 +19,9 @@
### 函数
| 名称 | 描述 |
| 名称 | 描述 |
| -------- | -------- |
|
[
OH_AVMemory_GetAddr
](
_core.md#oh_avmemory_getaddr
)
(
struct
OH_AVMemory
\*
mem) | 获取入参的内存虚拟地址。 |
|
[
OH_AVMemory_GetSize
](
_core.md#oh_avmemory_getsize
)
(
struct
OH_AVMemory
\*
mem) | 获取入参的内存长度。 |
|
\*
[
OH_AVMemory_Create
](
_core.md#oh_avmemory_create
)
(
int32_t
size) | 创建OH_AVMemory实例的指针。 |
|
\*
[
OH_AVMemory_GetAddr
](
_core.md#oh_avmemory_getaddr
)
(
struct
OH_AVMemory
\*
mem) | 获取入参的内存虚拟地址。 |
|
[
OH_AVMemory_GetSize
](
_core.md#oh_avmemory_getsize
)
(
struct
OH_AVMemory
\*
mem) | 获取入参的内存长度。 |
|
[
OH_AVMemory_Destroy
](
_core.md#oh_avmemory_destroy
)
(
struct
OH_AVMemory
\*
mem) | 释放OH_AVMemory实例指针的资源。 |
zh-cn/application-dev/reference/native-apis/native__avsource_8h.md
0 → 100644
浏览文件 @
dc2cd5e0
# native_avsource.h
## 概述
声明用于构造音视频资源对象的Native API。
**起始版本:**
10
**相关模块:**
[
AVSource
](
_a_v_source.md
)
## 汇总
### 函数
| 名称 | 描述 |
| -------- | -------- |
|
\*
[
OH_AVSource_CreateWithURI
](
_a_v_source.md#oh_avsource_createwithuri
)
(
char
\*
uri) | 为统一资源标识符对应的的资源对象创建OH_AVSource实例对象。 |
|
\*
[
OH_AVSource_CreateWithFD
](
_a_v_source.md#oh_avsource_createwithfd
)
(
int32_t
fd, int64_t offset, int64_t size) | 为文件描述符对应的资源对象创建OH_AVSource实例对象。 |
|
[
OH_AVSource_Destroy
](
_a_v_source.md#oh_avsource_destroy
)
(
OH_AVSource
\*
source) | 销毁OH_AVSource实例并清理内部资源。同一实例只能被销毁一次。 |
|
\*
[
OH_AVSource_GetSourceFormat
](
_a_v_source.md#oh_avsource_getsourceformat
)
(
OH_AVSource
\*
source) | 获取媒体资源文件的基础信息。 |
|
\*
[
OH_AVSource_GetTrackFormat
](
_a_v_source.md#oh_avsource_gettrackformat
)
(
OH_AVSource
\*
source, uint32_t trackIndex) | 获取轨道的基础信息。 |
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录