未验证 提交 d5768de8 编写于 作者: Z zengyawen 提交者: Gitee

add avmuxer

Signed-off-by: Nzengyawen <zengyawen1@huawei.com>
上级 78887436
......@@ -14,6 +14,7 @@
- [MindSpore](_mind_spore.md)
- [NeuralNeworkRuntime](_neural_nework_runtime.md)
- [AVCapability](_a_v_capability.md)
- [AVMuxer](_a_v_muxer.md)
- [AudioDecoder](_audio_decoder.md)
- [AudioEncoder](_audio_encoder.md)
- [CodecBase](_codec_base.md)
......@@ -70,6 +71,7 @@
- [native_averrors.h](native__averrors_8h.md)
- [native_avformat.h](native__avformat_8h.md)
- [native_avmemory.h](native__avmemory_8h.md)
- [native_avmuxer.h](native__avmuxer_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)
......
# AVMuxer
## 概述
AVMuxer模块提供用于音视频封装功能的函数。
\@syscap SystemCapability.Multimedia.Media.Muxer
**起始版本:**
10
## 汇总
### 文件
| 名称 | 描述 |
| -------- | -------- |
| [native_avmuxer.h](native__avmuxer_8h.md) | 声明用于音视频封装的Native API。<br/>引用文件:&lt;multimedia/native_avmuxer.h&gt; |
### 函数
| 名称 | 描述 |
| -------- | -------- |
| \*[OH_AVMuxer_Create](#oh_avmuxer_create) (int32_t fd, OH_AVOutputFormat format) | 通过文件描述符fd和封装格式创建OH_AVMuxer实例。 |
| [OH_AVMuxer_SetRotation](#oh_avmuxer_setrotation) (OH_AVMuxer \*muxer, int32_t rotation) | 设置视频的旋转角度(顺时针)。 |
| [OH_AVMuxer_AddTrack](#oh_avmuxer_addtrack) (OH_AVMuxer \*muxer, int32_t \*trackIndex, OH_AVFormat \*trackFormat) | 向封装器添加媒体轨。 |
| [OH_AVMuxer_Start](#oh_avmuxer_start) (OH_AVMuxer \*muxer) | 开始封装。 |
| [OH_AVMuxer_WriteSample](#oh_avmuxer_writesample) (OH_AVMuxer \*muxer, uint32_t trackIndex, OH_AVMemory \*sample, OH_AVCodecBufferAttr info) | 将数据写入封装器。 |
| [OH_AVMuxer_Stop](#oh_avmuxer_stop) (OH_AVMuxer \*muxer) | 停止封装。 |
| [OH_AVMuxer_Destroy](#oh_avmuxer_destroy) (OH_AVMuxer \*muxer) | 清理内部资源,销毁OH_AVMuxer实例。 |
## 函数说明
### OH_AVMuxer_AddTrack()
```
OH_AVErrCode OH_AVMuxer_AddTrack (OH_AVMuxer * muxer, int32_t * trackIndex, OH_AVFormat * trackFormat )
```
**描述:**
向封装器添加媒体轨。
该接口必须在OH_AVMuxer_Start前调用。
\@syscap SystemCapability.Multimedia.Media.Muxer
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| muxer | 指向OH_AVMuxer实例的指针。 |
| trackIndex | 用于获取该轨的索引,该值在OH_AVMuxer_WriteSample接口中使用。 如果媒体轨添加成功,该值大于或等于0,否则小于0。 |
| trackFormat | 指向OH_AVFormat实例的指针。 |
**返回:**
执行成功返回AV_ERR_OK,否则返回具体错误码,参考[OH_AVErrCode](_core.md#oh_averrcode-1)
**起始版本:**
10
### OH_AVMuxer_Create()
```
OH_AVMuxer* OH_AVMuxer_Create (int32_t fd, OH_AVOutputFormat format )
```
**描述:**
通过文件描述符fd和封装格式创建OH_AVMuxer实例。
\@syscap SystemCapability.Multimedia.Media.Muxer
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| fd | 用读写方式打开(O_RDWR),由调用者关闭该fd。 |
| format | 封装输出的文件格式,参考[OH_AVOutputFormat](_codec_base.md#oh_avoutputformat)。 |
**返回:**
返回一个指向OH_AVMuxer实例的指针, 需要调用OH_AVMuxer_Destroy销毁。
**起始版本:**
10
### OH_AVMuxer_Destroy()
```
OH_AVErrCode OH_AVMuxer_Destroy (OH_AVMuxer * muxer)
```
**描述:**
清理内部资源,销毁OH_AVMuxer实例。
\@syscap SystemCapability.Multimedia.Media.Muxer
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| muxer | 指向OH_AVMuxer实例的指针。 |
**返回:**
执行成功返回AV_ERR_OK,需调用者置空muxer;否则返回具体错误码,参考[OH_AVErrCode](_core.md#oh_averrcode-1)
**起始版本:**
10
### OH_AVMuxer_SetRotation()
```
OH_AVErrCode OH_AVMuxer_SetRotation (OH_AVMuxer * muxer, int32_t rotation )
```
**描述:**
设置视频的旋转角度(顺时针)。
这个接口必须在OH_AVMuxer_Start前调用。
\@syscap SystemCapability.Multimedia.Media.Muxer
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| muxer | 指向OH_AVMuxer实例的指针。 |
| rotation | 角度,必须为0、90、180 或 270。 |
**返回:**
执行成功返回AV_ERR_OK,否则返回具体错误码,参考[OH_AVErrCode](_core.md#oh_averrcode-1)
**起始版本:**
10
### OH_AVMuxer_Start()
```
OH_AVErrCode OH_AVMuxer_Start (OH_AVMuxer * muxer)
```
**描述:**
开始封装。
该接口必须在OH_AVMuxer_AddTrack后,OH_AVMuxer_WriteSample前调用。
\@syscap SystemCapability.Multimedia.Media.Muxer
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| muxer | 指向OH_AVMuxer实例的指针。 |
**返回:**
执行成功返回AV_ERR_OK,否则返回具体错误码,参考[OH_AVErrCode](_core.md#oh_averrcode-1)
**起始版本:**
10
### OH_AVMuxer_Stop()
```
OH_AVErrCode OH_AVMuxer_Stop (OH_AVMuxer * muxer)
```
**描述:**
停止封装。
封装器一旦停止,不能重新开始。
\@syscap SystemCapability.Multimedia.Media.Muxer
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| muxer | 指向OH_AVMuxer实例的指针。 |
**返回:**
执行成功返回AV_ERR_OK,否则返回具体错误码,参考[OH_AVErrCode](_core.md#oh_averrcode-1)
**起始版本:**
10
### OH_AVMuxer_WriteSample()
```
OH_AVErrCode OH_AVMuxer_WriteSample (OH_AVMuxer * muxer, uint32_t trackIndex, OH_AVMemory * sample, OH_AVCodecBufferAttr info )
```
**描述:**
将数据写入封装器。
该接口必须在OH_AVMuxer_Start后,OH_AVMuxer_Stop前调用。 调用者需要保证数据写入正确的轨道,并按时间顺序排列。
\@syscap SystemCapability.Multimedia.Media.Muxer
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| muxer | 指向OH_AVMuxer实例的指针。 |
| trackIndex | 数据对应的媒体轨的索引。 |
| sample | 写入的数据,编码或解封装得到的数据。 |
| info | 写入数据的信息,参考[OH_AVCodecBufferAttr](_o_h___a_v_codec_buffer_attr.md)。 |
**返回:**
执行成功返回AV_ERR_OK,否则返回具体错误码,参考[OH_AVErrCode](_core.md#oh_averrcode-1)
**起始版本:**
10
# native_avmuxer.h
## 概述
声明用于音视频封装的Native API。
**起始版本:**
10
**相关模块:**
[AVMuxer](_a_v_muxer.md)
## 汇总
### 函数
| 名称 | 描述 |
| -------- | -------- |
| \*[OH_AVMuxer_Create](_a_v_muxer.md#oh_avmuxer_create) (int32_t fd, OH_AVOutputFormat format) | 通过文件描述符fd和封装格式创建OH_AVMuxer实例。 |
| [OH_AVMuxer_SetRotation](_a_v_muxer.md#oh_avmuxer_setrotation) (OH_AVMuxer \*muxer, int32_t rotation) | 设置视频的旋转角度(顺时针)。 |
| [OH_AVMuxer_AddTrack](_a_v_muxer.md#oh_avmuxer_addtrack) (OH_AVMuxer \*muxer, int32_t \*trackIndex, OH_AVFormat \*trackFormat) | 向封装器添加媒体轨。 |
| [OH_AVMuxer_Start](_a_v_muxer.md#oh_avmuxer_start) (OH_AVMuxer \*muxer) | 开始封装。 |
| [OH_AVMuxer_WriteSample](_a_v_muxer.md#oh_avmuxer_writesample) (OH_AVMuxer \*muxer, uint32_t trackIndex, OH_AVMemory \*sample, OH_AVCodecBufferAttr info) | 将数据写入封装器。 |
| [OH_AVMuxer_Stop](_a_v_muxer.md#oh_avmuxer_stop) (OH_AVMuxer \*muxer) | 停止封装。 |
| [OH_AVMuxer_Destroy](_a_v_muxer.md#oh_avmuxer_destroy) (OH_AVMuxer \*muxer) | 清理内部资源,销毁OH_AVMuxer实例。 |
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册