AVDemuxer

Overview

The AVDemuxer module provides functions for audio and video decapsulation.

@syscap SystemCapability.Multimedia.Media.Spliter

Since

10

Summary

File

Name Description
native_avdemuxer.h Declares the native APIs used for audio and video decapsulation.
File to include: <multimedia/player_framework/native_avdemuxer.h>
Library: libnative_media_avdemuxer.so

Functions

Name Description
*OH_AVDemuxer_CreateWithSource (OH_AVSource *source) Creates an OH_AVDemuxer instance based on an OH_AVSource instance.
OH_AVDemuxer_Destroy (OH_AVDemuxer *demuxer) Destroys an OH_AVDemuxer instance and clears internal resources.
OH_AVDemuxer_SelectTrackByID (OH_AVDemuxer *demuxer, uint32_t trackIndex) Selects a track, from which the demuxer reads data.
OH_AVDemuxer_UnselectTrackByID (OH_AVDemuxer *demuxer, uint32_t trackIndex) Deselects a track. The demuxer no longer reads data from a track after it is deselected.
OH_AVDemuxer_ReadSample (OH_AVDemuxer *demuxer, uint32_t trackIndex, OH_AVMemory *sample, OH_AVCodecBufferAttr *info) Obtains the compressed frame and related information at the current position from the selected track.
OH_AVDemuxer_SeekToTime (OH_AVDemuxer *demuxer, int64_t millisecond, OH_AVSeekMode mode) Seeks to the specified time for all the selected tracks based on a seek mode.

Function Description

OH_AVDemuxer_CreateWithSource()

OH_AVDemuxer* OH_AVDemuxer_CreateWithSource (OH_AVSource *source)

Description

Creates an OH_AVDemuxer instance based on an OH_AVSource instance. You can release the instance by calling OH_AVDemuxer_Destroy.

@syscap SystemCapability.Multimedia.Media.Spliter

Parameters

Name Description
source Pointer to an OH_AVSource instance.

Returns

Returns the pointer to an OH_AVDemuxer instance.

Since

10

OH_AVDemuxer_Destroy()

OH_AVErrCode OH_AVDemuxer_Destroy (OH_AVDemuxer *demuxer)

Description

Destroys an OH_AVDemuxer instance and clears internal resources. An instance can be destroyed only once.

The destroyed instance cannot be used until it is re-created. You are advised to set the pointer to NULL after the instance is destroyed.

@syscap SystemCapability.Multimedia.Media.Spliter

Parameters

Name Description
demuxer Pointer to an OH_AVDemuxer instance.

Returns

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

Since

10

OH_AVDemuxer_ReadSample()

OH_AVErrCode OH_AVDemuxer_ReadSample (OH_AVDemuxer *demuxer, uint32_t trackIndex, OH_AVMemory *sample, OH_AVCodecBufferAttr *info)

Description

Obtains the compressed frame and related information at the current position from the selected track.

You must select a track before reading data. After this API is called, the demuxer automatically proceeds to the next frame.

@syscap SystemCapability.Multimedia.Media.Spliter

Parameters

Name Description
demuxer Pointer to an OH_AVDemuxer instance.
trackIndex Index of the track from which the compressed frame is to be read.
sample Pointer to the OH_AVMemory instance for storing the compressed frame data.
info Pointer to the OH_AVCodecBufferAttr instance for storing the compressed frame information.

Returns

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

Since

10

OH_AVDemuxer_SeekToTime()

OH_AVErrCode OH_AVDemuxer_SeekToTime (OH_AVDemuxer *demuxer, int64_t millisecond, OH_AVSeekMode mode)

Description

Seeks to the specified time for all the selected tracks based on a seek mode.

@syscap SystemCapability.Multimedia.Media.Spliter

Parameters

Name Description
demuxer Pointer to an OH_AVDemuxer instance.
millisecond Time to seek to, in milliseconds. The timestamp is relative to the start position of the file.
mode Seek mode. For details, see OH_AVSeekMode.

Returns

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

Since

10

OH_AVDemuxer_SelectTrackByID()

OH_AVErrCode OH_AVDemuxer_SelectTrackByID (OH_AVDemuxer *demuxer, uint32_t trackIndex)

Description

Selects a track, from which the demuxer reads data.

You can select multiple tracks by calling this API multiple times, with a different track index passed in each time.

When OH_AVDemuxer_ReadSample is called, only the data in the selected track is read. If the same track is selected multiple times, AV_ERR_OK is returned and the API call takes effect only once.

@syscap SystemCapability.Multimedia.Media.Spliter

Parameters

Name Description
demuxer Pointer to an OH_AVDemuxer instance.
trackIndex Index of the track.

Returns

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

Since

10

OH_AVDemuxer_UnselectTrackByID()

OH_AVErrCode OH_AVDemuxer_UnselectTrackByID (OH_AVDemuxer *demuxer, uint32_t trackIndex)

Description

Deselects a track. The demuxer no longer reads data from a track after it is deselected.

You can deselect multiple tracks by calling this API multiple times, with a different track index passed in each time.

If the same track is deselected multiple times, AV_ERR_OK is returned and the API call takes effect only once.

@syscap SystemCapability.Multimedia.Media.Spliter

Parameters

Name Description
demuxer Pointer to an OH_AVDemuxer instance.
trackIndex Index of the track.

Returns

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

Since

10