AVMuxer

Overview

The AVMuxer module provides functions for audio and video encapsulation.

@syscap SystemCapability.Multimedia.Media.Muxer

Since

10

Summary

Files

Name Description
native_avmuxer.h Declares native APIs used for audio and video encapsulation.
File to include: <multimedia/player_framework/native_avmuxer.h>
Library: libnative_media_avmuxer.so

Functions

Name Description
*OH_AVMuxer_Create (int32_t fd, OH_AVOutputFormat format) Creates an OH_AVMuxer instance by using the file descriptor and encapsulation format.
OH_AVMuxer_SetRotation (OH_AVMuxer *muxer, int32_t rotation) Sets the rotation angle (clockwise) of an output video.
OH_AVMuxer_AddTrack (OH_AVMuxer *muxer, int32_t *trackIndex, OH_AVFormat *trackFormat) Adds a media track to the muxer.
OH_AVMuxer_Start (OH_AVMuxer *muxer) Starts encapsulation.
OH_AVMuxer_WriteSample (OH_AVMuxer *muxer, uint32_t trackIndex, OH_AVMemory *sample, OH_AVCodecBufferAttr info) Writes data to the muxer.
OH_AVMuxer_Stop (OH_AVMuxer *muxer) Stops encapsulation.
OH_AVMuxer_Destroy (OH_AVMuxer *muxer) Clears internal resources and destroys an OH_AVMuxer instance.

Function Description

OH_AVMuxer_AddTrack()

OH_AVErrCode OH_AVMuxer_AddTrack (OH_AVMuxer *muxer, int32_t *trackIndex, OH_AVFormat *trackFormat)

Description

Adds a media track to the muxer.

This function must be called before OH_AVMuxer_Start.

@syscap SystemCapability.Multimedia.Media.Muxer

Parameters

Name Description
muxer Pointer to an OH_AVMuxer instance.
trackIndex Pointer to the index of the media track. The index will be used in the OH_AVMuxer_WriteSample function. If the media track is added, the index value is greater than or equal to 0; otherwise, the value is less than 0.
trackFormat Pointer to an OH_AVFormat instance.

Returns

Returns AV_ERR_OK if the operation is successful; returns an error code defined in OH_AVErrCode otherwise.

Since

10

OH_AVMuxer_Create()

OH_AVMuxer* OH_AVMuxer_Create (int32_t fd, OH_AVOutputFormat format)

Description

Creates an OH_AVMuxer instance by using the file descriptor and encapsulation format.

@syscap SystemCapability.Multimedia.Media.Muxer

Parameters

Name Description
fd File descriptor (FD). You must open the file in read/write mode (O_RDWR) and close the file after using it.
format Format of the encapsulated output file. For details, see OH_AVOutputFormat.

Returns

Returns the pointer to the OH_AVMuxer instance created. You must call OH_AVMuxer_Destroy to destroy the instance when it is no longer needed.

Since

10

OH_AVMuxer_Destroy()

OH_AVErrCode OH_AVMuxer_Destroy (OH_AVMuxer *muxer)

Description

Clears internal resources and destroys an OH_AVMuxer instance.

@syscap SystemCapability.Multimedia.Media.Muxer

Parameters

Name Description
muxer Pointer to an OH_AVMuxer instance.

Returns

Returns AV_ERR_OK if the operation is successful; returns an error code defined in OH_AVErrCode otherwise. You must set the muxer to null.

Since

10

OH_AVMuxer_SetRotation()

OH_AVErrCode OH_AVMuxer_SetRotation (OH_AVMuxer *muxer, int32_t rotation)

Description

Sets the rotation angle (clockwise) of an output video.

This function must be called before OH_AVMuxer_Start.

@syscap SystemCapability.Multimedia.Media.Muxer

Parameters

Name Description
muxer Pointer to an OH_AVMuxer instance.
rotation Angle to set. The value must be 0, 90, 180, or 270.

Returns

Returns AV_ERR_OK if the operation is successful; returns an error code defined in OH_AVErrCode otherwise.

Since

10

OH_AVMuxer_Start()

OH_AVErrCode OH_AVMuxer_Start (OH_AVMuxer *muxer)

Description

Starts encapsulation.

This function must be called after OH_AVMuxer_AddTrack and before OH_AVMuxer_WriteSample.

@syscap SystemCapability.Multimedia.Media.Muxer

Parameters

Name Description
muxer Pointer to an OH_AVMuxer instance.

Returns

Returns AV_ERR_OK if the operation is successful; returns an error code defined in OH_AVErrCode otherwise.

Since

10

OH_AVMuxer_Stop()

OH_AVErrCode OH_AVMuxer_Stop (OH_AVMuxer *muxer)

Description

Stops encapsulation.

Once encapsulation is stopped, it cannot be restarted.

@syscap SystemCapability.Multimedia.Media.Muxer

Parameters

Name Description
muxer Pointer to an OH_AVMuxer instance.

Returns

Returns AV_ERR_OK if the operation is successful; returns an error code defined in OH_AVErrCode otherwise.

Since

10

OH_AVMuxer_WriteSample()

OH_AVErrCode OH_AVMuxer_WriteSample (OH_AVMuxer *muxer, uint32_t trackIndex, OH_AVMemory *sample, OH_AVCodecBufferAttr info)

Description

Writes data to the muxer.

This function must be called after OH_AVMuxer_Start and before OH_AVMuxer_Stop. You must ensure that the data is written to the correct media track in ascending order by time.

@syscap SystemCapability.Multimedia.Media.Muxer

Parameters

Name Description
muxer Pointer to an OH_AVMuxer instance.
trackIndex Index of the media track corresponding to the data.
sample Pointer to the buffer that stores the data written (data obtained after encoding or decapsulation).
info Information about the data written. For details, see OH_AVCodecBufferAttr.

Returns

Returns AV_ERR_OK if the operation is successful; returns an error code defined in OH_AVErrCode otherwise.

Since

10