未验证 提交 dc2cd5e0 编写于 作者: O openharmony_ci 提交者: Gitee

!19905 add AVCodec native API reference

Merge pull request !19905 from zengyawen/avcodec
...@@ -13,12 +13,15 @@ ...@@ -13,12 +13,15 @@
- [RDB](_r_d_b.md) - [RDB](_r_d_b.md)
- [MindSpore](_mind_spore.md) - [MindSpore](_mind_spore.md)
- [NeuralNeworkRuntime](_neural_nework_runtime.md) - [NeuralNeworkRuntime](_neural_nework_runtime.md)
- [AVCapability](_a_v_capability.md)
- [AudioDecoder](_audio_decoder.md) - [AudioDecoder](_audio_decoder.md)
- [AudioEncoder](_audio_encoder.md) - [AudioEncoder](_audio_encoder.md)
- [CodecBase](_codec_base.md) - [CodecBase](_codec_base.md)
- [Core](_core.md)
- [VideoDecoder](_video_decoder.md) - [VideoDecoder](_video_decoder.md)
- [VideoEncoder](_video_encoder.md) - [VideoEncoder](_video_encoder.md)
- [Core](_core.md) - [AVDemuxer](_a_v_demuxer.md)
- [AVSource](_a_v_source.md)
- [HuksKeyApi](_huks_key_api.md) - [HuksKeyApi](_huks_key_api.md)
- [HuksParamSetApi](_huks_param_set_api.md) - [HuksParamSetApi](_huks_param_set_api.md)
- [HuksTypeApi](_huks_type_api.md) - [HuksTypeApi](_huks_type_api.md)
...@@ -56,14 +59,18 @@ ...@@ -56,14 +59,18 @@
- [types.h](types_8h.md) - [types.h](types_8h.md)
- [neural_network_runtime_type.h](neural__network__runtime__type_8h.md) - [neural_network_runtime_type.h](neural__network__runtime__type_8h.md)
- [neural_network_runtime.h](neural__network__runtime_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_audiodecoder.h](native__avcodec__audiodecoder_8h.md)
- [native_avcodec_audioencoder.h](native__avcodec__audioencoder_8h.md) - [native_avcodec_audioencoder.h](native__avcodec__audioencoder_8h.md)
- [native_avcodec_base.h](native__avcodec__base_8h.md) - [native_avcodec_base.h](native__avcodec__base_8h.md)
- [native_avcodec_videodecoder.h](native__avcodec__videodecoder_8h.md) - [native_avcodec_videodecoder.h](native__avcodec__videodecoder_8h.md)
- [native_avcodec_videoencoder.h](native__avcodec__videoencoder_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_averrors.h](native__averrors_8h.md)
- [native_avformat.h](native__avformat_8h.md) - [native_avformat.h](native__avformat_8h.md)
- [native_avmemory.h](native__avmemory_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_api.h](native__huks__api_8h.md)
- [native_huks_param.h](native__huks__param_8h.md) - [native_huks_param.h](native__huks__param_8h.md)
- [native_huks_type.h](native__huks__type_8h.md) - [native_huks_type.h](native__huks__type_8h.md)
...@@ -102,6 +109,7 @@ ...@@ -102,6 +109,7 @@
- [OH_NN_UInt32Array](_o_h___n_n___u_int32_array.md) - [OH_NN_UInt32Array](_o_h___n_n___u_int32_array.md)
- [OH_AVCodecAsyncCallback](_o_h___a_v_codec_async_callback.md) - [OH_AVCodecAsyncCallback](_o_h___a_v_codec_async_callback.md)
- [OH_AVCodecBufferAttr](_o_h___a_v_codec_buffer_attr.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_Blob](_o_h___huks___blob.md)
- [OH_Huks_CertChain](_o_h___huks___cert_chain.md) - [OH_Huks_CertChain](_o_h___huks___cert_chain.md)
- [OH_Huks_KeyInfo](_o_h___huks___key_info.md) - [OH_Huks_KeyInfo](_o_h___huks___key_info.md)
......
# 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
# 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
...@@ -3,14 +3,15 @@ ...@@ -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 9
**相关模块:** **相关模块**
[CodecBase](_codec_base.md) [CodecBase](_codec_base.md)
...@@ -20,9 +21,76 @@ AVCodec所有的异步回调函数指针集合。注册一个该结构体实例 ...@@ -20,9 +21,76 @@ AVCodec所有的异步回调函数指针集合。注册一个该结构体实例
### 成员变量 ### 成员变量
| 名称 | 描述 | | 名称 | 描述 |
| -------- | -------- | | -------- | -------- |
| **onError** | 监听AVCodec运行错误,参考[OH_AVCodecOnError](_codec_base.md#oh_avcodeconerror) | | [onError](#onerror) | 监控编解码器操作错误,请参见[OH_AVCodecOnError](_codec_base.md#oh_avcodeconerror) |
| **onStreamChanged** | 监听编解码流信息,参考[OH_AVCodecOnStreamChanged](_codec_base.md#oh_avcodeconstreamchanged) | | [onStreamChanged](#onstreamchanged) | 监控编解码器流变化,请参见[OH_AVCodecOnStreamChanged](_codec_base.md#oh_avcodeconstreamchanged) |
| **onNeedInputData** | 监听编解码需要输入数据,参考[OH_AVCodecOnNeedInputData](_codec_base.md#oh_avcodeconneedinputdata) | | [onNeedInputData](#onneedinputdata) | 监控编解码器需要输入数据,请参见[OH_AVCodecOnNeedInputData](_codec_base.md#oh_avcodeconneedinputdata) |
| **onNeedOutputData** | 监听编解码产生输出数据,参考[OH_AVCodecOnNewOutputData](_codec_base.md#oh_avcodeconnewoutputdata) | | [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
...@@ -3,14 +3,15 @@ ...@@ -3,14 +3,15 @@
## 概述 ## 概述
定义OH_AVCodec的Buffer描述信息。 定义OH_AVCodec的缓冲区描述信息。
@syscap SystemCapability.Multimedia.Media.CodecBase \@syscap SystemCapability.Multimedia.Media.CodecBase
**起始版本:** **起始版本:**
9 9
**相关模块:** **相关模块**
[CodecBase](_codec_base.md) [CodecBase](_codec_base.md)
...@@ -20,9 +21,76 @@ ...@@ -20,9 +21,76 @@
### 成员变量 ### 成员变量
| 名称 | 描述 | | 名称 | 描述 |
| -------- | -------- | | -------- | -------- |
| [pts](_codec_base.md#pts) | 以微秒为单位表示的该Buffer的Presentation时间戳 | | [pts](#pts) | 此缓冲区的显示时间戳(以微秒为单位) |
| [size](_codec_base.md#size) | 以字节为单位表示的该Buffer内所包含数据的大小 | | [size](#size) | 缓冲区中包含的数据的大小(以字节为单位) |
| [offset](_codec_base.md#offset) | 有效数据在该Buffer内的起始偏移量 | | [offset](#offset) | 此缓冲区中有效数据的起始偏移量 |
| [flags](_codec_base.md#flags) | 该Buffer具有的标记,也是多个[OH_AVCodecBufferFlags](_codec_base.md#oh_avcodecbufferflags)的组合 | | [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
# 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
# avcodec_audio_channel_layout.h
## 概述
声明用于音频编解码的枚举。
**起始版本:**
9
**相关模块:**
[AudioDecoder](_audio_decoder.md)
## 汇总
### 枚举
| 名称 | 描述 |
| -------- | -------- |
| [OHOS::Media::AudioChannelSet](_audio_decoder.md#audiochannelset) : uint64_t {<br/>**FRONT_LEFT** = 1ULL &lt;&lt; 0U, **FRONT_RIGHT** = 1ULL &lt;&lt; 1U, **FRONT_CENTER** = 1ULL &lt;&lt; 2U, **LOW_FREQUENCY** = 1ULL &lt;&lt; 3U,<br/>**BACK_LEFT** = 1ULL &lt;&lt; 4U, **BACK_RIGHT** = 1ULL &lt;&lt; 5U, **FRONT_LEFT_OF_CENTER** = 1ULL &lt;&lt; 6U, **FRONT_RIGHT_OF_CENTER** = 1ULL &lt;&lt; 7U,<br/>**BACK_CENTER** = 1ULL &lt;&lt; 8U, **SIDE_LEFT** = 1ULL &lt;&lt; 9U, **SIDE_RIGHT** = 1ULL &lt;&lt; 10U, **TOP_CENTER** = 1ULL &lt;&lt; 11U,<br/>**TOP_FRONT_LEFT** = 1ULL &lt;&lt; 12U, **TOP_FRONT_CENTER** = 1ULL &lt;&lt; 13U, **TOP_FRONT_RIGHT** = 1ULL &lt;&lt; 14U, **TOP_BACK_LEFT** = 1ULL &lt;&lt; 15U,<br/>**TOP_BACK_CENTER** = 1ULL &lt;&lt; 16U, **TOP_BACK_RIGHT** = 1ULL &lt;&lt; 17U, **STEREO_LEFT** = 1ULL &lt;&lt; 29U, **STEREO_RIGHT** = 1ULL &lt;&lt; 30U,<br/>**WIDE_LEFT** = 1ULL &lt;&lt; 31U, **WIDE_RIGHT** = 1ULL &lt;&lt; 32U, **SURROUND_DIRECT_LEFT** = 1ULL &lt;&lt; 33U, **SURROUND_DIRECT_RIGHT** = 1ULL &lt;&lt; 34U,<br/>**LOW_FREQUENCY_2** = 1ULL &lt;&lt; 35U, **TOP_SIDE_LEFT** = 1ULL &lt;&lt; 36U, **TOP_SIDE_RIGHT** = 1ULL &lt;&lt; 37U, **BOTTOM_FRONT_CENTER** = 1ULL &lt;&lt; 38U,<br/>**BOTTOM_FRONT_LEFT** = 1ULL &lt;&lt; 39U, **BOTTOM_FRONT_RIGHT** = 1ULL &lt;&lt; 40U, **AMBISONICS_ACN0** = 1ULL &lt;&lt; 41U, OHOS::Media::AMBISONICS_ACN1 = 1ULL &lt;&lt; 42U,<br/>OHOS::Media::AMBISONICS_ACN2 = 1ULL &lt;&lt; 43U, OHOS::Media::AMBISONICS_ACN3 = 1ULL &lt;&lt; 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 &lt;&lt; 45U, OHOS::Media::AMBISONICS_ACN5 = 1ULL &lt;&lt; 46U,<br/>OHOS::Media::AMBISONICS_ACN6 = 1ULL &lt;&lt; 47U, OHOS::Media::AMBISONICS_ACN7 = 1ULL &lt;&lt; 48U, OHOS::Media::AMBISONICS_ACN8 = 1ULL &lt;&lt; 49U, OHOS::Media::AMBISONICS_ACN9 = 1ULL &lt;&lt; 50U,<br/>OHOS::Media::AMBISONICS_ACN10 = 1ULL &lt;&lt; 51U, OHOS::Media::AMBISONICS_ACN11 = 1ULL &lt;&lt; 52U, OHOS::Media::AMBISONICS_ACN12 = 1ULL &lt;&lt; 53U, OHOS::Media::AMBISONICS_ACN13 = 1ULL &lt;&lt; 54U,<br/>OHOS::Media::AMBISONICS_ACN14 = 1ULL &lt;&lt; 55U, OHOS::Media::AMBISONICS_ACN15 = 1ULL &lt;&lt; 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/>} | 音频声道数类型, 将用户申请的解码器输出格式表示为编解码器的声道类型。 |
# 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) | 检查编解码器是否支持配置文件和级别的特定组合。 |
...@@ -6,9 +6,10 @@ ...@@ -6,9 +6,10 @@
声明用于音频解码的Native API。 声明用于音频解码的Native API。
**起始版本:** **起始版本:**
9 9
**相关模块:** **相关模块**
[AudioDecoder](_audio_decoder.md) [AudioDecoder](_audio_decoder.md)
...@@ -18,19 +19,20 @@ ...@@ -18,19 +19,20 @@
### 函数 ### 函数
| 名称 | 描述 | | 名称 | 描述 |
| -------- | -------- | | -------- | -------- |
| [OH_AudioDecoder_CreateByMime](_audio_decoder.md#oh_audiodecoder_createbymime) (const char \*mime) | 通过mime类型创建一个音频解码器实例,大多数情况下推荐使用该接口。 | | \*[OHOS::Media::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) | 通过音频解码器名称创建一个音频解码器实例,使用这个接口的前提是必须清楚解码器准确的名称。 | | \*[OHOS::Media::OH_AudioDecoder_CreateByName](_audio_decoder.md#oh_audiodecoder_createbyname) (const char \*name) | 通过音频解码器名称创建音频解码器实例,使用此接口的前提是知道解码器的确切名称。 |
| [OH_AudioDecoder_Destroy](_audio_decoder.md#oh_audiodecoder_destroy) (OH_AVCodec \*codec) | 清空解码器内部资源,并销毁解码器实例 | | [OHOS::Media::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被调用前。 | | [OHOS::Media::OH_AudioDecoder_SetCallback](_audio_decoder.md#oh_audiodecoder_setcallback) (OH_AVCodec \*codec, OH_AVCodecAsyncCallback callback, void \*userData) | 设置异步回调函数,使您的应用程序可以响应音频解码器生成的事件。 |
| [OH_AudioDecoder_Configure](_audio_decoder.md#oh_audiodecoder_configure) (OH_AVCodec \*codec, OH_AVFormat \*format) | 配置音频解码器,典型地,需要配置被解码音频轨道的描述信息,这些信息能够从容器中提取出来, 该接口被调用必须是在Prepare被调用前。 | | [OHOS::Media::OH_AudioDecoder_Configure](_audio_decoder.md#oh_audiodecoder_configure) (OH_AVCodec \*codec, OH_AVFormat \*format) | 要配置音频解码器,通常需要配置从容器中提取的音频描述信息。 |
| [OH_AudioDecoder_Prepare](_audio_decoder.md#oh_audiodecoder_prepare) (OH_AVCodec \*codec) | 准备解码器内部资源,调用该接口前必须先调用Configure接口。 | | [OHOS::Media::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)事件。 | | [OHOS::Media::OH_AudioDecoder_Start](_audio_decoder.md#oh_audiodecoder_start) (OH_AVCodec \*codec) | Prepare成功后调用此接口启动解码器。 |
| [OH_AudioDecoder_Stop](_audio_decoder.md#oh_audiodecoder_stop) (OH_AVCodec \*codec) | 停止解码器。在停止后可通过Start重新进入Started状态,但需要注意的是,若先前给解码器输入过 Codec-Specific-Data,则需要重新输入。 | | [OHOS::Media::OH_AudioDecoder_Stop](_audio_decoder.md#oh_audiodecoder_stop) (OH_AVCodec \*codec) | 停止解码器。 |
| [OH_AudioDecoder_Flush](_audio_decoder.md#oh_audiodecoder_flush) (OH_AVCodec \*codec) | 清空解码器内部缓存的输入输出数据。在该接口被调用后,所有先前通过异步回调报告的Buffer的索引都将 失效,确保不要再访问这些索引对应的Buffers。 | | [OHOS::Media::OH_AudioDecoder_Flush](_audio_decoder.md#oh_audiodecoder_flush) (OH_AVCodec \*codec) | 清除解码器中缓存的输入和输出数据。 |
| [OH_AudioDecoder_Reset](_audio_decoder.md#oh_audiodecoder_reset) (OH_AVCodec \*codec) | 重置解码器。如需继续解码工作,需要重新调用Configure接口以配置该解码器实例。 | | [OHOS::Media::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实例需调用者手动释放。 | | \*[OHOS::Media::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) | 向解码器设置动态参数,注意:该接口仅能在解码器被启动后调用,同时错误的参数设置,可能会导致解码失败。 | | [OHOS::Media::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,用以初始化解码器的解码过程。 | | [OHOS::Media::OH_AudioDecoder_PushInputData](_audio_decoder.md#oh_audiodecoder_pushinputdata) (OH_AVCodec \*codec, uint32_t index, OH_AVCodecBufferAttr attr) | 将填充有数据的输入缓冲区提交给音频解码器。 |
| [OH_AudioDecoder_FreeOutputData](_audio_decoder.md#oh_audiodecoder_freeoutputdata) (OH_AVCodec \*codec, uint32_t index) | 将处理结束的输出Buffer交还给解码器。 | | [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) | 检查当前解码器实例是否有效,可用于后台故障恢复或应用程序从后台恢复时检测解码器有效状态。 |
...@@ -6,9 +6,10 @@ ...@@ -6,9 +6,10 @@
声明用于音频编码的Native API。 声明用于音频编码的Native API。
**起始版本:** **起始版本:**
9 9
**相关模块:** **相关模块**
[AudioEncoder](_audio_encoder.md) [AudioEncoder](_audio_encoder.md)
...@@ -18,19 +19,20 @@ ...@@ -18,19 +19,20 @@
### 函数 ### 函数
| 名称 | 描述 | | 名称 | 描述 |
| -------- | -------- | | -------- | -------- |
| [OH_AudioEncoder_CreateByMime](_audio_encoder.md#oh_audioencoder_createbymime) (const char \*mime) | 通过mime类型创建一个音频编码器实例,大多数情况下推荐使用该接口。 | | \*[OHOS::Media::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) | 通过音频编码器名称创建一个音频编码器实例,使用这个接口的前提是必须清楚编码器准确的名称。 | | \*[OHOS::Media::OH_AudioEncoder_CreateByName](_audio_encoder.md#oh_audioencoder_createbyname) (const char \*name) | 通过音频编码器名称创建音频编码器实例,使用此接口的前提是知道编码器的确切名称。 |
| [OH_AudioEncoder_Destroy](_audio_encoder.md#oh_audioencoder_destroy) (OH_AVCodec \*codec) | 清空编码器内部资源,并销毁编码器实例。 | | [OHOS::Media::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被调用前。 | | [OHOS::Media::OH_AudioEncoder_SetCallback](_audio_encoder.md#oh_audioencoder_setcallback) (OH_AVCodec \*codec, OH_AVCodecAsyncCallback callback, void \*userData) | 设置异步回调函数,使您的应用程序可以响应音频编码器生成的事件。 |
| [OH_AudioEncoder_Configure](_audio_encoder.md#oh_audioencoder_configure) (OH_AVCodec \*codec, OH_AVFormat \*format) | 配置音频编码器,典型地,需要配置被编码音频轨道的描述信息,该接口被调用必须是在Prepare被调用前。 | | [OHOS::Media::OH_AudioEncoder_Configure](_audio_encoder.md#oh_audioencoder_configure) (OH_AVCodec \*codec, OH_AVFormat \*format) | 要配置音频编码器,通常需要配置编码后的音轨的描述信息。 |
| [OH_AudioEncoder_Prepare](_audio_encoder.md#oh_audioencoder_prepare) (OH_AVCodec \*codec) | 准备编码器内部资源,调用该接口前必须先调用Configure接口。 | | [OHOS::Media::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)事件。 | | [OHOS::Media::OH_AudioEncoder_Start](_audio_encoder.md#oh_audioencoder_start) (OH_AVCodec \*codec) | Prepare成功后调用此接口启动编码器。 |
| [OH_AudioEncoder_Stop](_audio_encoder.md#oh_audioencoder_stop) (OH_AVCodec \*codec) | 停止编码器。在停止后可通过Start重新进入Started状态。 | | [OHOS::Media::OH_AudioEncoder_Stop](_audio_encoder.md#oh_audioencoder_stop) (OH_AVCodec \*codec) | 停止编码器。 |
| [OH_AudioEncoder_Flush](_audio_encoder.md#oh_audioencoder_flush) (OH_AVCodec \*codec) | 清空编码器内部缓存的输入输出数据。在该接口被调用后,所有先前通过异步回调报告的Buffer的索引都将 失效,确保不要再访问这些索引对应的Buffers。 | | [OHOS::Media::OH_AudioEncoder_Flush](_audio_encoder.md#oh_audioencoder_flush) (OH_AVCodec \*codec) | 清除编码器中缓存的输入和输出数据。 |
| [OH_AudioEncoder_Reset](_audio_encoder.md#oh_audioencoder_reset) (OH_AVCodec \*codec) | 重置编码器。如需继续编码工作,需要重新调用Configure接口以配置该编码器实例。 | | [OHOS::Media::OH_AudioEncoder_Reset](_audio_encoder.md#oh_audioencoder_reset) (OH_AVCodec \*codec) | 重置编码器。 |
| [OH_AudioEncoder_GetOutputDescription](_audio_encoder.md#oh_audioencoder_getoutputdescription) (OH_AVCodec \*codec) | 获取该编码器输出数据的描述信息,需要注意的是,返回值所指向的OH_AVFormat实例需调用者手动释放。 | | \*[OHOS::Media::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) | 向编码器设置动态参数,注意:该接口仅能在编码器被启动后调用,同时错误的参数设置,可能会导致编码失败。 | | [OHOS::Media::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都不可以再次被访问。 | | [OHOS::Media::OH_AudioEncoder_PushInputData](_audio_encoder.md#oh_audioencoder_pushinputdata) (OH_AVCodec \*codec, uint32_t index, OH_AVCodecBufferAttr attr) | 将填充有数据的输入缓冲区提交给音频编码器。 |
| [OH_AudioEncoder_FreeOutputData](_audio_encoder.md#oh_audioencoder_freeoutputdata) (OH_AVCodec \*codec, uint32_t index) | 将处理结束的输出Buffer交还给编码器。 | | [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) | 检查当前编码器实例是否有效,可用于后台故障恢复或应用程序从后台恢复时检测编码器有效状态。 |
...@@ -6,9 +6,10 @@ ...@@ -6,9 +6,10 @@
声明用于视频解码的Native API。 声明用于视频解码的Native API。
**起始版本:** **起始版本:**
9 9
**相关模块:** **相关模块**
[VideoDecoder](_video_decoder.md) [VideoDecoder](_video_decoder.md)
...@@ -20,19 +21,20 @@ ...@@ -20,19 +21,20 @@
| 名称 | 描述 | | 名称 | 描述 |
| -------- | -------- | | -------- | -------- |
| [OH_VideoDecoder_CreateByMime](_video_decoder.md#oh_videodecoder_createbymime) (const char \*mime) | 通过mime类型创建一个视频解码器实例,大多数情况下推荐使用该接口。| | \*[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_CreateByName](_video_decoder.md#oh_videodecoder_createbyname) (const char \*name) | 通过视频解码器名称创建视频解码器实例。 使用此接口的前提是知道解码器的确切名称。 |
| [OH_VideoDecoder_Destroy](_video_decoder.md#oh_videodecoder_destroy) (OH_AVCodec \*codec) | 清空解码器内部资源,并销毁解码器实例。| | [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_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) | 指定输出Surface,以提供视频解码输出,该接口被调用必须是在Prepare被调用前。| | [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) | 配置视频解码器,典型地,需要配置被解码视频轨道的描述信息,这些信息能够从容器中提取出来, 该接口被调用必须是在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_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_Start](_video_decoder.md#oh_videodecoder_start) (OH_AVCodec \*codec) | 启动解码器,准备成功后必须调用此接口。 |
| [OH_VideoDecoder_Stop](_video_decoder.md#oh_videodecoder_stop) (OH_AVCodec \*codec) | 停止解码器。在停止后可通过Start重新进入Started状态,但需要注意的是,若先前给解码器输入过 Codec-Specific-Data,则需要重新输入。| | [OH_VideoDecoder_Stop](_video_decoder.md#oh_videodecoder_stop) (OH_AVCodec \*codec) | 停止解码器。 |
| [OH_VideoDecoder_Flush](_video_decoder.md#oh_videodecoder_flush) (OH_AVCodec \*codec) | 清空解码器内部缓存的输入输出数据。在该接口被调用后,所有先前通过异步回调报告的Buffer的索引都将 失效,确保不要再访问这些索引对应的Buffers。| | [OH_VideoDecoder_Flush](_video_decoder.md#oh_videodecoder_flush) (OH_AVCodec \*codec) | 清除解码器中缓存的输入和输出数据。 |
| [OH_VideoDecoder_Reset](_video_decoder.md#oh_videodecoder_reset) (OH_AVCodec \*codec) | 重置解码器。如需继续解码工作,需要重新调用Configure接口以配置该解码器实例。| | [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_AVFormat实例的生命周期 将会再下一次调用该接口时或者该OH_AVCodec实例被销毁时失效。| | \*[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_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_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内包含的解码后的数据在输出Surface上渲染。 如果先前未配置输出Surface,调用该接口仅仅将指定索引对应的输出Buffer交还给解码器。| | [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) | 将处理结束的输出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) | 检查当前编解码实例是否有效。 |
...@@ -6,9 +6,10 @@ ...@@ -6,9 +6,10 @@
声明用于视频编码的Native API。 声明用于视频编码的Native API。
**起始版本:** **起始版本:**
9 9
**相关模块:** **相关模块**
[VideoEncoder](_video_encoder.md) [VideoEncoder](_video_encoder.md)
...@@ -20,32 +21,35 @@ ...@@ -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_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_CreateByName](_video_encoder.md#oh_videoencoder_createbyname) (const char \*name) | 通过视频编码器名称创建一个视频编码器实例。使用此接口的前提是知道编码器的确切名称。 |
| [OH_VideoEncoder_Destroy](_video_encoder.md#oh_videoencoder_destroy) (OH_AVCodec \*codec) | 清空编码器内部资源,并销毁编码器实例。| | [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_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) | 配置视频编码器,典型地,需要配置被编码视频轨道的描述信息,该接口被调用必须是在Prepare被调用前。| | [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_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_Start](_video_encoder.md#oh_videoencoder_start) (OH_AVCodec \*codec) | 启动编码器, 这个接口必须要在Prepare接口执行成功后调用。 |
| [OH_VideoEncoder_Stop](_video_encoder.md#oh_videoencoder_stop) (OH_AVCodec \*codec) | 停止编码器。在停止后可通过Start重新进入Started状态。| | [OH_VideoEncoder_Stop](_video_encoder.md#oh_videoencoder_stop) (OH_AVCodec \*codec) | 停止编码器。 |
| [OH_VideoEncoder_Flush](_video_encoder.md#oh_videoencoder_flush) (OH_AVCodec \*codec) | 清空编码器内部缓存的输入输出数据。在该接口被调用后,所有先前通过异步回调报告的Buffer的索引都将 失效,确保不要再访问这些索引对应的Buffers。| | [OH_VideoEncoder_Flush](_video_encoder.md#oh_videoencoder_flush) (OH_AVCodec \*codec) | 清除编码器中缓冲的输入和输出数据。 |
| [OH_VideoEncoder_Reset](_video_encoder.md#oh_videoencoder_reset) (OH_AVCodec \*codec) | 重置编码器。如需继续编码工作,需要重新调用Configure接口以配置该编码器实例。| | [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_AVCodec实例被销毁时失效。| | \*[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_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_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_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) | 通知视频编码器输入码流已结束。surface模式推荐使用该接口通知编码器码流结束。| | [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) | 检查当前编解码器实例是否有效。 |
# 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) | 根据设定的跳转模式,将所有选中的轨道到指定时间附近。 |
...@@ -6,9 +6,10 @@ ...@@ -6,9 +6,10 @@
声明了媒体播放框架的错误码。 声明了媒体播放框架的错误码。
**起始版本:** **起始版本:**
9 9
**相关模块:** **相关模块**
[Core](_core.md) [Core](_core.md)
...@@ -18,13 +19,13 @@ ...@@ -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/>} | 音视频错误码。 |
...@@ -6,9 +6,10 @@ ...@@ -6,9 +6,10 @@
声明了格式相关的函数和枚举。 声明了格式相关的函数和枚举。
**起始版本:** **起始版本:**
9 9
**相关模块:** **相关模块**
[Core](_core.md) [Core](_core.md)
...@@ -20,33 +21,35 @@ ...@@ -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_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_CreateAudioFormat](_core.md#oh_avformat_createaudioformat) (const char \*mimeType, int32_t sampleRate, int32_t channelCount) | 创建音频OH_AVFormat句柄指针,用于读写数据。 |
| [OH_AVFormat_Copy](_core.md#oh_avformat_copy) (struct OH_AVFormat \*to, struct OH_AVFormat \*from) | 拷贝OH_AVFormat句柄资源.| | \*[OH_AVFormat_CreateVideoFormat](_core.md#oh_avformat_createvideoformat) (const char \*mimeType, int32_t width, int32_t height) | 创建视频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_Destroy](_core.md#oh_avformat_destroy) (struct OH_AVFormat \*format) | 销毁OH_AVFormat句柄。 |
| [OH_AVFormat_SetLongValue](_core.md#oh_avformat_setlongvalue) (struct OH_AVFormat \*format, const char \*key, int64_t value) | 向OH_AVFormat写入Long数据。| | [OH_AVFormat_Copy](_core.md#oh_avformat_copy) (struct OH_AVFormat \*to, struct OH_AVFormat \*from) | 复制OH_AVFormat句柄。 |
| [OH_AVFormat_SetFloatValue](_core.md#oh_avformat_setfloatvalue) (struct OH_AVFormat \*format, const char \*key, float value) | 向OH_AVFormat写入Float数据。| | [OH_AVFormat_SetIntValue](_core.md#oh_avformat_setintvalue) (struct OH_AVFormat \*format, const char \*key, int32_t value) | 将int数据写入OH_AVFormat。 |
| [OH_AVFormat_SetDoubleValue](_core.md#oh_avformat_setdoublevalue) (struct OH_AVFormat \*format, const char \*key, double value) | 向OH_AVFormat写入Double数据。| | [OH_AVFormat_SetLongValue](_core.md#oh_avformat_setlongvalue) (struct OH_AVFormat \*format, const char \*key, int64_t value) | 将long数据写入OH_AVFormat。 |
| [OH_AVFormat_SetStringValue](_core.md#oh_avformat_setstringvalue) (struct OH_AVFormat \*format, const char \*key, const char \*value) | 向OH_AVFormat写入String数据。| | [OH_AVFormat_SetFloatValue](_core.md#oh_avformat_setfloatvalue) (struct OH_AVFormat \*format, const char \*key, float value) | 将float数据写入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_SetDoubleValue](_core.md#oh_avformat_setdoublevalue) (struct OH_AVFormat \*format, const char \*key, double value) | 将double数据写入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_SetStringValue](_core.md#oh_avformat_setstringvalue) (struct OH_AVFormat \*format, const char \*key, const char \*value) | 将string数据写入OH_AVFormat。 |
| [OH_AVFormat_GetLongValue](_core.md#oh_avformat_getlongvalue) (struct OH_AVFormat \*format, const char \*key, int64_t \*out) | 从OH_AVFormat读取Long数据。| | [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_GetFloatValue](_core.md#oh_avformat_getfloatvalue) (struct OH_AVFormat \*format, const char \*key, float \*out) | 从OH_AVFormat读取Float数据。| | [OH_AVFormat_GetIntValue](_core.md#oh_avformat_getintvalue) (struct OH_AVFormat \*format, const char \*key, int32_t \*out) | 从OH_AVFormat读取int数据。 |
| [OH_AVFormat_GetDoubleValue](_core.md#oh_avformat_getdoublevalue) (struct OH_AVFormat \*format, const char \*key, double \*out) | 从OH_AVFormat读取Double数据。| | [OH_AVFormat_GetLongValue](_core.md#oh_avformat_getlongvalue) (struct OH_AVFormat \*format, const char \*key, int64_t \*out) | 从OH_AVFormat读取long数据。 |
| [OH_AVFormat_GetStringValue](_core.md#oh_avformat_getstringvalue) (struct OH_AVFormat \*format, const char \*key, const char \*\*out) | 从OH_AVFormat读取Double数据。| | [OH_AVFormat_GetFloatValue](_core.md#oh_avformat_getfloatvalue) (struct OH_AVFormat \*format, const char \*key, float \*out) | 从OH_AVFormat读取float数据。 |
| [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_GetDoubleValue](_core.md#oh_avformat_getdoublevalue) (struct OH_AVFormat \*format, const char \*key, double \*out) | 从OH_AVFormat读取double数据。 |
| [OH_AVFormat_DumpInfo](_core.md#oh_avformat_dumpinfo) (struct OH_AVFormat \*format) | 以字符串的形式输出OH_AVFormat所包含的信息。| | [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中包含的字符串。 |
...@@ -6,9 +6,10 @@ ...@@ -6,9 +6,10 @@
声明了AVMemory的函数接口。 声明了AVMemory的函数接口。
**起始版本:** **起始版本:**
9 9
**相关模块:** **相关模块**
[Core](_core.md) [Core](_core.md)
...@@ -18,7 +19,9 @@ ...@@ -18,7 +19,9 @@
### 函数 ### 函数
| 名称 | 描述 | | 名称 | 描述 |
| -------- | -------- | | -------- | -------- |
| [OH_AVMemory_GetAddr](_core.md#oh_avmemory_getaddr) (struct OH_AVMemory \*mem) | 获取入参的内存虚拟地址。 | | \*[OH_AVMemory_Create](_core.md#oh_avmemory_create) (int32_t size) | 创建OH_AVMemory实例的指针。 |
| [OH_AVMemory_GetSize](_core.md#oh_avmemory_getsize) (struct OH_AVMemory \*mem) | 获取入参的内存长度。 | | \*[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实例指针的资源。 |
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册