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 \* [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 \* [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) | 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, [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, const OH_AVFormat \*format) | Configures an audio codec. Typically, you need to configure the audio description information.| 27| [OH_AVErrCode](_core.md#oh_averrcode)[OH_AudioCodec_Prepare](_audio_codec.md#oh_audiocodec_prepare) (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) | Starts an audio codec. This function can be called only after the codec is prepared successfully.| 29| [OH_AVErrCode](_core.md#oh_averrcode)[OH_AudioCodec_Stop](_audio_codec.md#oh_audiocodec_stop) (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) | 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) | 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) | 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, 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, 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, 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, bool \*isValid) | Checks whether an audio codec instance is valid. This function is used to check the codec validity when the background recovers from a fault or an application is switched from the background.| 37