XEngine-V8.36.0.1001 Build20240722 其他更新 删除了多余的发布扩展文件夹 公用头增加了内部套接字操作缓冲区大小定义,现在服务端和客户端内部缓冲区大小统一按照此大小接受数据 帮助组件 授权验证模块-已经被删除,开源集成到授权管理服务 流媒体协议组件 SDP协议模块 修改视频LEVELID变量类型,解决某些警告问题 组包类调整ICE组包的附加信息顺序 RTP协议模块 解析类修正UDP内存没有申请导致的问题 音视频编解码组件 视频编解码模块 硬件编解码类型重新设计,现在可以直接指定NVIDIA,AMD,INTEL显卡了,而不是其他名称 视频编码器现在支持自定义附加参数设置了,比如preset,tune,profile等 视频编码器现在支持自定义FORMAT格式了,某些硬编码器需要指定format 视频解码器删除了不在需要的变量类型 音视频滤镜模块 视频缩放类优化了初始化代码和字段 视频滤镜类复杂滤镜修改,现在不需要在为每个滤镜创建对象了,使用了新的滤镜字符串的方式来解析.简化使用方法 媒体包处理模块 解包类获取音视频参数的函数现在对于没有帧率的问题可以获得平均帧率了 转换类输入媒体获取时间信息的参数,通过帮助模块的媒体信息获取 封包类删除了输入封包媒体时间参数获取,通过帮助模块的媒体信息获取 解封包删除了获取文件索引媒体信息的函数,通过帮助模块的媒体信息获取 媒体帮助模块 增加了基础安全模块的支持,以后将使用安全的内存和字符串操作 媒体信息类的索引信息修改结构体为XENGINE_KEYVALUE结构 媒体信息类获取流函数现在可以获取流的类型和编码器了 媒体信息类增加了获取音视频流信息的函数 媒体信息类增加了获取音视频时间信息和时间基的函数 客户端组件 流媒体客户端模块 拉流类获取音视频参数的函数现在对于没有帧率的问题可以获得平均帧率了 安全客户端模块 获取密钥文件函数现在支持自定义密钥信息了 连接函数现在可以不获取SSL信息了,也支持默认的SRTP密钥 配置函数删除了类型参数,并且默认支持SRTP信息配置了,不在是仅支持SRTP_AES128_CM_SHA1_80 配置函数能够正确返回成功和失败了 内存接受数据函数修正非用户套接字没有传递数据大小造成的问题 初始化现在可以支持指定证书文件格式了,支持PEM和ANS1 核心组件 核心安全模块 安全服务类修正获取密钥KEY某些时候造成死锁的问题 安全服务类内存接受数据函数修正非用户套接字没有传递数据大小造成的问题 基础组件 基础安全模块 内存类修正内存拷贝函数没有导出实现的问题 内存类内存拷贝函数修改了错误处理判断方式 内存类增加了新的内存memmove安全内存拷贝函数 内存类拷贝修改拷贝目标参数类型为无类型指针了 ====================================================================================== XEngine-V8.35.0.1001 Build20240708 其他更新 协议头增加了媒体时间基的结构体定义,现在时间基都采用此结构了 第三方编译依赖库更新到最新版本 客户端组件 流媒体客户端模块 XCLIENT_TIMEBASE修改使用协议头的AVCODEC_TIMEBASE定义了 拉流类增加了获取流的编解码器信息的函数 音视频编解码组件 媒体包处理模块 AVCODEC_TIMEBASE修改使用协议头的AVCODEC_TIMEBASE结构定义了 解包类的获取音视频参数函数修改了名称 捷豹类的时间基参数使用了AVCODEC_TIMEBASE了 视频编解码模块 编解码器删除了解码器的回调函数支持.复杂度过高 编解码器的解码函数现在支持设置定义解码参数AVCodcParameter支持了 编解码器的获取编码参数函数修改名称,并且现在支持获取时间基了 编解码器的解码函数修正YUV分包输出解码的数据内存处理不当的问题 音频编解码模块 编解码器删除了解码器的回调函数支持.复杂度过高 编解码器的解码函数现在支持设置定义解码参数AVCodcParameter支持了 编解码器的获取编码参数函数修改名称,并且现在支持获取时间基了 音视频帮助模块 解析类删除了帧分析工具,移动倒新的帧处理模块中 音频流帧处理模块-新增 增加了新的音视频帧分包工具类,从帮助模块移动而来 增加了码流转换类,支持音视频码流转义 流媒体协议组件 RTP协议模块 打包类的时间戳打包函数时间戳现在从0开始了 打包的包数据缩减了大小 FLV协议模块 打包类的时间戳打包函数现在时间戳是从0开始了 RTMP协议模块 打包类的时间戳打包函数现在时间戳是从0开始了 SDP协议模块 打包类增加了RTCP网络打包支持 打包类ICE用户密码打包函数增加了快速传输可选参数支持 打包类音视频FMT打包函数调整了FMTP和RTPMAP顺序 打包类音视频打包函数支持RTC的RTCP属性打包了 打包类音频打包函数支持minptime和useinbandfec属性了 打包类删除了AV属性打包函数,功能都集成到音视频打包函数里面了 解析类音视频解析函数现在支持解析RTCP属性了 解析类的音频解析函数现在支持minptime和useinbandfec属性了 解析类删除了AV属性打包函数,功能都集成到音视频解析函数里面了 基础组件 基础模块 字符集修正ANSI和UNICODE的转换函数没有输出转换后大小的问题 字符集修改ANSI和UNICODE互转函数,现在支持自定义转换大小设置了 字符集WINDOWS版本的UTF和ANSI互转函数现在支持输入自定义大小了 基础安全模块 安全字符串拷贝函数进行了重命名 安全字符串增加了字符串追加拷贝函数 安全内存类增加了安全内存拷贝函数 ====================================================================================== XEngine-V8.34.0.1001 Build20240621 其他更新 修正拥有组包器功能的模块在处理组包的时候没有正确返回结果的问题 音视频编解码组件 媒体包处理模块 封包和解封包类的名称进行了重命名 媒体转封装修正退出的时候崩溃问题 媒体转封装修正自定义IO内存过小的问题 媒体封包类增加了创建流和写入流函数,现在可以支持自定义流媒体数据写入 媒体解包类增加了主动读取媒体数据的函数,可以支持无回调读数据了 媒体类增加了获取流信息的函数,可以获取流的编解码信息 视频编解码模块 简化了错误码定义 增加函数可以获取视频的编解码信息了 音频编解码模块 简化了错误码定义 增加函数可以获取音频的编解码信息了 流媒体协议组件 SDP协议模块 打包类在打包视频媒体信息的时候转换了LEVELID类型,解决某些范围引起的问题 解析器修正解析媒体信息的VPS信息不正确的问题 RTCP协议模块 解析器修正RTCP接受报告丢包数不正确的问题 标准组件 HTTP协议模块 HTTP1服务类修改扩展了内部头缓冲区大小 HTTP1服务类对HTTP头的大小检测进行了严格限制 HTTP1服务类的构建头打包函数优化,现在不需要再申请临时内存了 WEBSOCKET协议模块 链接类修正握手链接输出缓冲区大小错误的问题 链接类修正握手包缺少结束符可能导致握手失败的问题 编解码类编码数据修正打包无负载数据失败的问题 核心组件 核心安全模块 核心安全模块的配置加密算法函数现在由用户指定 核心服务模块 TCPXCore的IOCP版本修正没有正确取消IO事件导致的问题 TCPXCore的IOCP版本客户端关闭事件流程优化 基础组件 修改基础库和算法库的错误定义 基础安全模块-新增 安全字符串增加了拷贝函数 ====================================================================================== XEngine-V8.33.0.1001 Build20240612 其他更新 安装脚本优化系统逻辑判断 安装脚本删除了不在需要的代码 客户端组件 流媒体客户端模块 实时推流现在支持音频设置样本大小了 音视频编解码组件 媒体包处理模块 重命名了媒体包模块名称从XEngine_AVPacket改为XEngine_AVFormat.定义名称也一起重新命名了 媒体包中的内存定义采用了公用头的定义并且扩展了大小,解决内存不足的问题 解决某些类型转换问题 优化和减少了错误码定义 修正打包类和转换类没有查找流信息的问题 音视频帮助组件 解析类的264,265去除竞争码函数现在输入输出参数在一起了并且公开了函数 解析类的SPS信息解析函数优化减少了部分函数操作 音频编解码模块 音频编解码类现在重采样支持设置原始样本大小了 采集器模块 视频采集器修正使用YUV组合返回数据的时候数据不正确导致的问题 视频编解码模块 视频解码修正在使用YUV组合返回数据的时候数据不正确导致的问题 视频解码优化YUV分拆数据返回,不需要内存申请操作 流媒体协议组件 RTP协议模块 打包类增加了单独设置负载RTP包类型的函数 SDP协议模块 解析类修正获取媒体信息的解析函数对于多个媒体编号缺少第一个的问题 解析类媒体信息函数现在可以输出对应的MID媒体索引了 解析类RTCP属性解析名称修改为AVAttr,不在支持rtcp网络属性,而是rtpmap和fmtp列表属性解析 解析类BUNDLE函数解析不解析RTCP-MUX属性 解析类BUNDLE函数解析现在只是输出BUNLDE索引编号了 打包类RTMP属性打包名称修改为AVAttr,不在支持rtcp网络属性,而是rtpmap和fmtp列表属性打包 打包类的BUNDLE打包现在由用户填写音视频的MID索引而不是逻辑型参数了 打包类的媒体打包函数现在可以设置MID索引值了 核心组件 核心安全模块 安全服务类修改密钥获取函数,现在支持自定义类型输出了 安全服务类修改密钥获取函数,不在内部处理密钥输出分类,需要用户自己处理 安全服务类修正握手数据处理不完整导致握手失败的问题 安全服务类修正发送数据IO选择错误导致发送失败的问题 安全服务类修正bVerPeer为FALSE还去验证客户端证书导致握手失败的问题 证书类增加了证书格式转换函数,支持PEM和DER格式互转 基础组件 基础模块 增加BIT流操作类,支持句柄多操作,支持自动位移 BIT流类支持读取指定大小比特位的值 BIT流类支持读取H264的SE,SI,UE解码值 字符串类分割文件名函数现在可以设置导出的文件名只有文件名称而不包含扩展名了 ====================================================================================== XEngine-V8.32.0.1001 Build20240529 标准组件 NAT协议模块 STUN类修正NatProtocol_StunNat_BuildMSGIntegrity类型错误导致的问题 STUN类修正NatProtocol_StunNat_BuildMSGIntegrity消息效验码取值错误的问题 STUN类增加了重写STUN协议头负载大小的函数 STUN类隐藏了消息完整性和CRC32效验函数,现在可以直接通过打包参数进行设置了,简单难度 音视频编解码组件 音视频帮助模块 封装类增加了H26X的格式封装转换函数 音视频采集模块 音视频采集增加了获取时间基的函数 音视频采集现在支持导出本身的PTS,DTS和duration了 视频采集修正AVPACKET二次申请内存和内存释放的问题 视频采集删除了主动读取数据多余的代码 流媒体协议组件 SDP协议模块 SSRC类型从INT修改为__int64x类型 打包类CName打包函数现在支持别名为空了 打包类修正candidate打包属性缺少字段导致的问题 打包类修改了OWNER打包函数现在会话ID不在表示版本号,版本固定为2 打包类分离了C=属性,解决某些场景需要单独客户端属性的问题 打包类删除了信息版本属性,某些客户端解析会出问题 解析类CName解析函数修正内存处理不正确的导致的问题 解析类CName解析函数支持解析无后续别名的情况了 RTCP协议模块 解析类调整所有函数参数顺序,固定参数在前了 解析类增加了RTPFB解析函数,可以解析类型1的丢包报告以及媒体源标识符 解析类增加了PSFB解析函数,可以解析是否需要关键帧报告以及媒体源标识符 解析类增加了XR解析函数,可以获得媒体源标识符 客户端组件 流媒体客户端模块 文件类支持文件重新推流开关了 文件类优化PTS计算工具 实时推流支持使用原始流的时间基.解决某些转换问题 实时推流支持设置帧时间了 实时推流修改PTS和DURATION计算方式,优化无PTS和DURATION自增方法 实时流修正输出数据文件标识判断处理不正确导致的问题 编码推流支持使用原始流的时间基.解决某些转换问题 编码推流支持设置帧时间了 编码推流修改PTS和DURATION计算方式,优化无PTS和DURATION自增方法 编码推流修正输出流没有判断处理文件标识符的问题 拉流类增加了获取流时间基的函数 推拉流现在都支持设置媒体头自定义属性了 客户端模块 扩展客户端类的内部客户端修改内存存储方式,不需要申请内存了 扩展客户端类修改自动连接函数处理IPV6类型不正确导致的问题 扩展客户端类修正接受数据某些时候不生效的问题 ====================================================================================== XEngine-V8.31.0.1001 Build20240517 音视频编解码组件 音频编解码模块 编解码类修正RockyLinux编译警告问题 帮助组件 组包模块 帮助类标注组包头修正没有正确输出数据区打包大小的问题 帮助类删除了重写协议头函数,没有多大意义 帮助类增加了判断是否是XEngine协议包的函数 日志模块 日志类修正套接字锁没有初始化导致的问题 日志类修正多线程打印数据错乱的问题 标准组件 NAT协议模块 STUN类增加了构建原始服务器地址信息包的函数 STUN类增加了构建自定义错误数据信息包的函数 NTP协议模块 解析类分离了获取时间偏移和延迟的参数.现在使用新的独立函数获取 打包类增加了转换本地时间为NTP时间戳的函数 MQTT协议模块 解析类的长度字段解析函数优化代码解析方法 解析类增加了任务池功能,现在支持任务池处理函数了 解析类现在支持组包处理了 解析类删除了头和长度解析函数,不在公开处理 解析类重新设计了协议处理函数,现在通过RECV的消息类型需要自己调用相应函数来处理协议了 解析类修正无法处理PING消息的问题 打包类协议头打包函数现在支持一起打包负载数据了 打包类消息发布打包函数现在会一起打包消息数据了 打包类消息响应打包函数现在支持不打包属性数据了 打包类修正打包属性的时候属性内容为空导致的问题 流媒体协议组件 MP4协议模块 打包类MVHD打包函数的时间刻度打包现在会保留原始数据值而不是转换后的数据了 打包类TKHD打包函数的音量和宽高数据会保留原始值而不是转换后的值 打包类视频帧打包函数修正CTTS数据插入错误的问题 打包类视频帧打包函数修正大小处理不正确导致的问题 打包类的音视频帧打包函数修正STTS插入数据可能重复插入的问题 打包类的CTTS现在对于没有的情况会返回错误信息了 打包类的STSD打包函数修正宽高数据大小不正确导致的问题 打包类的STSD打包函数修正压缩名称大小不正确导致的问题 打包类的STSD打包函数删除多余的音频采样打包数据 打包类的MVHD和TKHD修正内部值没有转换字节序导致的问题 打包类修正TKHD的宽高信息不正确的问题 打包类修正内部TRACKID不正确的问题 解析类修正TKHD解析宽高信息在特殊情况下不正确的问题 系统组件 系统函数模块 硬件类获取序列号函数修正获取硬盘系列号在LINUX下不正确的问题 核心组件 核心服务模块 网络套接字服务相关类修改优化锁类型 TCPXCore优化获取套接字对应信息的函数,解决某些可能得问题 TCPXCore修正关闭客户端在某些情况下资源没有释放的问题 TCPXCore修改关闭客户端,减少优化步骤 TCPXCore的IOCP版本完成事件处理解决了二次释放的问题 ====================================================================================== XEngine-V8.30.0.1001 Build20240506 其他更新 协议头的扩展协议优化了部分定义和类型.对于不需要限位符的类型进行了修改 更新了主机平台依赖的开源库版本 限定了macos平台ffmpeg使用的版本为6.x 客户端组件 客户端模块 TCPSelect扩展客户端增加了发送和接受限速平均限速功能 TCPSelect扩展客户端修正发送和接受函数锁处理不当导致的问题 流媒体协议组件 MP4协议模块 打包类增加了STTS和CTTS显示时间戳和解码时间戳打包函数 打包类增加了关键帧STSS和STSC样本映射打包函数 打包类增加了数据偏移STCO和数据大小STSZ打包函数 打包类增加了设置时间戳的函数,现在时间戳可以通过系统自动配置了 打包类增加了DINF打包函数,目前只能打包空数据 打包类打包MVHD和TKHD现在总时间可以为0自动计算了 打包类打包MVHD函数修正自定义总时间设置不正确的问题 打包类现在独立打包函数已经封装了头和大小,不需要在单独封装一次了 打包类修正HDLR封装数据大小没有计算正确导致的问题 打包类修正TKHD封装视频宽高大小不正确导致的问题 解析类支持DINF类型解析 帮助组件 组包模块 帮助类的构建包普通和扩展包函数现在支持处理大端情况了 数据库模块 MYSQL数据库重连参数被重新启用了,但是默认为关闭状态,将在未来版本移除 MYSQL数据库查询函数执行失败会设置系统错误码了 MYSQL数据库DataBase_MySQL_Ping的函数优化内部代码和说明 POSTGRE数据库增加了PING函数,支持检测链接和自动连接 日志模块 日志类初始化函数现在可以指定是否启用UNICODE字符集控制台和文件输出了 日志类修正自动路径处理不正确导致的问题 日志类修正销毁的时候对于内存判断失败没有释放内存的问题 系统组件 系统函数模块 文件类获取文件属性函数现在会处理文件是否存在的情况了 文件类修改了获取文件属性获取方式,优化异常处理能力 文件类枚举文件函数修正内部参数处理不能为NULL的情况也做了判断 文件类创建多级目录修正获取的目录信息不正确导致的问题 文件类创建多级目录删除了没有意义的目录分隔符处理代码 基础组件 基础模块 字节序类增加了获取当前操作系统是大端还是小端字节序的函数 算法模块 计算类增加了新的函数用于获取所有次数,发送和接受的数据统计并且支持追溯模式 计算类的被动模式修改现在回调函数只返回是否触发了,并且合并到一起触发了 计算类的被动模式现在支持回溯处理了 计算类的内部结构数据内存处理修改为智能指针方式 计算类增加了新的线程来处理回溯过期数据了,解决回溯数据不能正确被释放的问题 ====================================================================================== XEngine-V8.29.0.1001 Build20240419 其他更新 项目管理VS增加了自身包含目录,解决某些代码提示异常问题 项目管理VS删除多余的附加目录和库 客户端组件 客户端安全模块 客户端链接处理函数现在设置了类型可以自动处理链接过程了 客户端关闭连接处理函数修正BIO处理不正确导致的问题 客户端修正接受数据的时候发生错误没有释放内存的问题 编解码组件 编解码帮助模块 解析类的AAC信息解析函数现在最后四个参数可以为NULL,只检测是否存在AAC头了 流媒体协议组件 SDP协议模块 打包类的视频媒体信息打包函数删除多余的音频信息打包 打包类的视频媒体信息打包函数现在支持rtc的格式打包了 打包类的添加媒体信息支持设置媒体类型索引了 打包类增加了BUNDLE模式打包函数 打包类增加了ICE用户名和密码的打包函数 打包类增加了SSRC别名属性打包的函数 解析类增加了BUNDLE属性模式解析函数,并且支持检测RTCP复用 解析类增加了ICE的用户和密码属性解析函数 解析类增加了SSRC别名解析函数 解析类增加了加密算法解析函数 MP4协议模块 解析类修正解析BOX里面的时间戳因为类型定义问题越界导致值不正确的问题 解析类修正某些分辨率区分小数整数部分导致分辨率值解析不正确的问题 解析类增加了SDTP类型的BOX解析并且支持获取SDTP列表 解析类接受获取数据函数现在支持获取当前系统解析位置数据了 解析类现在解析出不支持的类型全部设置为0了 解析类现在如果碰上大小为结束符的数据将不再继续执行 打包类增加了FTYP类型打包函数 打包类的BOX头打包现在支持单独设置附加数据或者附加长度信息了 打包类修正BOX头打包导出的数据大小缺少自身头大小的问题 打包类修正视频打包函数打包数据大小处理不正确的问题 打包类修改音频打包函数,现在支持AAC自动处理ADTS头了,并且能够给正确输出内容了 核心组件 核心服务模块 TCPXCore获取时间函数支持获取客户端连接时间了,并且现在可以根据需要传递参数 TCPXCore增加了新的函数,现在支持暂停指定客户端接受数据了,可以用于流量控制 TCPXCore的MAC与IOS平台关闭客户端函数优化了资源释放代码 UDPSelect服务类修正调用停止函数因为没有释放线程资源崩溃的问题 核心安全模块 服务类增加了获取客户端是否链接成功的函数 服务类的链接处理函数修改,现在服务类支持内部自己处理链接而不需要用户手动处理握手过程了 服务类修正链接握手内存处理函数处理完成后没有更新数据的问题 服务类修正链接握手函数的输出大小在没有数据的时候输出不正确的问题 服务类修正关闭客户端释放资源处理不正确导致的问题 服务类修正接受内存数据发生错误没有释放内存的问题 基础组件 基础模块 字符串类通过开始结束获取中间字符串函数现在开始和结束字符串可以为NULL了 字符串类通过开始结束获取中间字符串函数修改优化对最小处理参数的处理方式 ====================================================================================== XEngine-V8.28.100.1001 Build20240409 其他更新 应用程序修正编译信息提示错误的问题 流媒体协议组件 FLV协议模块 修改统一错误定义编号 SDP协议模块 修改统一错误定义编号 核心组件 核心服务模块 套接字类修正非WINDOWS系统XCore无法成功创建套接字导致的问题 ====================================================================================== XEngine-V8.28.0.1001 Build20240408 网络组件 黑白名单模块 被移动到帮助组件下 套接字模块 分拆了流量控制和流量统计类,现在流量操作有单独的模块NetHelp_APIFlow 系统组件 系统函数模块 硬件类修正获取硬件系统序列号命名错误的问题 系统类增加了获取系统机器名和用户名的功能函数 流媒体协议组件 FLV协议模块 错误定义重复问题修正 MP4协议模块-新增 支持MP4协议解析和解封装并且支持同时处理多个解析类 解析类全局支持VERSION 1的扩展大小解析 解析类支持MP4协议头FTYP类型解析 解析类支持MVHD,TKHD,MDHD,HDLR,VMHD,SMHD,STSD,STTS,STSS,CTTS,STSC,STSZ,STCO的BOX类型解析 解析类的STSD支持H264的AVC和MP4A的AAC编解码信息解析,包括参数和SPS,PPS等编码数据 解析类支持非MDAT媒体数据类型组包 解析类支持任务池功能函数使用 解析类增加支持获取所有MP4协议头信息的函数 解析类增加支持获取FTYP,MVHD头信息函数 解析类增加支持获取所有TRACK列表ID的函数 解析类增加支持获取TRACK的tkhd,rmhd,hdlr,smhd,vmhd信息的函数 解析类增加获取TRACK的STTS,CTTS,STSC,STSZ,STCO列表的函数 解析类增加获取视频关键帧数据偏移列表的函数 打包类MP4文件增加支持 打包类支持通用BOX头封装 打包类支持MVHD,TKHD,MDHD,HDLR,VMHD,SMHD,DINF,STSD协议封装 打包类支持处理音视频数据封装成MP4格式,支持自定义PTS,DTS封装 打包类支持封装音视频的时候处理STTS,CTTS,STSS,STSZ,STCO协议 RTMP协议模块 解析类修正发送组包函数没有正确处理错误信息的问题 标准协议组件 NTP协议模块-新增 NTP时间戳支持秒和分数设置,支持微妙单位的时间戳同步 打包类支持NTP协议客户端请求打包和服务端响应打包函数 打包类支持NTP请求轮训时间设置 打包类支持服务ID设置 打包类支持自定义请求类型 打包类支持设置参考时间戳,接受时间戳,原始时间戳 打包类支持内部系统自己设置传输时间戳 打包类默认支持设置本级服务和时间戳与NTP时间戳转换 解析类支持输出传输时间戳,接受时间戳,原始时间戳,参考时间戳 解析类支持解析并且输出轮训时间 解析类支持解析并且输出服务端的时钟精度 解析类支持解析并且输出服务ID 解析类支持单位微妙的往返延迟计算 解析类支持单位微妙的时间偏移计算.通过此值可以配置系统时间 解析类支持系统自动转换时间戳等信息为可读信息 核心组件 核心服务模块 套接字类修正某些时候XCore无法成功创建套接字导致的问题 ====================================================================================== XEngine-V8.27.0.1001 Build20240327 其他更新 公用头文件现在版本字符串和数字可以通过宏定义链接了,不需要在多次修改版本号 应用程序增加了更多网页服务列表和继续完善了编译信息提示 编解码组件 视频编解码模块 视频编解码增加了对AVS,AVS2的支持 音频编解码模块 音频编解码增加了对OPUS编解码的支持 音频编解码增加了获取编码一帧所需PCM数据大小的函数 客户端组件 流媒体客户端模块 推流类编码视频函数现在支持自定义PTS和DTS了,也可以不填 推流类编码视频函数的原始时间基修改为通过原始帧率信息获取 推流类编码音频函数在支持自定义PTS 推流类编码音频函数的原始时间基修改为通过原始采样率信息获取 推流类编码音频函数的PTS转换函数修改转换方法 推流类编码修正音频和视频函数多余的关键帧处理代码,没有效果 推流类实时推流函数的视频现在支持自定义PTS和DTS了 推流类实时推流函数的音频现在支持自定义PTS 推流类实时推流函数的视频现在支持设置当前帧为关键帧了 安全客户端模块 安全客户端类删除了初始化库函数,不在需要 安全客户端类增加了DTSL-AES128的密钥获取函数 安全客户端类增加了加密算法配置函数,支持配置SRTP链接算法 安全客户端扩展类名称修改,规范了命名 错误定义重新规范了定义名称 错误定义删除了多余的VPN错误定义 核心组件 核心安全模块 安全服务类删除了SSL类型,多余的不在支持 安全服务类删除了初始化库函数,不在需要 安全服务类增加了DTSL-AES128的密钥获取函数 安全服务类增加了加密算法配置函数,支持配置SRTP链接算法 安全服务类错误定义重新规范了定义名称 安全服务类接受链接函数现在会自动过滤存在的客户端地址了 安全服务类接受链接函数修正bSSocket参数使用处理不正确的问题并且现在支持accept函数 安全服务类接受链接函数修正对于获取客户端证书的时候参数判断和处理流程不正确导致的问题 安全服务类接受链接函数现在可以导出没有输入IP参数为NULL的IP地址了 安全服务类接受函数优化了对于BIO内存读写加解密操作的处理方法 安全服务类接受函数增加了内存处理函数,现在可以自己处理链接过程了 安全服务类修正某些时候关闭服务器对空指针释放的问题 安全服务类修改接受函数,现在证书算法信息通过新的函数来获取了 核心服务模块 UDPSelect服务类在调用回调函数的时候会自动设置call回调模式了 UDPSelect服务类增加了新的函数可以获取套接字句柄了 UDPSelect服务类修正停止服务器卡死的问题 UDPXCore服务类增加了新的函数可以获取套接字句柄了 套接字类现在创建套接字可以设置是否为阻塞套接字了,主要提供给WINDOWS使用 ====================================================================================== XEngine-V8.26.0.1001 Build20240318 其他更新 安装脚本修正安装库后无法即时生效的问题 主程序完善了输出信息提示和优化了部分多余的代码 客户端组件 流媒体客户端模块 直播推流类修正某些时候拷贝PCM数据到内部缓冲区错误的问题 网络客户端模块 文件客户端修正数据结构名称不正确的问题 文件客户端修正没有设置上传文件大小导致的问题 文件客户端现在上传也支持设置range了 音视频编解码组件 音频编解码模块 编码器类修正某些时候在编码的时候拷贝PCM数据到内部缓冲区错误的问题 音视频帮助模块 解析类增加了支持解析获取音频分贝值的函数 采集器模块 视频采集模块输出的YUV现在可以是一个包或者分开的YUV数据了 系统组件 系统函数模块 文件类删除了判断是否为文件夹的函数 文件类增加了获取文件属性的函数,支持获取是文件还是目录,是否为隐藏文件,是否为只读文件 进程类IOS版本支持获取自身启动时间 进程类IOS版本支持获取自身路径 进程类IOS版本支持CPU使用率获取了 进程类IOS版本支持获取进程的信息了 进程类删除了IOS的版本定义函数,不支持的函数支持返回错误了 进程类修正安卓系统获取CPU使用率没有效果的问题 系统类修正获取WINDWOS11版本识别为WINDOWS10的问题 系统类增加了WMI查询函数 核心组件 安全核心模块 加解密API类现在RSA支持生成ecdsa的算法了 加解密API类的RSA创建函数被删除了 加解密API类RSA增加了新的创建函数,现在支持生成导出内存和文件数据了 加解密API类RSA增加了区分私钥和公钥创建的函数 加解密API类的错误码定义进行了优化 加解密证书类修改X509创建函数,修改名称,并且支持X509和X509Request证书创建 加解密证书类根证书创建和证书请求创建内部函数修正字符集不正确导致的问题 加解密证书类证书签名现在不需要输入序列号参数了 基础组件 基础模块 字符集增加了本地字符集函数设置函数,修正某些转换失效的问题 算法模块 字符串算法类现在支持输出起始地址了 字符串算法类修正如果有相邻的字符串匹配会出现查找不成功的问题 ====================================================================================== XEngine-V8.25.0.1001 Build20240223 其他更新 安装脚本 现在LINUX下的SO库目录直接拷贝到/usr/local/lib下了,不需要再指定链接目录 模块调整 核心组件的黑白名单模块现在移动到网络组件下并且重命名为:NetHelp_WBlackList 核心组件的网络核心函数模块现在移动到网络组件下并且重命名为:NetHelp_XSocket 网络组件的客户端API模块现在移动到网络客户端组件下并且重命名为:XClient_APIHelp 网络组件 套接字模块 流量控制类现在的函数不在对IOS系统进行取消定义了 帮助组件 日志模块 日志类输出日志函数优化了一些性能问题 日志类修正输出日志某些时候线程冲突造成的问题 音视频编解码组件 音视频过滤器模块 音频滤镜修正内存对其引起的编码问题 音频滤镜复杂滤镜修正缺少输出格式导致混流失败的问题 音频滤镜复杂滤镜现在支持指定输出格式了 视频滤镜修改了复杂滤镜使用方法.现在支持为每个输入流添加滤镜 视频滤镜的复杂滤镜支持自己设置复杂滤镜的滤镜名称和参数 视频滤镜复杂滤镜现在不需要设置输出字符串信息,使用输入替代 视频滤镜复杂滤镜优化内部使用方法,简化内部代码,优化内存使用 视频滤镜复杂滤镜现在支持指定输出格式了 视频滤镜的简单滤镜现在转换输出减少了一次内部内存拷贝 音频编解码模块 音频编码类修正某些时候内存对其引起的编码问题 音频编码类编码器删除了不需要的判断代码 音频解码类修正解码初始化对于参数处理不正确导致的问题 音频解码类修正解码缓冲区多小的问题 音频解码类修正重采样的数据大小不正确的问题 客户端组件 流媒体客户端模块 流媒体客户端模块导出的定义和错误头修改了其名称 实时推流类优化对编码接受数据的错误处理能力 实时推流类修正某些时候在某些分辨率下编码数据不正确的问题 安全客户端模块 修改了模块导出的定义和错误头文件的名称 核心组件 池管理模块 任务池修正多线程下任务个数计算不正确的问题 安全核心模块 X加解密取消了输出大小预测功能 X加解密现在支持聚合包并且支持自动分包,自动组包了 ====================================================================================== XEngine-V8.24.0.1001 Build20240201 其他更新 公用头文件删除了一个多余的类型 应用程序增加了最开始的打印信息提示 标准协议组件 NAT协议模块 STUN类的打包函数的事务ID现在为输入参数了,不在内部创建 STUN类的解析函数修正没有数据对其导致的问题 STUN类增加了构建映射地址属性函数,支持异或和非异或地址打包 客户端组件 客户端模块 推流文件类修正有音频流的时候出错的问题 推流文件类修改现在支持自定义码流过滤器配置了 拉流类现在支持自定义码流过滤器配置了 帮助组件 日志模块 日志类修正没有初始化缓冲区导致输出数据的问题 日志类修改内部缓冲区大小为1MB 流媒体协议组件 HLS协议模块 TS流解析类现在支持中间流的节目ID变更处理了 TS流解析类修正关闭的时候判断客户端是否存在处理不当造成的问题 TS流打包类修正音视频PID为0的问题 TS流打包类修正时间戳设置当视频时间戳有小数点的时候一直为0的问题 TS流打包类修正PAT,PMT校验和计算错误导致无法播放的问题 TS流打包类修正关闭的时候判断客户端是否存在处理不当造成的问题 TS流打包类打包函数现在不在分包而是打包一整块缓冲区并且优化了内部缓冲区使用方法 TS流打包类增加了新的一个函数,打包为TS包大小数据 M3U8打包类现在支持单一码流数据打包了 M3U8打包类内存管理方式修改 M3U8打包类现在不在取输入的文件名而是输入的地址是什么内容就写什么内容 M3U8打包类修正某些时候没有刷新文件数据导致的问题 M3U8打包类修正添加文件对子流查找判断处理不正确导致的问题 M3U8打包类修改了名称,方便区分是打包还是解析并且增加了解析类 M3U8解析类支持多个文件解析 M3U8解析类支持多码流和单码流文件解析 M3U8解析类支持文件和内存操作 M3U8解析类支持获取码流媒体信息音视频编码信息分辨率和码率帧率信息 M3U8解析类支持获取码码流的时间和序列号版本以及缓存和类型 M3U8解析类支持文件动态变化不重复解析 核心组件 安全加解密模块 编码器类增加了新的CRC32算法函数,用于处理不同标准的情况 基础组件 基础模块 IP地址类增加了支持IPV4和IPV6地址字符串转整数型的函数 IP地址类增加了支持IPV4和IPV6地址整数型转字符串的函数 字符串类增加了分割字符串的函数,支持多种分割方式 ====================================================================================== XEngine-V8.23.0.1001 Build20240119 其他更新 移动平台所有模块都使用静态链接了 公用头文件增加了IP最大大小和引擎描述定义 公用头文件增加了中等和最低内存大小定义宏 网络组件 网络函数模块 域名类增加了分割域名地址的函数.可以得到协议,域名,端口和后续字符串 编解码组件 音频编解码模块 音频解码器修正关闭释放内存崩溃的问题 帮助组件 日志模块 日志类优化内部缓冲区,现在使用了独立缓冲区,优化速度,并且可以提供更大的日志缓冲区 日志类打印方法进行了修改,减少了缓冲区申请行为 日志类打印函数增加了日志属性的功能,支持跳过此条日志的文件和控制台输出 日志宏XLOG_APRINT现在修改为属性打印 客户端模块 流媒体客户端模块-转移 修正回调函数没有声明调用约定的问题 推流类的内存大小宏定义采用公用头的定义了 推流类现在可以指定推流的负载格式了,解决某些推流不兼容的问题 推流类实时推流的音频函数修正时间戳计算使用错误导致的问题 推流类实时推流修正某些时候推流冲突导致的问题 推流类实时推流优化音视频推流函数名称 推流类编码推流修正某些时候推流冲突导致的问题 推流类编码推流优化音视频推流函数名称 推流类文件推流输出函数修正缺少FPS参数设置的问题 流媒体协议组件 流媒体客户端模块-被移动到客户端模块中 标准协议组件 NAT协议模块 STUN类的构建属性包函数现在不在需要指定对其大小了 STUN类的构建属性包函数现在输出的大小值会加上以往的大小了 STUN类增加了FINGER和消息完整性以及消息优先级打包函数 STUN类修改了请求和回复函数名称,改为打包和解析.支持请求回复打包解析 核心组件 安全加解密模块 编码器类修改CRC32的计算方法,解决某些问题 编码器类增加HMAC算法的计算函数 ====================================================================================== XEngine-V8.22.0.1001 Build20231222 编解码组件 音视频滤镜模块-增加 增加了音频和视频的滤镜类 音频和视频类集成自以往的音视频模块 音频类的初始化函数进行了修改,优化了滤镜使用方法,现在可以通过自定义滤镜字符串来处理音频滤镜了 音频类增加了音频混流代码修改了代码使用方法,更加符合规范 视频类增加了原始图像与大小处理转换函数 视频类修改过滤器添加方法,现在视频转换的过滤器设置兼容性更好了 媒体解封装模块 解封装类增加移动媒体位置的函数 音频编解码模块 帮助类移除了滤镜代码函数,集成到单独的模块中 帮助类移除了音频混流代码,集成到单独的模块中 视频编解码模块 帮助类移除了滤镜代码函数,集成到单独的模块中 帮助类移除了图像转换函数,集成到单独的模块中 流媒体协议组件 RTP协议模块 错误码被重新设计定义,简化了错误码使用 打包类增加了SSRC获取和设置函数 打包类修改现在不设置SSRC将默认采用客户端ID来作为SSRC RTCP协议模块 错误错误码被重新设计定义,简化了错误码使用码 重新设计了发送和接受处理方式,现在使用打包和解析类区分了 删除了帮助类相关代码,集成到各自相关联类中 打包类描述信息函数独立了 打包类函数内部指针位置不在兼容以往位置,启用新位置了 打包类函数不在区分发送和接受结束打包信息,统一使用一个函数 打包类增加了APP打包协议函数 解析类增加了协议头解析,现在需要先解析出头信息在解析负载内容 解析类描述信息函数独立了 核心组件 核心服务模块 UDP服务的回调函数现在SOCKET套接字属性会填充自身套接字参数了 ====================================================================================== XEngine-V8.21.0.1001 Build20231201 其他更新 FFMPEG的WINDOWS版本更新到V6.1支持 移动平台的依赖模块除了FFMPEG,都采用了静态链接 标准组件 SDP协议模块-被移除 HTTP协议模块 协议帮助类获取参数函数现在支持针对URL请求RTSP完整列表的解析支持了 流媒体组件 SDP协议模块-新增 SDP协议模块错误码重新设计,简化了错误码定义 解析类修改了临时缓冲区申请方法,解决缓冲区溢出的问题 解析类音视频媒体信息解析函数重新设计,现在支持多个媒体类型获取 解析类音视频媒体函数进行了合并,现在统一为获取媒体信息函数了 解析类修改属性函数,进行了提级并且可以获得所有属性列表了 解析类修改属性解析函数,现在没有值的属性将默认设置key而不是value 解析类修改了音视频信息解析函数内部处理方法,优化了代码结构和处理方式 解析类增加了音视频RTPMAP解析函数 解析类增加了RTCP属性解析函数,支持公有数据和指定索引属性解析 解析类删除了不需要的内部数据结构字段 打包类修改缓冲区类型,解决缓冲区溢出的问题 打包类修改优化内部字符串字段内存大小 打包类的媒体打包函数现在支持添加多个索引列表了 打包类增加了控制类型打包函数 打包类增加了读写打包属性函数 打包类的音视频打包修改了函数名称以及优化了打包方法,支持打包多个媒体信息 打包类增加了媒体索引类别打包函数 打包类增加了RTCP公用和属性打包函数 RTSP协议模块 错误码重新设计,简化了错误码定义 重新设计了模块内部结构,不在区分核心和客户端结构 代码内部大分部被重构过,现在更加符合框架代码结构了 现在使用解析类和打包类来处理协议处理,并且区分请求和响应的解析和打包 增加了对匿名和录像的选项解析打包支持 增加了对RTPINFO类型支持了 增加了响应对附加属性的解析和打包支持 优化使用方法,现在只需要一个函数就可以对RTSP打包和解析了 优化减少了结构体类型,默认值将使用默认打包了 取消了对加解密的支持,现在需要单独处理验证数据 取消了对负载数据解析的支持 RTP协议模块 删除了HELP的NTP时间类 打包类的设置信息改为设置时间戳.现在支持内部自动计算时间了 打包类获取时间戳名称修改 核心组件 核心服务模块 XCoreUDP类修正启动函数缺少一个参数的问题 ====================================================================================== XEngine-V8.20.0.1001 Build20231110 全局更新 删除了编译器的内存警告选项 修改了结构体初始化使用方法,现在使用了C/C++标准来初始化结构体 Windows的第三方库现在都采用静态链接了 协议头文件的权限级别扩展了级别定义 协议头的心跳调整了部分字段的内存大小 公有头文件的UNICODE开关使用方式进行了更新 网络组件 网络函数模块 删除了字节序类相关函数,移动到基础库了 邮件类移动是否邮件函数到此类中 邮件类增加了获得邮件名称和域名的函数 帮助组件 授权验证模块 分钟授时修改为秒钟授时,提高授时精度 系统组件 系统函数模块 文件类枚举文件函数删除了回调参数 现在系统函数模块不在需要加载profile头文件了,进程状态定义已经被移动到此模块中 文件系统模块 删除了进程状态转化函数,被移动到系统函数模块中了 核心组件 安全加解密模块 X加解密现在支持是否设置XEngine协议头数据了 X加解密优化解密代码,不在重复判断是否有密码 基础组件 基础模块 时间计时类调整精度为纳秒 时间计算类删除了GMT时间获取函数 时间基础类增加了获取时区信息的函数 时间基础类修改了GMT时间获取参数,增加了一个参数可以获取GMT时间结构体 字节序类增加,从帮助组件的函数库移植 ====================================================================================== XEngine-V8.19.0.1001 Build20231024 其他更新 平台更新 现在所有模块组件都已经支持移动平台 音视频编解码组件 播放器模块-已经删除,不在集成到框架中,框架不处理界面相关代码 流媒体协议组件 FLV协议模块 打包类现在时间戳参数都放到最后了 打包类的音频数据打包现在不在内部除去头了,需要用户自己去除 RTMP协议模块 打包类现在时间戳参数都放到最后了 打包类的音频数据打包现在不在内部除去头了,需要用户自己去除 打包类现在设置默认流ID为1了 打包类修正音频打包时间戳设置为视频时间戳导致的问题 HLS协议模块 TS流打包类删除句柄函数的函数名称大小修正 TS流解包类删除句柄函数的函数名称大小修正 TS流解包类包处理函数的音视频包处理方法进行了优化 TS流解包类删除了不需要的音视频字段 TS流解包类修正解析的包数据某些时候会多出一个包 系统组件 系统函数模块 进程类设置和获取CPU亲和性函数支持MACOS和IOS平台了 硬件类获取磁盘类型现在支持MAC和IOS平台了 系统类获取内存信息修正某些系统不生效的问题 系统类获取空闲时间现在支持linux和mac平台系统了 系统类删除了获取系统开机类型的函数,兼容性不好 帮助组件 数据库模块 修改代码用于适配移动平台编译,目前移动平台仅支持SQLITE 核心组件 核心函数模块 流量控制类的宏定义针对IOS进行了修改支持 基础组件 基础模块 时间类结构转TIME时间现在会设置夏令制标识了 时间类时区转换函数现在不需要指示加减了,内部进行了修改,解决夸天问题 ====================================================================================== XEngine-V8.18.0.1001 Build20231001 其他更新 平台更新 增加了以下模块对于ANDROID和IOS平台的支持 XEngine_OPenSsl XClient_OPenSsl HelpComponents_Compress NetHelp_APIClient RfcComponents_WSProtocol RfcComponents_HttpProtocol XEngine_AudioCodec XEngine_VideoCodec XEngine_AVCollect XEngine_AVHelp XEngine_AVPacket StreamMedia_RTSPProtocol StreamMedia_HLSProtocol StreamMedia_FLVProtocol StreamMedia_RTMPProtocol StreamMedia_StreamClient 音视频编解码组件 音视频帮助模块 解析类视频解析类型函数增加新的扩展填充信息的解析 解析类视频头解析函数对视频参数解析失败的情况将会返回失败了 解析类删除了协议修正函数,没有作用 流媒体协议组件 HLS协议模块 TS流解析类修正穿插数据导致获取数据不正确为0的问题 TS流打包类增加了设置时间戳的函数,修正时间戳基计算不正确的问题 FLV协议模块 打包类脚本打包函数增加视频帧率字段打包 打包类AAC音频参数打包现在类型一直为1了 打包类时间戳自动计算函数现在支持音视频的单独时间戳计算了 RTMP协议模块 打包类视频打包函数修正NAL大小不一致导致数据输出大小错误的问题 打包类时间戳自动计算函数现在支持音视频的单独时间戳计算了 RTP协议模块 解析类删除了设置传输协议TCP/UDP的函数,没有意义 帮助组件 组包模块 自定义组包类修正协议头大小附加不正确导致无限增长的问题 自定义组包类修正某些时候组包标志不正确导致的问题 自定义组包类修正协议尾组包大小计算方式不正确的问题 解压缩模块 文件解压缩现在增加了预处理机制,暂时不支持移动平台 ====================================================================================== XEngine-V8.17.0.1001 Build20230908 其他修改 协议头的音视频数据定义被移除了 协议头优化了过期函数定义方式 流媒体协议组件 HLS协议模块 TS流解析类修正AAC音频没有输出PTS的问题 TS流解析类现在获取输出类型区分输出值了 TS流解析类修正PES的PTS和DTS计算有错误的问题 TS流打包类修正CRC32计算方法结果处理不正确的问题 TS流打包类修正时间打包数据位移不正确导致的问题 TS流打包类修正自适应字段数据大小计算不正确导致的问题 TS流打包类自适应函数打包可以打包填充数据了并且支持控制字段是否附加控制数据 TS流打包类PCR时间现在能够正确填充内容了 TS流打包类PES的PTS和DTS能够正确填充数据和移动数据位值了 TS流打包类音视频打包函数现在能够正确处理需要填充数据的数据结构了 TS流打包类修正序列号打包顺序不正确的问题 TS流打包类的PTS和DTS现在支持自动计算值并且支持区分音视频了 流媒体客户端模块 拉流类支持SRT流了 推流类的编码推流初始函数删除了协议设置参数,不需要了 推流类的原始编码推流初始删除了协议设置参数和是否自动延迟功能 推流类文件推流现在不在区分视频文件和音频文件了 音视频编解码组件 音视频帮助模块 解析类现在NALU类型解析支持H265和H264了 解析类NALU类型支持AUD类型了 解析类H264和H265参数解析合并到一个函数里面了 解析类的265解析函数修改为VPS信息获取函数 解析类增加了SPS信息解析,可以获得宽高等信息 视频编解码模块 修正视频枚举类型名称定义不正确的问题 帮助模块 数据库模块 MYSQL数据库删除了链接的重连选项,因为此选项已经被标记为移出 MYSQL数据库增加了PING函数,支持检查链接,用于替代重连标记移出的问题 核心组件 池管理器模块 任务池修改等待事件函数内部代码,现在还有包的情况下不会进入等待状态了 安全加解密模块 编解码类修改CRC32编码计算方法和返回值,现在直接返回INT类型的CRC32码了 ====================================================================================== XEngine-V8.16.0.1001 Build20230822 音视频编解码组件 删除了ffmpeg一个不需要的初始化函数 流媒体协议组件 删除了ffmpeg一个不需要的初始化函数 RTMP协议模块 帮助类DATA包解析函数现在支持0x08的类型解析了 帮助类解析音视频函数的参数一现在作为输入了,缓冲区需要相应的移动指针 打包类对自定义和音视频打包函数进行了修改,现在支持扩展时间戳和是否CHUNK分片了 打包类初始化函数现在可以设置CHUNK大小了 打包类现在支持打包H265的AVC信息了 FLV协议模块 打包类现在支持打包H265的AVC信息了 打包类现在支持自定义输入输出TAG大小了 TS协议模块 解析类修正协议头的PID字段解析可能出现错误的问题 解析类修正对PMT判断处理逻辑不严谨的问题 解析类现在能对PAT和PMT错误信息正确导出了 解析类修正PAT表的PID字段解析不正确的问题 解析类现在可以支持解析扩展字段信息了 打包类新增,现在可以处理一些TS流的基本信息打包了,支持自定义音视频索引和PID 打包类支持PAT,PMT信息打包 打包类支持仅负载PCR时间戳打包 打包类支持音视频数据打包,支持PES自动分割 打包类支持自动处理包索引和包字段协议 帮助组件 日志模块 日志类增加设置日志打印间隔的函数,可以设置INFO,NOTICE,WARN控制台打印间隔了 网络组件 网络函数模块 网络类写40位数据函数修改内部代码写入方式 网络类增加了写48位(6字节)和56位(7字节)数据的函数 网络类增加了读48位(6字节)和56位(7字节)数据的函数 系统组件 系统函数模块 进程类优化错误码,现在不在区分函数了 进程类增加了获取进程执行全路径获取的函数 进程类增加了获取进程是否是管理员权限运行的函数 系统类删除了是否被远程控制函数,没有多大作用 系统类删除了远程关闭机器函数 ====================================================================================== XEngine-V8.15.0.1001 Build20230726 其他更新 协议头更新音视频数据字段位置 协议头增加了视频负载数据头 编解码组件 视频编解码模块 编解码类解码初始化函数修正回调为NULL导致的问题 编解码类修正解码函数传递的获取解码数据参数不生效的问题 流媒体协议组件 RTMP协议模块 帮助类控制命令解析协议现在修改为协议控制数据解析和打包 帮助类增加了用户控制命令的打包和解析函数 帮助类解析视频函数现在可以支持还原H265和H264了 帮助类解析数据包协议函数现在支持0x03的对象类型解析了 帮助类打包命令函数现在能够正确处理其他类型的负载数据了 解析类现在的协议头解析优化代码,不在使用枚举类型定义了 解析类删除了设置CHUNK大小函数,现在系统内部自动处理了 打包类增加了用户管理工具,支持插入和删除以及时间戳设置 打包类增加了音视频脚本参数打包功能函数 打包类增加自定义数据包打包函数 打包类音视频打包函数修改了参数,现在支持自动计算时间戳了 打包类音频参数打包修正没有转换类型导致的问题 打包类修正脚本打包采样大小参数字段不正确导致的问题 FLV协议模块 打包类修正设置时间函数可能导致死锁的问题 打包类音频参数打包修正没有转换类型导致的问题 打包类修正脚本打包采样大小参数字段不正确导致的问题 解析类现在支持解析H264和H265的数据并且进行还原了 解析类获取媒体函数现在可以获取VPS信息并且可以获取指定信息了 HLS协议模块 删除了TS打包类函数,以后重构 增加了TS流解析函数,现在可以支持音视频包分离 支持获取PTS和DTS 支持获取H265,H265,AAC流 支持任务池管理技术 支持PAT,PMT,SDT,NIT,PES获取 流媒体客户端 文件流删除了内存模式功能代码,性能不足 标准协议组件 HTTP协议模块 HTTP1组包器销毁不在优先触发事件了 网络组件 网络函数模块 网络类增加了读写5个字节的函数 帮助组件 组包模块 现在组包器销毁不在优先触发事件了 核心组件 池管理器模块 任务池修正销毁时候状态不正确一直导致超时退出的问题 任务池修正返回值处理不正确导致的问题 ====================================================================================== XEngine-V8.14.0.1001 Build20230707 流媒体协议组件 RTMP协议模块 解析器类句柄采用字符串了 解析器的create和destory现在修改为insert和delete了 解析器类增加了初始化和销毁函数 解析器类增加了任务事件处理工具 解析器现在不在处理音视频数据包了 解析器修正CHUNK包大小计算不正确的问题 解析类删除了获取媒体信息的函数 帮助类增加了处理音频和视频负载数据包的函数 FLV协议模块 修改模块句柄类型全部使用字符串作为句柄了 打包类增加了自定义负载封包处理函数 打包类增加了时间戳设置函数,支持时间戳自增计算 打包类修改了音视频打包函数,现在支持时间戳设置为0了 打包类的扩展时间戳能够正确赋值了 解析类修正对象处理类型不正确的问题 解析类增加了初始化和销毁函数,用于支持任务池功能 解析器增加了任务池事件处理函数 解析类的扩展时间戳能够正常识别了 RTP协议模块 参数句柄修改为字符串了 打包类对初始化和销毁进行了修改,现在了改为插入和删除了 打包类修正H264跳过NAL头移动的字节不正确导致的问题 打包类修正FU分片的时候对于大小正好的情况处理不正确导致没有结束的问题 解析类现在支持任务池功能了 解析类初始化和销毁函数现在为模块系统内部初始化了 解析类增加了插入和删除客户端函数 解析类增加了任务池事件处理函数 解析类对内部组包函数进行了优化,不在区别头和体组包了 帮助组件 组包模块 内部的任务事件处理器现在统一使用池管理器中的函数了 标准组件 WEBSOCKET协议模块 包管理器的任务事件处理器现在统一使用池管理器中的函数了 HTTP协议模块 包管理器的任务事件处理器现在统一使用池管理器中的函数了 核心组件 池管理器模块 增加了分布式多线程任务池类,提取自包管理器 任务池支持句柄和地址模式管理 任务池支持插入,删除,清理,增加一个记数,减少一个记数以及获得有记数的列表 任务池支持事件管理器,支持等待,激活和重置事件 ====================================================================================== XEngine-V8.13.0.1001 Build20230626 网络帮助组件 网络客户端模块 HTTP客户端多任务处理现在只能通过回调获取数据了 HTTP客户端多任务处理增加了新的函数来获取执行结果 HTTP客户端多任务处理修改底层代码,使用新的方法来获取数据,并且不会阻塞执行函数了 流媒体协议组件 FLV协议模块 解析器的脚本解析现在支持对象类型解析了 解析器的脚本解析现在导出的内容增加了大小和类型字段,不在内部转换了 RTMP协议模块 修正数据对象结构为数组的问题 解析器创建需要参数是否为服务器了 解析器修正连接数据需要组包造成的问题 解析器修正变长头导致的组包问题 帮助类打包命令协议支持处理请求和回复了 帮助类打包命令协议支持处理对象了 帮助类增加打包数据协议 帮助类的连接打包和解析函数重写,现在支持客户端和服务器了 帮助类增加打包数据协议 帮助类命令解析函数修正MAP类型解析错误导致的问题 帮助类COMMANDID不在进行网络字节序转换 帮助类修正cmdid值不正确的问题 打包类增加了AVC参数信息打包函数 打包类增加了AAAC参数信息打包函数 打包类增加了音视频打包函数 音视频编解码组件 采集器模块 音频类增加了主动读取采集数据的功能模式函数并且支持指定模式 视频类增加了主动读取采集数据的功能模式函数并且支持指定模式 视频编解码模块 编解码类现在可以输出更多信息了 编解码类编码初始化函数进行了优化裁剪,现在使用结构传参 编解码类编码函数现在支持编码多帧数据导出了 编解码类解码现在支持设置回调或者通过解码函数直接获取解码数据了 编解码类解码函数删除了解析器,现在必须一帧一帧投递 音频编解码模块 编解码类现在可以输出更多信息了 编解码类编码初始化函数进行了优化裁剪,现在使用结构传参 编解码类编码函数修正多帧数据错乱的问题 编解码类编码函数修正没有重采样数据无法输出的问题 编解码类解码器现在删除了解析器功能,必须一帧一帧投递了 编解码类解码器初始化的音频附加信息现在通过结构提投递了 编解码类解码函数优化内存使用方式 编解码帮助模块 解析器数据分帧功能函数类现在支持线程安全了 解析器H264头解析函数现在支持SPS,PPS和SEI参数决定POS位置了 解析器NAL单元现在支持末尾帧解析了,只查找到一次的起始字节码默认最后一帧 ====================================================================================== XEngine-V8.12.0.1001 Build20230603 其他更新 协议头的音视频协议包装名称扩展了大小 协议头的音视频协议增加了媒体时间和大小的字段 系统组件 系统函数模块 进程类删除了开机自动启动函数 编解码组件 音视频编解码模块修正导出定义名称不准确的问题 编解码帮助模块 解析类增加了H264,H265 NAL单元分割解析的功能函数 解析类增加了协议修正函数,支持对FLV,RTMP负载的H264数据进行修正 解析类NALU头解析现在失败也能取得开始字节大小了 标准组件 WEBSOCKET协议模块 组包类修正获取数据可能导致的数据多线程冲突问题 流媒体组件 FLV协议模块-增加 解复用类支持管理多个流解析 解复用类支持解析音频,视频和脚本标签 解复用类支持流式数据投递,自动组包解包 解复用类支持获取数据的时候获取音视频信息 解复用类支持获取SPS和PPS信息 解复用类支持获取脚本数据信息列表 复用类支持管理多个封包流 复用类支持视频,音频和脚本标签打包 复用类支持H264的AVCConfigure和AAC的AACConfigure参数信息打包 复用类支持打包H264视频和AAC音频 RTMP协议模块-增加 解复用类支持管理多个流解析 解复用类支持解析音频,视频和命令以及控制协议 解复用类支持流式数据投递,自动组包解包 解复用类支持获取SPS和PPS信息 解复用类支持CHUNK包 帮助类连接协议处理和打包 帮助类支持控制和命令协议打包 帮助类支持控制和命令协议解析 帮助类支持数据DATA协议解析 帮助类支持协议连接验证解析 网络组件 网络函数模块 网络类增加短整数型网络字节序与主机字节序互相转换的函数 网络类增加整数型网络字节序与主机字节序互相转换的函数 网络类增加数字与二进制读写到缓冲区的功能函数,支持读写以下类型 8位字符 16位短整数 24位整数 32位整数或者float 64位整数或者double 基础组件 基础模块 句柄类生成字符串函数现在不在内部限定内存而是直接操作导出参数了 ====================================================================================== XEngine-V8.11.0.1001 Build20230512 全局更新 公用头文件删除了WINAPI的定义,多余的 HTTP MINI和CODE扩充了更多信息 客户端组件 客户端模块 网络SELECT函数优化错误处理能力 流媒体组件 流客户端模块 拉流类修正RTMP流连接和超时无效的问题 音视频编解码组件 播放器模块 音频播放器初始化输出参数可以获得音频缓冲区大小了 视频编解码模块 编解码类解码器初始化现在可以允许不使用parse帧解析器了 编解码类解码器解码函数现在可以让用户一帧一帧解码数据了 媒体包模块 媒体连接类修正三个及以上文件PTS计算问题导致连接时间不正确的问题 媒体连接类输入函数现在支持选择音视频流了 媒体转换和打包类修改内部函数调用模式,现在必须先试用output了 帮助组件 数据库模块 MYSQL数据库插入数据参数三支持输入了,用于支持二进制写入操作 日志模块 日志模块修正打印错误码导出不正确的问题 核心组件 核心服务模块 UDPXCore修正Windows下退出处理不正常导致回调异常的问题 UDPXCore修正Windows下退出死锁的问题 UDPXCore修正Windows下在多线程的时候可能造成缓冲区异常的问题 套接字Select函数优化错误处理能力 基础组件 基础模块 字符串类修改函数内部重写了,现在使用stirng来操作 字符串类修改函数现在支持最小匹配了 字符串类获取指定范围字符串函数内部重写了,现在使用stirng来操作 字符串类获取指定范围字符串函数现在支持最小匹配了 ====================================================================================== XEngine-V8.10.0.1001 Build20230421 全局更新 现在WINDOWS的代码都采用UNICODE字符集编译了(导出还是ANSI) 删除了大写的逻辑型类型,现在采用跨平台的小型逻辑类型了 类型转换头文件优化了转换定义,现在只有ANSI版本了 现在导出的字符串不在拥有_T定义了 公用头文件优化的短整数定义 公用头文件现在使用_X 代替 _T了 公用头修改了SOCKET的定义 公用头修改了TRUE和FALSE的定义 公用头文件的版本号和版本类型定义进行了优化 规范了错误定义,现在错误定义的值更加明确了 协议头的登录验证协议增加新的动态码字段 解决了某些整数型转换的编译警告问题 流媒体组件 流客户端模块被重命名,现在名称更加直观 客户端组件 客户端模块 TCPSelect扩展客户端自动重连修正一直重连的问题 帮助组件 授权模块 现在授权模块内部都采用基础库的读写配置函数而不是VC的了 数据库模块 PG数据库修正关闭套接字不正确的问题 标准组件 HTTP协议模块 现在字符串比对函数不在区分大小写了 帮助类短连接生成函数修正转换函数不为NULL导致的问题 基础组件 基础模块 删除了预处理标记代码 内存类整数型参数修改了无符号整数型 字符串类删除指定字符串函数修正崩溃问题 版本类获取版本字符串函数名称和参数进行了修改,现在不在附加版本类型了 版本类增加了获取版本类型的函数 版本类修改了获取版本号证书的函数,现在不需要参数了,直接返回版本号 版本类增加了获取版本类型整数的函数 版本类获取版本数据结构信息现在支持获取版本类型了 ====================================================================================== XEngine-V8.3.0.1001RC2 Build20230412 全局更新 逻辑型现在类型定义采用我们自己的定义了 客户端组件 客户端模块 扩展客户端修正在设置回调模式的时候某些极端情况丢失数据的问题 网络组件 删除了BT客户端模块,依赖项目太多,等以后裁剪后在添加 音视频编解码组件 音视频采集模块 音视频采集参数调整,现在需要用户提供采集的设备驱动和设备名称了 媒体帮助模块 设备类修正某些时候获取的名称为NULL导致的问题 媒体包模块 连接类修正媒体索引没找到的问题 转换类修正回调媒体类型为-1的问题 解封装类修正转换句柄函数不正确导致无法使用的问题 标准组件 WEBSOCKET协议模块 连接类连接函数支持自定义请求的资源地址了 连接类验证函数修正某些大小写造成验证失败的问题 连接类验证函数现在能够正确验证服务端返回的验证信息了 连接类连接返回函数现在能够正确处理加密客户端的KEY值了 连接类握手函数删除多余的代码 SNMP协议模块 解析类修正没有对SEQ正确处理导致负载内容无法获取的问题 SIP协议模块 解析类修正负载内容为NULL导致不能解析的问题 流媒体组件 流媒体客户端模块 修改流媒体客户端模块起始头函数名称,防止与标准客户端名称冲突 HLS协议模块 分片类修正某一个媒体不存在导致索引出问题的情况 帮助组件 授权模块 修正写入时间函数平台函数定义不正确导致的问题 核心组件 核心函数模块 流量类修正获取的流量接口类型不一致导致的问题 管道通信内存映射修正设置大小不正确导致映射失败的问题 管道通信内存映射在文件映射模式多余的代码 池管理模块 线程池抢占式线程池修正投递单任务不触发的问题 线程池抢占式线程池修正某些时候锁导致的崩溃 核心协议模块 协议类PING和TRACE协议修正超时设置失败导致的问题 加解密模块 API类修正RSA在某些系统下崩溃的问题 基础组件 基础模块 配置文件读写类的读取字符串配置现在返回整数型了 句柄类生成随机字符串现在支持指定字符大小写了 ====================================================================================== XEngine-V8.2.0.1001RC1 Build20230402 全局更新 修改VS编译后的动作,现在X86和X64都会拷贝头文件了 修改统一了相关NETENGINE的定义命名名称为XENGINE 修改统一了AVCoder的定义命名为AVCodec 修改公用头文件的定义,现在对于垮平台类型定义更加友好 修改公用头文件,增加了自己的一些类型定义,而不是使用WINDOWS的定义了 修改了代码配置,现在无论什么平台的代码都集成在VS中了 统一了ANDOID编译脚本为MAKEFILE,现在除了WINDOWS,其他平台全部统一编译脚本 删除了多余的MAKEFILE中的编译选项 增加了postproc模块依赖,无法取消 音视频编解码组件 视频编解码模块 帮助类转换函数优化内部代码,采用更标准的函数管理内存 帮助类转换函数修改初始化代码,增加转换属性设置函数,用于转换中改变转换属性 播放器模块 视频播放器增加了设置窗口大小的函数 流媒体组件 流媒体客户端 导出的文件名称进行了修改,防止与客户端冲突 客户端组件 客户端模块 套接字选项类增加了数据发送函数,可以内部循环处理发送数据了,并且支持区分TCP和UDP以及IP版本 TCP和UDP发送数据现在采用了统一的函数进行数据发送 TCP和UDP发送数据现在不在导出发送大小,而是系统内部处理了 扩展客户端插入函数导出的句柄不能为NULL了 扩展客户端插入函数调整了参数顺序,更加合理了 扩展客户端插入函数增加设置是否需要发送心跳包数据的参数 扩展客户端心跳函数增加支持自定义心跳包数据发送的功能 扩展客户端修正处理回调状态不正确导致无法接受数据的问题 扩展客户端修正某些函数没有找到客户端还返回真的问题 帮助组件 日志模块 日志模块的句柄现在从XLOG改为XHANDLE了 标准组件 WEBSOCKET协议模块 连接类验证连接参数三可以为空了 组包类投递函数修改了函数名称,与其他模块投递函数统一 组包类增加支持设置文件模式了,可以接受到的数据直接认为是一个完整的包,方便传输大数据 核心组件 核心服务模块 套接字类导出了更多的函数创建,绑定,发送,接受,关闭 套接字类发送函数现在可以内部循环处理未发送完毕的数据了,并且支持区分TCP和UDP以及IP版本 TCP和UDP发送数据现在采用了统一的函数进行数据发送 TCP和UDP发送数据现在不在导出发送大小,而是系统内部处理了 ====================================================================================== XEngine-V8.1.0.1001BT Build20230326 全局更新 统一LINUX,MACOS,IOS的MAKEFILE文件 优化针对不同平台的系统宏定义 音视频编解码组件 修改统一了音视频组件名称定义 修改统一了音频和视频编解码模块名称定义 媒体帮助模块 取消了XEngine_SystemApi模块的依赖 媒体信息类获取函数的媒体数据信息现在采用协议头的媒体信息了 媒体信息类获取函数现在支持所有流的信息获取而不是只有一条音频一条视频了 媒体信息类获取函数优化获取信息的内容,支持获取扩展音视频信息 媒体信息类设置函数现在会设置失败不退出了 媒体信息类设置函数修正输出的媒体文件只有视频流的问题 媒体包模块 媒体连接类导出回调现在不是媒体索引而是媒体类型 媒体连接类导出的回调帧序列可以区分视频和音频了 媒体连接类修正在不同流索引导致的问题 媒体连接类修正主动设置退出功能不生效的问题 媒体连接类修正PTS,DTS等计算不正确导致的问题 音频编解码模块 修正了音频错误码获取函数在WINDOWS导出不生效的问题 采集模块 音视频采集现在获取信息采用媒体协议数据结构来获取了 音视频采集现在可以获取更多信息了 标准协议组件 HTTP服务模块和NAT模块修改统一了模块名称定义 HTTP服务模块和NAT模块修改了内部函数,统一了命名方式 HTTP协议模块 HTTP1服务类为了支持更多协议类型,不在对HTTP1.1进行处理,现在可以处理SIP协议了 HTTP1服务类优化投递包处理协议长度和链接字段的代码 SIP协议模块 SIP协议类增加了通过HTTP服务协议模块得到的数据进行处理数据的函数 SIP协议类对内部函数进行改造,用于支持处理HTTP协议模块得到的包数据 SIP协议类对负载数据包字段修改,现在通过堆的方式管理内存了,支持更大数据 ====================================================================================== XEngine-V8.0.0.1001PT Build20230319 全局更新 升级Ubuntu系统兼容22.04 升级Centos8.x系统改为RockyLinux9.x 升级MacOS系统支持为13.x 升级ffmpeg API版本到5.x 升级openssl API版本到3.x 取消了对库postproc的依赖 其他更新 全局头增加了版本类型的定义 应用程序增加了获取版权信息的参数 UNICODE改造 基础组件-基础模块,算法模块 网络组件 BT下载模块 统一了API函数版本 流媒体组件 流客户端模块 拉流类音视频支持解复用过滤器了 拉流类修正没有设置转流功能的时候导致的内存错误 拉流类修正设置转推流后回调函数数据错误的问题 音视频编解码组件 音视频帮助模块 设备类删除了列举设备函数 设备类重新设计了枚举设备函数,现在采用统一API,可以枚举所有输入输出的音视频设备了 音频编解码模块 编解码类删除了没有使用到的内部函数 编解码类解码器函数现在支持附加音频信息辅助解码了 视频编解码模块 流解码器初始化函数现在支持附加SPS和PPS等信息用于解码了 音视频播放模块 视频播放类增加通过YUV单独数据压入的函数 系统组件 系统函数模块 系统类获取系统信息修改参数获取方式,现在分别导出各自信息了 系统类获取系统信息修改LINUX获取方式,不在需要第三方程序了 删除了大量WINDOWS版本定义,不在需要 核心组件 安全加解密模块 证书类签名和验证函数现在不需要指定算法了 证书类签名和验证函数内部重新设计,简化了代码 证书类参数顺序现在密钥和KEY文件都放到最后了 证书类生成CA证书删除了KEY长度参数 证书类验证证书现在支持PEM和DER格式的证书了 证书类生成CA证书和签名函数现在KEY使用现有的而不是在内部生成了 加解密函数类数据加解密不在内部申请内存而是使用导出参数 加解密函数类RSA相关函数名称修改进行了统一 基础组件 基础模块 IP地址类修正IPV6扩展函数填充数据不完整的问题 IP地址类IPV6压缩函数使用新的方式进行压缩 字符串类删除了删除字符相关函数,没有意义 字符串类删除函数优化删除大小公式 字符串类获取中间字符串和改变字符串函数现在不在限制大小了 字符集类ANSI,UNICODE转换函数修改参数顺序,现在可以不关心大小了 字符集类ANSI,UNICODE转换函数现在不需要设置本地语言了,由上层用户设置 句柄类删除了句柄管理器相关函数 版本类获取版本信息支持获取发布类型了 ====================================================================================== 更多历史更新信息,请访问:https://www.xyry.org/UPHistory.txt