XEngine-V9.22.0.1001 Build20250620 其他更新 安装脚本修正在MACOS上面处理Brew安装不正确的问题 音视频编解码组件 音视频帧处理模块 码流转换修改转换函数,现在输出为单独参数输出并且是数组类型了 客户端组件 客户端推拉流模块 实时推流现在支持设置音视频的推流内部自动计算推流速率延迟 编码推流现在支持设置音视频的推流内部自动计算推流速率延迟 拉流类初始化超时设置参数优化统一 系统组件 系统函数模块 文件类枚举文件解决*结尾通配符无法处理问题 帮助组件 日志模块 日志类增加了新的日志级别DETAIL详细日志 日志类修改判断日志输出权限处理方法,简化代码 核心组件 池管理模块 线程池优化内部数据任务结构定义 线程池派发模式现在投递线程不在需要设置序列而是输出线程唯一编号 线程池派发模式优化保存数据结构,使用高性能队列 线程池派发模式跳过任务优化处理代码 线程池派发模式修正投递任务最小选择的时候统计忙碌线程不正确的问题 线程池派发模式支持设置CPU亲和性和线程优先级了 线程池派发模式修改回调现在支持任务ID输出 线程池竞争模式修正执行任务某些时候线程处理不正确导致的问题 线程池竞争模式现在支持任务ID输出了 线程池无队列模式支持设置CPU亲和性和线程优先级了 线程池无队列模式修正内存溢出问题 核心服务模块 TCPXCore修正状态不正确导致设置发送回调和发送状态错误的问题 基础组件 基础模块 时间类获取时间差删除了最后一个参数,没有意义 时间类增加了获取ISO8601格式时间获取函数 ====================================================================================== XEngine-V9.21.0.1001 Build20250610 其他更新 公用头删除了XNULL,使用系统默认的NULL 安装脚本修正brew新的Mongo-c库导致的问题 音视频编解码组件 音视频帧处理模块 码流帧修改参数配置函数现在目标参数可以配置为NULL了 码流帧转码函数修正内存没有释放导致的问题 核心组件 核心安全模块 编解码类删除了BCD相关编码函数,在流媒体服务中集成了 编解码类删除了crc2函数(CRC32-MPEGTS)函数,由TS模块集成,只保留标准IEEE的CRC32计算 编解码类增加了base64url和base64互转函数 系统组件 系统函数模块 文件类枚举文件现在支持通配符了 客户端组件 客户端推拉流模块 简化了推拉流客户端错误码 拉流类现在删除了转推流功能,必须使用推流类实现了 编码推流增加了设置输出信息和创建流的函数 编码推流修改了初始化方法,现在初始化不传递推流参数了 编码推流修改了写头函数参数,现在不传递音视频信息参数 编码推流修改自定义PTS和DTS参数处理流程,现在直接转换不做处理了 编码推流修正音视频推流原始时间基处理不正确的问题 编码推流删除了些尾部函数,现在通过close集成不需要单独调用了 编码推流删除了获取是否写入音视频信息和打开文件函数.不在支持 原始推流修改了初始化方法,现在初始化不传递推流参数了 原始推流增加了设置输出信息和创建流的函数 原始推流增加了写媒体头和媒体尾的函数 原始推流写媒体数据函数删除了自定义PTS和DTS参数,编码器会自动处理 原始推流删除音频重采样支持,需要使用滤镜模块实现 文件推理已经被删除,功能冲突 API帮助模块 HTTP操作类修改自定义头解析方法,优化解析数据格式 HTTP操作集现在合并了重复的代码 HTTP操作集设置URL函数现在不在设置头和负载数据,通过执行函数设置 HTTP操作集现在执行线程只设置执行一个了,不在支持设置多次执行 HTTP操作集修正设置没有设置HTTP负载内容的问题 HTTP操作集修正线程状态和HTTP不正确导致的问题 HTTP操作集获取状态现在支持等待线程退出了 ====================================================================================== XEngine-V9.20.0.1001 Build20250529 其他更新 安装脚本修正某些情况下判断框架文件是否存在不正确的问题 安装脚本修正安装库文件目录不正确的问题 公用头文件现在删除了与WINDOWS的重复定义,采用自定义类型,防止冲突 禁用了Makefile的缓冲区大小检查,不在关注 音视频编解码组件 媒体包处理模块 解包类修正移动媒体文件时间戳没有转换导致不准确的问题,并且修改类型为浮点型 解包类主动读取媒体包信息可以获得当前媒体包时间了 转码类修改移动媒体时间的参数类型为浮点型.支持小于秒的定位 封包类增加了设置最后时间戳的功能,方便做手动连接 封包类增加了自定义增删PTS时间戳的函数 封包类设置开始现在统一了写媒体头了,不需要单独处理了 封包类手动写封包数据支持输出当前媒体写的时间了 封包类写媒体duration时间戳为0自动计算优化 帮助组件 日志模块 日志初始化支持设置日志文件是追加还是覆写日志文件了 日志备份文件的时候修正缓存日志打开模式不正确的问题 客户端组件 客户端帮助模块 API接口类修正HTTP请求获取状态码某些时候不正确的问题 ====================================================================================== XEngine-V9.19.0.1001 Build20250516 其他更新 删除了Raspbian,aliyun系统环境支持 增加了Fedora系统编译发布支持,支持42,41版本 优化makefile编译脚本,完善参数传递 升级了MACOS的openssl为最新版本 安装脚本修正安装文件目录不正确的问题 安装脚本优化系统判断处理逻辑 客户端组件 客户端模块 TCPXCore现在MACOS下也和LINUX一样发送接受都使用边缘触发模式了 TCPXCore增加了暂停接受和发送的功能函数,并且可以获得状态 音视频编解码组件 音视频帮助模块 媒体类获取音视频信息函数如果没有获取到平均帧率将改为获取媒体帧率 核心组件 池管理模块 内存池增加支持自动设置内存超时时间的功能 内存池调整小页面块内存大小为10KB 内存池修正不会重复还原内存了 内存池现在支持chunk中最后的chunk直接完全回退还原给内存池而不是设置没使用了 内存池修改内存释放回调,现在在内存自动释放的时候会有回调通知了 连接池调整内部连接池大小为XENGINE_MAX_COUNT_NUMBER 核心服务模块 TCPXCore现在MACOS下也使用和LINUX一样发送接受都使用边缘触发模式了 UDPXCore现在MACOS下也使用和LINUX一样发送接受都使用边缘触发模式了 基础组件 基础模块 时间类获取系统时间现在使用BaseLib_Time_TTimeToStuTime实现了 时间类修正BaseLib_Time_TTimeToStuTime函数获取值不完整的问题 时间类设置和获取XTP时间简化了 时间类获取XTP时间修正获取的微秒不正确的问题,并且删除了time_t参数获取 环境类对函数进行了安全性改造 算法模块 字符串类删除了Algorithm_String_HEXToInt函数 算法类删除了Algorithm_FSort_QSort函数,限制过大 优化统一了错误定义 ====================================================================================== XEngine-V9.18.0.1001 Build20250509 其他更新 优化代码和安装脚本现在支持DEBIAN 12系统 安装脚本修正跳过环境检查操作不生效的问题 安装脚本现在代上架构平台了 启用了非WINDOWS系统的优化编译选项和_RELEASE编译标记 其他编译警告信息修正,FLV,HLS,RTMP 协议头权限级别修正用户级别信息不匹配的问题 核心组件 核心安全模块 证书类修正编译警告问题并且修改转码时间某些时间下不正确的问题 标准协议组件 代理协议模块 SOCKS代理核心删除了没有使用的IPV6连接代码 SIP协议模块 客户端类修正设置状态崩溃的问题 音视频编解码组件 音频编解码模块 音频编解码类修改过期代码 音视频帮助模块 媒体信息类修正获取媒体信息和时间没有销毁资源的问题 媒体信息类增加了获取媒体总码率和流码率的函数 核心组件 核心服务模块 TCPXCore修正主动关闭客户端某些时候会导致二次触发关闭事件的问题 基础组件 基础模块 句柄类内部生成随机字符串现在全部采用新的引擎来生成了 句柄类生成的GUID现在是标准的格式了 时间类timeofday时间函数处理现在使用新的C++标准实现 时间类BaseLib_Time_GetTickCount现在使用新的C++标准实现,并且取消了BaseLib_Time_GetTickCount64函数 时间类获取GMT时间格式删除了最后一个参数,不使用 ====================================================================================== XEngine-V9.17.0.1001 Build20250425 其他更新 CI现在直接支持Ubuntu22.04和Ubuntu24.04 ARM64版本发布 安装脚本ubuntu的版本输出方式修改 音视频编解码组件 音视频滤镜模块 音频滤镜修改了输出缓冲区结构,使用了音频模块的缓冲区结构 音频滤镜修改输入输出,现在可以输入输出pts息了 视频滤镜修改了输出缓冲区结构,使用了音频模块的缓冲区结构 视频滤镜修改输入输出,现在可以输入输出pts和dts信息了 视频编解码模块 视频编码现在支持设置dts时间戳了 视频编码自定义pts的时候不在内部处理自动pts了.完全交给用户计算 视频帮助增加了获取视频编解码器支持的帧率函数 音频编解码模块 音频帮助增加了获取音频编解码器支持的采样率函数 音频帮助增加了获取音频编解码器支持的通道函数 流媒体组件 RTMP协议模块 解析类修正没有区分CSID导致内部解析数据错误的问题 核心组件 核心服务模块 管道通信命名管道修正删除缺少删除管道文件参数的问题 基础组件 基础模块 触发器修改初始化句柄现在通过返回值获取 触发器修改设置触发器通过数据结构设置了 触发器获取间隔时间函数现在可以获取指定时间类型 触发器删除和销毁函数为NULL参数将返回错误 触发器现在支持指定时间触发了 触发器现在支持输出回调函数的时间偏移值了 触发器现在支持处理完一个计时器自动释放了 触发器修正销毁错误的线程分离问题 触发器修改TIME和其他类型时间处理方法,解决触发器失效问题 触发器修改了内部锁和触发方式,使用了事件触发器.解决性能问题 ====================================================================================== XEngine-V9.16.0.1001 Build20250421 其他更新 增加了UBuntu20.04系统发布支持 增加了非WINDOWS系统的_DEBUG编译宏支持 安装脚本MAC升级到ffmpeg7版本支持 安装脚本linux增加了新的库支持,ubuntu现在支持20.04_x64系统了 安装脚本linux的ffmpeg编译方法更新了,更加清楚简介 音视频编解码组件 媒体包处理模块 媒体转换和封包所有系统都支持自定义输出回调了 音频编解码模块 帮助类增加了获取指定音频编解码器支持的采样格式列表的函数 编解码类解码器支持设置请求解码器输出指定采样格式,如果不支持返回错误 视频编解码模块 帮助类增加了获取指定视频编解码器支持的采样格式列表的函数 帮助组件 日志模块 日志输出对于NULL句柄直接返回错误而不是崩溃了 客户端组件 客户端模块 TCPXCore客户端修改退出逻辑,现在退出逻辑更合理 核心组件 核心服务模块 TCPXCore和UDPXCore服务修正关闭服务退出句柄处理不当崩溃问题 管道通信命名管道WINDOWS类型修改为字节型 管道通信命名管道修正关闭管道会导致全部管道关闭的问题 管道通信命名管道现在LINUX创建不会打开管道了 管道通信命令管道打开函数现在需要制定读或者写模式,而不是读写模式 管道通信命名管道不在区分服务后客户端模式,只使用读写模式并且删除的时候可以指定是否删除管道文件 管道通信命名管道现在不需要设置名称结果了,内部自动处理 管道通信命名管道修正创建失败返回正确的问题 管道通信命名管道修正连接处理句柄使用不当的问题 管道通信命名管道修改内部缓冲区大小 管道通信邮槽现在不需要设置名称结果了,内部自动处理 基础组件 基础安全模块 删除了文件操作类相关安全函数,兼容差 ====================================================================================== XEngine-V9.15.0.1001 Build20250405 音视频编解码组件 媒体包处理模块 封包类现在可以写入封包信息了,用于自动计算duration 流媒体组件 RTMP协议模块 组包函数现在data和cmd的打包函数在打包字符串数据的时候如果长度0可以自动计算了 客户端组件 客户端推拉流模块 实时推流的音频删除了重采样支持,现在需要在外部重采样 实时推流的音频AAC编码现在可以自动选择libfdk_aac库了 实时推流的视频增加了GOP设置支持 编码推流删除了视频的duration时间处理,采用默认 文件推流修改了推流的处理时间计算方法 帮助组件 日志模块 日志类默认日志级别设置为INFO了 日志类增加了新的颜色属性(黄色) 日志类日志输出间隔时间设置修改现在只支持NOTICE,INFO,DEBUG,TRACK了 日志类修正输出的WINDOWS的TRACK日志输出不正确的问题 日志类间隔时间输出现在支持文件了 日志类间隔时间输出的时间统计问题修正 日志类颜色设置现在可以传递NULL参数表示还原 核心组件 池管理模块 内存池初始化使用更新,现在只设置内存个数,最大个数和最大内存大小了 内存池取消获取内存池内存对其功能,申请的时候已经处理了 内存池释放内存修正处理完毕不退出和处理和合理的问题 内存池支持最大内存个数大小限制了 内存池修正小块内存复用不正确无效的问题 内存池现在支持内存CHUNK复用启用和关闭了 内存池错误码优化 ====================================================================================== XEngine-V9.14.0.1001 Build20250321 其他更新 修正LINUX安装脚本处理删除引擎不正确的问题 LINUX安装脚本升级了UBUNTU和ROCKYLINUX的FFMPEG编译版本为7.1.1 Windows的开源库依赖版本全部进行了更新 修改WINDOWS_ARM64安装脚本库名称 流媒体组件 RTMP协议模块 修改某些请求连接确认包合并的无法处理的问题 音视频编解码组件 音频编解码模块 音频编解码删除了重采样功能,请使用filter实现 音频编解码对于AAC编码现在默认使用libfdk_aac了(如果支持) 音频编码支持AAC编码质量等级设置 音频帮助类增加了音频FIFO功能类,并且支持末尾填充 音频编解码类解码器修正输出缓冲区大小计算错误导致的问题 音频编码器优化对于fdkaac的配置启用问题 视频编解码模块 编码器删除了多余的码流设置代码 媒体包处理模块 封包类不在自动计算duration值了,交给底层自己处理 系统组件 系统配置模块 增加了WINDOWS注册表读写函数功能支持 系统函数模块 硬件类CPU信息现在支持Windows ARM64版本获取CPU名称和制造商了 ====================================================================================== XEngine-V9.13.0.1001 Build20250304 其他更新 安装脚本修正rockylinux无法清理的问题 CI增加了新的系统发布,现在支持RockyLiunx9 ARM64了 CI增加了新的系统发布,现在支持Windows ARM64了 核心组件 核心安全模块 修改代码风格,统一空格风格类型 编解码类修改URL编解码,优化修正某些特殊字符处理问题 音视频编解码组件 音视频帮助模块 媒体信息类增加了获取媒体开始时间的函数 媒体信息类获取时间修正信息流处理导致的错误 媒体信息类获取音视频信息现在可以获取视频的B帧数和GOP大小了 系统组件 系统函数模块 文件类枚举文件类增加了UNICODE版本,现在支持ANSI和UNICODE函数处理 文件类删除和创建多级目录现在支持UNICODE和ANSI版本,用于多语言处理 文件类获取文件属性现在支持UNICODE和ANSI版本 文件类保存缓冲区数据现在支持UNICODE和ANSI版本 文件类创建稀疏文件函数现在支持UNICODE和ANSI版本 文件类拷贝文件函数现在支持UNICODE和ANSI版本 基础组件 基础模块 字符串类分割路径函数和修复路径函数现在支持UNICODE和ANSI版本了 字符串类删除字符串和改变字符串以及替换字符串函数现在支持UNICODE和ANSI版本了 字符串类获取开始结束分割字符串和获取字符串KEY,VALUE函数现在支持UNICODE和ANSI版本了 字符串类分割字符串函数现在支持UNICODE和ANSI版本了 ====================================================================================== XEngine-V9.12.0.1001 Build20250218 其他更新 公用头文件增加了新的路径字符串大小宏定义,现在采用了新的路径宏 安装脚本修正linux系统缺少环境和权限执行问题 修改基础组件的整数转换相关编译问题 修改系统组件的整数转换相关编译问题 音视频编解码组件 媒体包处理模块 封包类修正写封包函数对于Duration处理不正确的问题.支持可变时间 媒体帮助模块 媒体信息类获取函数现在只获取媒体的一些META信息了 媒体信息类增加了获取背景图片的单独函数 媒体信息类获取流函数删除了获取码率的功能,增加了获取流格式的成员变量 媒体信息类获取音视频信息函数增加了视频获取媒体帧率的基值 媒体信息类获取媒体时间函数现在支持-1获取媒体时间>-1获取流时间,并且获得的时间基统一了 帮助组件 日志模块 日志类级别优化,现在级别顺序和名称更好了 日志的开所有和关闭所有修改,不设置级别默认开启所有日志 系统组件 系统函数模块 文件类修正某些特殊格式和语言导致枚举文件出错的问题 文件类枚举文件修正文件名缓冲区大小不合适的问题 文件类枚举文件修正某些时候转换字符集处理长度不正确的问题 系统配置模块 配置类修改读取配置返回的类型为size_t 基础组件 基础模块 字符串类替换函数修正数据长度不一致导致内容错误的问题 ====================================================================================== XEngine-V9.11.0.1001 Build20250122 其他更新 修正发布程序后WINDOWS缺少公用头文件的问题 安装脚本修正在rockylinux下会造成环境安装异常的问题 安装脚本继续增加自编译ffmpeg安装附加库 RockLinux发布的版本使用最新版本,解决老旧版本问题 RockLinux修改默认安装目录,解决编译运行找不到路径的问题 公用头文件修改XNETHANDLE,解决VS类型自动识别错误 核心组件 核心服务模块 UDPXcore修改在linux和mac等系统下退出不处理recv了 OPTSocket类现在被删除了.集成到了基础库IO类中 安全模块 SSL客户端现在的读写操作支持超时设置了 SSL服务端的读写操作现在支持超时设置了 客户端组件 客户端模块 客户端套接字操作类被删除,使用了基础库IO操作函数实现 客户端TCP,UDP使用了基础库IO函数库来实现IO操作了 TCP客户端连接超时简化了超时处理代码 音视频编解码组件 音频编解码模块 帮助类现在获取帧大小的函数修改了使用方法 基础组件 基础模块 IO操作类增加,支持OPTSOCKET所有功能,用于IO输入输出操作 IO操作类新增加了端口重用的函数 IO操作类绑定函数现在支持设置绑定到指定IP网卡上 ====================================================================================== XEngine-V9.10.0.1001 Build20250110 其他更新 Linux安装脚本修正安装ubuntu22.04环境问题 Windows安装脚本现在支持安装模块到系统目录下了 Windows安装脚本现在可以不重复写头文件目录了 Windows编译现在全部增加了UTF8标志解释,可以在其他语言系统上正确显示内容了 CI修正32位windows缺少模块问题 Makefile现在支持VCPKG的三方库了 Android现在支持postgre和mongoc数据库操作了 IOS现在支持postgre数据库了 RockyLinux9编译发布支持 安装脚本对于自编译的ffmpeg现在使用了另外的目录 安装脚本修正某些非常规系统配置错误的问题 帮助组件 日志模块 日志现在支持设置日志个数无限制和大小无限制了 删除了UNICODE日志支持,因为不在需要了 数据库模块 MYSQL数据库支持MARIADB和MYSQL客户端了 MYSQL数据库现在支持客户端SSL证书了.没有设置的情况下不验证服务端证书 二进制包模块 修改统一错误码定义 黑白名单模块 修改统一错误码定义 音视频编解码组件 视频编解码模块 视频解码器的硬解码现在使用了新的模式来解码,解决某些遗留问题 视频解码器解决在某些情况下硬解失效导致转软解的问题 音视频滤镜模块 修改统一错误码定义 音视频帧处理模块 修改统一错误码定义 系统组件 系统配置模块 文件配置修正写空白数据的时候头不正确的问题 基础组件 基础模块 字符集类增加了UTF和UNICODE的互转函数 时间结构体定义名称修改 ====================================================================================== XEngine-V9.2.0.1001RC Build20241220 其他更新 WINDOWS下可以通过脚本配置X86-64,x86-32位环境了 LINUX安装脚本简化了安装包脚本代码 LINUX安装脚本修正UBUNTU22.04,24.04新版本兼容性问题 更新了程序编译版本信息 发布GIT删除了ANDROID和IOS版本,将通过GITHUB发布页面发布了.优化GIT大小 系统组件 系统函数模块 修改了某些结构数据字段定义 系统类删除了获取CPU个数的函数,现在使用硬件CPU信息获取 硬件类获取CPU信息函数现在支持获取CPU的内核和线程数量了 系统配置模块 配置文件类修正安全函数使用不当造成读写配置失败的问题 基础组件 基础模块 字符串类文本替换修正某些情况下造成内容丢失的问题 计时器类修改函数定义名称,统一命名规则 BIT网络流被移动到了网络组件的帮助函数模块中 核心组件 核心安全模块 修改了摘要算法名称命名定义 修改了安全服务端类的命名规则 证书类修正文件不存在没有处理异常导致的问题 客户端类修正没有使用证书无法初始化的问题 ====================================================================================== XEngine-V9.1.0.1001BT Build20241202 全局更新 VS项目全局采用静态连接第三方库 VS项目代码环境问题修改 VS项目依赖项库使用MD静态库 xstring为系统定义了,不在需要模块间定义 修改某些模块系统编译字符集不正确的问题 移动平台ANDROID和IOS的第三方库采用了新的方法编译.更加方便了 音视频编解码组件 媒体包处理模块 禁用了FFMPEG7.x版本下写入回调支持 客户端组件 客户端模块 UDP选择模型类发送函数现在需要指定IP版本了 帮助组件 数据库模块 MYSQL类从MARIADB转换为MYSQL客户端的库 MYSQL类现在支持移动平台ANDROID和IOS了,采用mariadb 解压缩模块 文件解压缩现在支持移动平台ANDROID和IOS了 网络组件 网络帮助模块 删除了域名类,电子邮件类,集成到网络地址模块 增加了网络地址大小端处理类 网络地址模块-新增加 集成了IP地址类,网络域名类,电子邮件类 系统组件 系统配置模块-新增 增加支持配置文件处理功能 核心组件 核心安全模块 获取错误码函数名称修改 基础组件 基础模块 错误定义被重新修改,优化了错误码 地址类被移除,现在集成到网络地址处理模块中 大小端类已经被移除.现在集成到网络帮助模块中 文件类已经被移除,现在集成到系统配置模块中 字符集类内部代码重新实现,现在内部统一采用iconv实现,更加通用 字符串类的删除字符函数现在支持删除所有指定的字符串了 安全模块 增加了文件安全操作函数支持 ====================================================================================== XEngine-V9.0.0.1001PT Build20241111 全局更新 删除了__CENTOS__和__UBUNTU__宏定义,统一使用__LINUX__,不在区分CENTOS和UBUNTU了 删除了关于CENTOS转换代码,LINUX统一使用UBUNTU了 重新设计了MAKEFILE编译脚本,现在更加统一更加标准了 更新C++标准支持到C++20 增加了webassembly内部支持 ANDROID,IOS,MAC,LINUX的编译命令进行了统一 输出文件夹的LINUX和WINDOWS被重新设计了 windows编译发布安装脚本现在不在区分x86,x64了,发布的架构都是x64 windows的VS编译现在支持debug x64了 macos系统现在兼容macos13-macos14,arm和x86编译了 C++编译器版本全部更新到C++20版本支持,C编译器更新到C17版本 makefile修正在mac高版本上某些符号不支持的问题 makefile现在ubuntu22.04系统的ffmpeg不在使用系统自带的了 makefile现在支持指定ARCH架构了 其他更新 安装脚本 优化文字颜色显示和统一文本颜色,现在安装文本颜色看起来不杂乱了 删除了所有文字背景颜色显示 基础组件 基础模块 基础模块函数和名称全部修改,删除了函数名称Operator,简化函数名称 基础模块增加了BaseSafe库的支持 字符串类替换函数修正某些时候数据拷贝出错的问题 帮助组件 日志模块 日志类变量输出修正多个相同变量的时候扩展不完全的问题 客户端组件 客户端SSL模块-已经删除了,合并到加解密核心模块中 核心组件 核心安全模块 名称修改,现在模块名称修改为XEngine_Cryption.所有函数名称也对应修改了 客户端SSL通信功能类已经合并到此模块中 帮助类相关函数已经删除了,并且开源集成到其他项目中了 ====================================================================================== 更多历史更新信息,请访问:https://www.xyry.org/UPHistory.txt