1# native_avcodec_audiocodec.h
2
3
4## Overview
5
6The **native_avcodec_audiocodec.h** file declares the native APIs used for audio encoding and decoding.
7
8**Library**: libnative_media_acodec.so
9
10**Since**: 11
11
12**Related module**: [AudioCodec](_audio_codec.md)
13
14
15## Summary
16
17
18### Functions
19
20| Name| Description|
21| -------- | -------- |
22| [OH_AVCodec](_codec_base.md#oh_avcodec) \* [OH_AudioCodec_CreateByMime](_audio_codec.md#oh_audiocodec_createbymime) (const char \*mime, bool isEncoder) | Creates an audio codec instance based on a Multipurpose Internet Mail Extension (MIME) type. |
23| [OH_AVCodec](_codec_base.md#oh_avcodec) \* [OH_AudioCodec_CreateByName](_audio_codec.md#oh_audiocodec_createbyname) (const char \*name) | Creates an audio codec instance based on a codec name. |
24| [OH_AVErrCode](_core.md#oh_averrcode) [OH_AudioCodec_Destroy](_audio_codec.md#oh_audiocodec_destroy) ([OH_AVCodec](_codec_base.md#oh_avcodec) \*codec) | Clears the internal resources of an audio codec and destroys the codec instance. |
25| [OH_AVErrCode](_core.md#oh_averrcode) [OH_AudioCodec_RegisterCallback](_audio_codec.md#oh_audiocodec_registercallback) ([OH_AVCodec](_codec_base.md#oh_avcodec) \*codec, [OH_AVCodecCallback](_o_h___a_v_codec_callback.md) callback, void \*userData) | Sets an asynchronous callback so that your application can respond to events generated by an audio codec. This function must be called prior to **Prepare**. |
26| [OH_AVErrCode](_core.md#oh_averrcode) [OH_AudioCodec_Configure](_audio_codec.md#oh_audiocodec_configure) ([OH_AVCodec](_codec_base.md#oh_avcodec) \*codec, const OH_AVFormat \*format) | Configures the audio description. The audio codec is usually configured based on the audio description.|
27| [OH_AVErrCode](_core.md#oh_averrcode) [OH_AudioCodec_Prepare](_audio_codec.md#oh_audiocodec_prepare) ([OH_AVCodec](_codec_base.md#oh_avcodec) \*codec) | Prepares internal resources for an audio codec. |
28| [OH_AVErrCode](_core.md#oh_averrcode) [OH_AudioCodec_Start](_audio_codec.md#oh_audiocodec_start) ([OH_AVCodec](_codec_base.md#oh_avcodec) \*codec) | Starts an audio codec after it is prepared successfully.|
29| [OH_AVErrCode](_core.md#oh_averrcode) [OH_AudioCodec_Stop](_audio_codec.md#oh_audiocodec_stop) ([OH_AVCodec](_codec_base.md#oh_avcodec) \*codec) | Stops an audio codec. |
30| [OH_AVErrCode](_core.md#oh_averrcode) [OH_AudioCodec_Flush](_audio_codec.md#oh_audiocodec_flush) ([OH_AVCodec](_codec_base.md#oh_avcodec) \*codec) | Clears the input and output data in the internal buffer of an audio codec. |
31| [OH_AVErrCode](_core.md#oh_averrcode) [OH_AudioCodec_Reset](_audio_codec.md#oh_audiocodec_reset) ([OH_AVCodec](_codec_base.md#oh_avcodec) \*codec) | Resets an audio codec. To continue encoding or decoding, you must call **Configure** to configure the codec again. |
32| OH_AVFormat \* [OH_AudioCodec_GetOutputDescription](_audio_codec.md#oh_audiocodec_getoutputdescription) ([OH_AVCodec](_codec_base.md#oh_avcodec) \*codec) | Obtains the description information about the output data of an audio codec. |
33| [OH_AVErrCode](_core.md#oh_averrcode) [OH_AudioCodec_SetParameter](_audio_codec.md#oh_audiocodec_setparameter) ([OH_AVCodec](_codec_base.md#oh_avcodec) \*codec, const OH_AVFormat \*format) | Sets dynamic parameters for an audio codec. |
34| [OH_AVErrCode](_core.md#oh_averrcode) [OH_AudioCodec_PushInputBuffer](_audio_codec.md#oh_audiocodec_pushinputbuffer) ([OH_AVCodec](_codec_base.md#oh_avcodec) \*codec, uint32_t index) | Pushes the input buffer filled with data to an audio codec. |
35| [OH_AVErrCode](_core.md#oh_averrcode) [OH_AudioCodec_FreeOutputBuffer](_audio_codec.md#oh_audiocodec_freeoutputbuffer) ([OH_AVCodec](_codec_base.md#oh_avcodec) \*codec, uint32_t index) | Frees an output buffer of an audio codec. |
36| [OH_AVErrCode](_core.md#oh_averrcode) [OH_AudioCodec_IsValid](_audio_codec.md#oh_audiocodec_isvalid) ([OH_AVCodec](_codec_base.md#oh_avcodec) \*codec, bool \*isValid) | Checks whether an audio codec instance is valid.<br>This function is used to detect the codec status when a background fault is rectified or an application is switched from the background. |
37| [OH_AVErrCode](_core.md#oh_averrcode) [OH_AudioCodec_SetDecryptionConfig](_audio_codec.md#oh_audiocodec_setdecryptionconfig) ([OH_AVCodec](_codec_base.md#oh_avcodec) \*codec, MediaKeySession \*mediaKeySession, bool secureAudio) | Sets the decryption information. |
38