# 2.3 基本信息接口
## 2.3.1 查询库基本信息接口
**接口定义**:DWORD MediaCodec_GetLibraryInfo(DWORD* dwCapability, DWORD* dwMainVer, DWORD* dwSubVer, CHAR* lpCompileTime, DWORD dwBufLen)
**返 回 值**:0
**参 数**:
DWORD* dwCapability 库所实现的 CODEC 类型标志组合
DWORD* dwMainVer 库的主版本号,用户自定义
DWORD* dwSubVer 库的从版本号,用户自定义
CHAR* lpCompileTime 库的编译时间,已由外部分配好内存空间
DWORD dwBufLen 保存编译时间缓冲区的大小
**详细说明**:
该 API 接口必须实现,AnyChat 内核加载外部编解码动态库时,首先会调用该接口,获取当前加载的动态库实现了那些 API 接口(根据 dwCapability 返回值来判断)。
## 2.3.2 查询编解码器信息接口
**接口定义**:DWORD MediaCodec_GetCodecInfo(DWORD dwCodecType, DWORD* dwCodecId, CHAR* lpCodecName, DWORD dwBufLen)
**返 回 值**:查询的 CODEC 类型存在时返回 0,否则返回-1
**参 数**:
DWORD dwCodecType 需要查询的 CODEC 类型
DWORD* dwCodecId 返回该类型的 CODEC 编号值
CHAR* lpCodecName 返回该 CODEC 的名称,已由外部分配好内存
DWORD dwBufLen 保存 CODEC 名称缓冲区的大小
**详细说明**:
该 API 接口必须实现,AnyChat内核首先通过“库基本信息接口”获取到库的 CODEC 类型标志组合,然后再调用该接口详细获取指定类型的 CODEC 编号与名称。
当用户实现的CODEC编号不在AnyChat内置CODEC列 表(enum MEDIA_CODEC_ID)中时,可自定义一个ID,需要注意的是,自定义的CODEC ID必须大于或等于 MEDIA_CODEC_ID_USERSTART 宏定义的值,宏定义以内的值属于保留 ID,用于AnyChat今后的扩展,如果上层应用使用了该宏定义以内的值,那么今后AnyChat平台的升级将可能导致AnyChat内核与上层之间的一些冲突。