💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# 2.1 API接口定义 外部音视频的编码、解码模块提供标准 C语言接口,上层应用需要按下面的标准实现 AnyChat Codec 库,实现的目标文件是动态库( Windows平台为 dll文 件,Linux 、Android平台为.so文件),这样 AnyChat平台才能正确注册并调用。 ~~~ #if defined(WIN32) # if defined(MEDIACODEC_EXPORTS) # define MEDIACODEC_API extern "C" declspec(dllexport) # else # define MEDIACODEC_API extern "C" declspec(dllimport) # endif #else # define MEDIACODEC_API extern "C" #endif // 获取库基本信息 MEDIACODEC_API DWORD MediaCodec_GetLibraryInfo(DWORD* dwCapability, DWORD* dwMainVer, DWORD* dwSubVer, CHAR* lpCompileTime, DWORD dwBufLen); // 获取编解码器基本信息 MEDIACODEC_API DWORD MediaCodec_GetCodecInfo(DWORD dwCodecType, DWORD* dwCodecId, CHAR* lpCodecName, DWORD dwBufLen); // 打开音频编码器 MEDIACODEC_API DWORD MediaCodec_AudioCodec_InitEncoder(MediaCodecContext* lpContext); // 对音频进行编码 MEDIACODEC_API DWORD MediaCodec_AudioCodec_Encode(MediaCodecContext* lpContext, MediaPacket* InPacket, MediaPacket* OutPacket); // 关闭音频解码器 MEDIACODEC_API DWORD MediaCodec_AudioCodec_CloseEncoder(MediaCodecContext* lpContext); // 打开音频解码器 MEDIACODEC_API DWORD MediaCodec_AudioCodec_InitDecoder(MediaCodecContext* lpContext); // 对音频流进行解码 MEDIACODEC_API DWORD MediaCodec_AudioCodec_Decode(MediaCodecContext* lpContext, MediaPacket* InPacket, MediaPacket* OutPacket); // 关闭音频解码器 MEDIACODEC_API DWORD MediaCodec_AudioCodec_CloseDecoder(MediaCodecContext* lpContext); // 打开视频编码器 MEDIACODEC_API DWORD MediaCodec_VideoCodec_InitEncoder(MediaCodecContext* lpContext); // 对视频进行编码 MEDIACODEC_API DWORD MediaCodec_VideoCodec_Encode(MediaCodecContext* lpContext, MediaPacket* InPacket, MediaPacket* OutPacket); // 关闭视频编码器 MEDIACODEC_API DWORD MediaCodec_VideoCodec_CloseEncoder(MediaCodecContext* lpContext); // 打开视频解码器 MEDIACODEC_API DWORD MediaCodec_VideoCodec_InitDecoder(MediaCodecContext* lpContext); // 对视频流进行解码 MEDIACODEC_API DWORD MediaCodec_VideoCodec_Decode(MediaCodecContext* lpContext, MediaPacket* InPacket, MediaPacket* OutPacket); // 关闭视频解码器 MEDIACODEC_API DWORD MediaCodec_VideoCodec_CloseDecoder(MediaCodecContext* lpContext); ~~~ 其中获取库基本信息(MediaCodec_GetLibraryInfo)和获取编解码器基本信息(MediaCodec_GetCodecInfo)两个 API 是必须要实现的,其它的 API 可根据实 际的需要来实现,如上层应用只需要实现硬件的视频编码与解码,则音频的编码、 解码 API可以不用实现。