# native_avcodec_videodecoder.h ## 概述 声明用于视频解ç çš„Native API。 **库:** libnative_media_vdec.so **起始版本:** 9 **相关模å—:**[VideoDecoder](_video_decoder.md) ## 汇总 ### 函数 | å称 | æè¿° | | -------- | -------- | | OH_AVCodec \* [OH_VideoDecoder_CreateByMime](_video_decoder.md#oh_videodecoder_createbymime) (const char \*mime) | 从MIME类型创建视频解ç 器实例。 | | OH_AVCodec \* [OH_VideoDecoder_CreateByName](_video_decoder.md#oh_videodecoder_createbyname) (const char \*name) | 通过视频解ç 器å称创建视频解ç 器实例。 | | [OH_AVErrCode](_core.md#oh_averrcode)[OH_VideoDecoder_Destroy](_video_decoder.md#oh_videodecoder_destroy) (OH_AVCodec \*codec) | 清ç†è§£ç 器内部资æºï¼Œé”€æ¯è§£ç 器实例。 | | [OH_AVErrCode](_core.md#oh_averrcode)[OH_VideoDecoder_SetCallback](_video_decoder.md#oh_videodecoder_setcallback) (OH_AVCodec \*codec, [OH_AVCodecAsyncCallback](_o_h___a_v_codec_async_callback.md) callback, void \*userData) | 设置异æ¥å›žè°ƒå‡½æ•°ï¼Œè®©åº”用å¯ä»¥å“应视频解ç 器生æˆçš„事件。 | | [OH_AVErrCode](_core.md#oh_averrcode)[OH_VideoDecoder_RegisterCallback](_video_decoder.md#oh_videodecoder_registercallback) (OH_AVCodec \*codec, [OH_AVCodecCallback](_o_h___a_v_codec_callback.md) callback, void \*userData) | 注册异æ¥å›žè°ƒå‡½æ•°ï¼Œè®©åº”用å¯ä»¥å“应视频解ç 器生æˆçš„事件。 | | [OH_AVErrCode](_core.md#oh_averrcode)[OH_VideoDecoder_SetSurface](_video_decoder.md#oh_videodecoder_setsurface) (OH_AVCodec \*codec, OHNativeWindow \*window) | 指定输出表é¢ä»¥æ供视频解ç 输出,必须在调用Prepare之å‰è°ƒç”¨æ¤æŽ¥å£ã€‚ | | [OH_AVErrCode](_core.md#oh_averrcode)[OH_VideoDecoder_Configure](_video_decoder.md#oh_videodecoder_configure) (OH_AVCodec \*codec, OH_AVFormat \*format) | é…置视频解ç 器,通常需è¦é…置解ç 视频轨迹的æè¿°ä¿¡æ¯ï¼Œè¿™äº›ä¿¡æ¯å¯ä»¥ä»ŽOH_AVSourceä¸æå–。 | | [OH_AVErrCode](_core.md#oh_averrcode)[OH_VideoDecoder_Prepare](_video_decoder.md#oh_videodecoder_prepare) (OH_AVCodec \*codec) | è¦å‡†å¤‡è§£ç 器的内部资æºã€‚ | | [OH_AVErrCode](_core.md#oh_averrcode)[OH_VideoDecoder_Start](_video_decoder.md#oh_videodecoder_start) (OH_AVCodec \*codec) | å¯åŠ¨è§£ç 器,准备æˆåŠŸåŽå¿…须调用æ¤æŽ¥å£ã€‚ | | [OH_AVErrCode](_core.md#oh_averrcode)[OH_VideoDecoder_Stop](_video_decoder.md#oh_videodecoder_stop) (OH_AVCodec \*codec) | åœæ¢è§£ç 器。 | | [OH_AVErrCode](_core.md#oh_averrcode)[OH_VideoDecoder_Flush](_video_decoder.md#oh_videodecoder_flush) (OH_AVCodec \*codec) | 清除解ç 器ä¸ç¼“å˜çš„输入和输出数æ®ã€‚ | | [OH_AVErrCode](_core.md#oh_averrcode)[OH_VideoDecoder_Reset](_video_decoder.md#oh_videodecoder_reset) (OH_AVCodec \*codec) | é‡ç½®è§£ç 器。 | | OH_AVFormat \* [OH_VideoDecoder_GetOutputDescription](_video_decoder.md#oh_videodecoder_getoutputdescription) (OH_AVCodec \*codec) | 获å–解ç 器输出数æ®çš„æè¿°ä¿¡æ¯ã€‚ | | [OH_AVErrCode](_core.md#oh_averrcode)[OH_VideoDecoder_SetParameter](_video_decoder.md#oh_videodecoder_setparameter) (OH_AVCodec \*codec, OH_AVFormat \*format) | 设置解ç 器的动æ€å‚数。 | | [OH_AVErrCode](_core.md#oh_averrcode)[OH_VideoDecoder_PushInputData](_video_decoder.md#oh_videodecoder_pushinputdata) (OH_AVCodec \*codec, uint32_t index, [OH_AVCodecBufferAttr](_o_h___a_v_codec_buffer_attr.md) attr) | 将填充数æ®çš„输入缓冲区æ交给视频解ç 器。 | | [OH_AVErrCode](_core.md#oh_averrcode)[OH_VideoDecoder_RenderOutputData](_video_decoder.md#oh_videodecoder_renderoutputdata) (OH_AVCodec \*codec, uint32_t index) | 将处ç†åŽçš„输出Buffer返回给解ç 器,并通知解ç 器完æˆåœ¨è¾“出表é¢ä¸Šæ¸²æŸ“Bufferä¸åŒ…å«çš„解ç æ•°æ®ã€‚ | | [OH_AVErrCode](_core.md#oh_averrcode)[OH_VideoDecoder_FreeOutputData](_video_decoder.md#oh_videodecoder_freeoutputdata) (OH_AVCodec \*codec, uint32_t index) | 将处ç†åŽçš„输出缓冲区返回到解ç 器。 | | [OH_AVErrCode](_core.md#oh_averrcode)[OH_VideoDecoder_PushInputBuffer](_video_decoder.md#oh_videodecoder_pushinputbuffer) (OH_AVCodec \*codec, uint32_t index) | 将填充数æ®çš„输入缓冲区æ交给视频解ç 器。 | | [OH_AVErrCode](_core.md#oh_averrcode)[OH_VideoDecoder_RenderOutputBuffer](_video_decoder.md#oh_videodecoder_renderoutputbuffer) (OH_AVCodec \*codec, uint32_t index) | 将处ç†åŽçš„输出缓冲返回给解ç 器,并通知解ç 器完æˆåœ¨è¾“出表é¢ä¸Šæ¸²æŸ“,输出缓冲包å«è§£ç æ•°æ®ã€‚ | | [OH_AVErrCode](_core.md#oh_averrcode)[OH_VideoDecoder_FreeOutputBuffer](_video_decoder.md#oh_videodecoder_freeoutputbuffer) (OH_AVCodec \*codec, uint32_t index) | 将处ç†åŽçš„输出缓冲区返回到解ç 器。 | | [OH_AVErrCode](_core.md#oh_averrcode)[OH_VideoDecoder_IsValid](_video_decoder.md#oh_videodecoder_isvalid) (OH_AVCodec \*codec, bool \*isValid) | 检查当å‰è§£ç 实例是å¦æœ‰æ•ˆã€‚ |