XEngine-V9.30.0.1001 Build20251103 音视频编解码组件 媒体包处理模块 解封包移动视频位置修改使用方法,简化移动参数 解封包处理支持设置丢弃坏帧与生成pts支持 网络组件 套接字模块 获取网络连接类型修改获取方法,统一跨平台代码 系统组件 系统函数模块 系统类修正WMI查询接口多次初始化后失败的问题 硬件类获取序列号函数修改LINUX下获取磁盘序列号的问题 硬件类获取序列号函数重构了MACOS下获取序列号代码 硬件类统一了错误码 硬件类不在依赖XEngine_ProcFile模块,使用新的读取函数进行获取信息 进程类不在依赖XEngine_ProcFile模块,使用新的读取函数进行获取信息 进程类修改获取进程启动时间的IOS获取方法 系统文件模块 XEngine_ProcFile已经删除,不在使用 流媒体协议模块 MP4协议模块 封装类修改了设置时间基功能函数,现在从0开始了 封装类修改了音视频写封包函数,现在可以自动计算PTS时间戳写入了 核心组件 核心服务模块 删除了TCPXPoll模型以及代码,现在大型服务使用XCore,轻型服务使用Select ====================================================================================== XEngine-V9.29.2.1001 Build20251016 其他更新 修正优化安装脚本库名称连接导致的问题 MACOS删除了对13系统版本的支持,升级了编译环境,仅对14以及以上系统支持 优化CI编译发布效率 公用协议头增加了常用的用户注销,注册和登出协议 基础组件 基础模块 时间类修正获取TICK时间在某些系统时钟变化导致的问题 ====================================================================================== XEngine-V9.29.1.1001 Build20251014 其他更新 安装脚本修正rockylinux缺少包的问题 安装脚本修改ubuntu在高版本下的库安装名称 公用头文件扩展了新的缓冲区大小定义 协议头文件的验证结构和协议进行了修改和扩展 音视频编解码组件 音视频采集模块 采集器返回值类型错误的问题修正 音视频滤镜模块 音视频滤镜模块句柄现在修改为XHANDLE,采用C接口句柄 核心组件 池管理模块 错误码统一 ====================================================================================== XEngine-V9.29.0.1001 Build20251009 其他更新 公用头文件内存结构更新现在支持多个通道数据处理 音频内存结构修改使用了公用头的消息结构 视频内存结构修改使用了公用头的消息结构 音视频的内部帧和包内存现在改为函数内处理,而不是全局 音视频编解码组件 音频编解码模块 编解码修改管理器句柄使用方法,采用内存句柄 编解码获取编码器句柄参数修正内存处理错误导致的问题 编解码器修正编码没有设置时间基的问题 编解码重新设计了输入输出音频内存布局,现在支持更多FORMAT格式了 编解码简化了参数,并且解码支持提供时间戳给解码器了 编解码增加了单独释放新版本内存布局的函数 编解码初始化编码器现在支持设置设置音频编码数据头格式了 编解码的编码函数优化对于时间戳使用上的判断以及输出内容完善 帮助类音频队列发送数据现在支持更多格式了 帮助类音频队列接受数据简化了参数,提供了更多内容时间戳和帧大小 音视频采集模块 数据回调函数现在采用新的参数输出方法 数据回调现在区分音频和视频采集了 音视频主动读取函数修改输出参数修正数据遗漏问题 音频采集现在输出的内容更加丰富并且支持多种格式输出了 音频采集的时间戳使用了解码后的时间戳,而不是原始时间戳 视频采集的时间戳使用了解码后的时间戳,而不是原始时间戳 视频编解码模块 编解码修改管理器句柄使用方法,采用内存句柄 编解码获取编码器句柄参数修正内存处理错误导致的问题 编解码删除了编码DTS参数,因为没有作用,编码无需设置DTS 编解码修正初始化编码器没有设置帧率的问题 编解码修正初始化没有设置全局PPS,SPS导致推网络流失败的问题 编解码初始化现在硬件编码设置format为NV12格式了 编解码发送数据内存结构修改为消息结构,现在支持发送时间戳等信息 编解码返回的数据结构信息现在更多,更加完善 编解码的编码器现在支持设置视频流编码头的格式了 帮助类删除了帧合并拆分函数,没有作用 媒体包处理模块 封包类修正流索引查找问题 封包类修改优化时间基初始化方式 音视频滤镜模块 音频滤镜重新设计了内存布局处理方法,现在支持更多FORMAT格式了 音频滤镜修正多次内存申请导致内存溢出问题 音频滤镜简化了参数,集中到MSGBUFFER中处理 音频滤镜优化输出内容,现在有更多信息 视频滤镜修改发送数据的参数,现在使用消息结构,支持更多数据发送 视频滤镜返回数据完善,现在会有更多数据信息返回 视频频滤镜初始化功能现在对时间基帧率判断进行了优化 基础组件 基础模块 内存类现在可以处理MSG消息结构内存,支持申请和释放 ====================================================================================== XEngine-V9.28.0.1001 Build2025922 其他更新 增加了AlmaLinux9和10系统的支持 修正编译器缓冲区警告 重新设计了编解码组件的媒体时间戳使用方法,现在统一采用协议头AVCODEC_TIMESTAMP实现 帮助组件 数据库模块 MYSQL重新设计内存处理,采用智能指针方式 MYSQL删除了断线重连功能,断线重连需要自己实现 MYSQL现在增加了保持连接,内部线程通过PING实现 客户端组件 客户端套接字模块 UDPSelect修正绑定端口失败的问题 客户端帮助模块 客户端文件类速度限制现在支持默认参数不做设置 音视频编解码组件 媒体包处理模块 解包类优化帧率获取方法,使用真实探测帧率 封包类修某些时候切换流PTS过大造成的问题 封包类写封包函数现在支持写空封包用于刷新缓冲区 封包类写数据的时候修正流切换的时候上一个修正数据没有清理的问题 媒体帧处理模块 缓冲区实现使用了公用头的结构定义 音频编解码模块 音频编解码帮助函数现在接受音频队列数据默认都采用末尾数据填充了 音频编解码帮助函数音频队列数据接受函数修正填充数据大小不正确的问题 音频编码器现在FDK AAC编码器需要指定 音频编码器删除了设置码率等级的参数 音频编码器自定义PTS时间戳计算优化,从0开始了 视频编解码模块 视频编码器编码函数自定义PTS时间戳计算优化,从0开始了 标准组件 HTTP协议模块 HTTP1发送数据封包跨域字段不正确的问题修正 基础组件 基础模块 时间类修正获取GMT时间缩写日期不正确的问题 ====================================================================================== XEngine-V9.27.0.1001 Build2025902 其他更新 删除了Ubuntu20.04的支持 增加了Debian 13最新系统的支持 客户端组件 客户端套接字模块 TCP扩展客户端增加了投递删除客户端的函数 客户端推拉流模块 删除了推拉流模块,现在功能集成在媒体包处理模块中 基础组件 基础模块 字符串类字符串转换二进制数据现在支持大小写输出转换 音视频编解码组件 媒体包处理模块 转换类已经被删除,现在与Packet合并,使用Packet类实现 连接类已经被删除,现在与Packet合并,使用Packet类实现 打包类调整,现在打包和解包使用独立代码了 打包类现在使用新的方法自动计算时间戳了 打包类现在支持多音频流打包了 打包类修正AVCreate没有指定媒体索引的问题 打包类对媒体索引处理查找的时候进行了错误处理 解包类读取数据函数不在输出时间参数 媒体帮助模块 媒体信息类删除了没获取流,媒体,时间,码率相关函数,现在合并到媒体包处理模块中 音视频滤镜模块 音频滤镜现在支持设置原始时间基了,防止非标准时间基造成转换PTS问题 视频滤镜现在时间基使用单独的结构实现 帮助组件 日志模块 日志类修正某些时候没有开启写文件还处理文件内容的问题 核心组件 核心服务模块 心跳类扩展地址字符串大小,解决IPV6下溢出问题 TCPXCore修正主动关闭导致客户端关闭回调触发的问题 ====================================================================================== XEngine-V9.26.0.1001 Build20250819 其他更新 安装脚本修正跳过环境检查在某些情况下不生效的问题 安装脚本修正macos进行安装库报错的问题 安装脚本修正macos在进行安装删除在某些系统版本下权限问题 全局更新 套接字接受数据处理模型的时候不会在sleep了 套接字IO网络操作的时候修正关闭套接字顺序不正确导致的卡死问题 音视频编解码组件 媒体包处理模块 组包类删除了组包回调和输入流相关函数,通过write自己写入 组包类删除了状态标识函数 组包类输出流函数删除了开始结束设置函数,需要自己控制 组包类修改优化设置最后包时间戳,对于连接流的时间计算进行了优化 组包类增加了设置原始流时间基的函数 组包类修改了初始化,不在需要参数,现在使用单独函数创建自定义流 拆包类删除了分拆过程回调函数,需要自己主动获取 拆包类删除了输出流配置函数以及启动和状态信息相关函数 帮助组件 日志模块 现在支持清理打印功能了,设置后仅输出自身打印数据 修正强日志备份数据后新的数据不生效的问题 修正强日志每次打开后会覆盖老旧日志的问题 黑白名单模块 优化添加名单的时候数据多次拷贝的问题 流媒体组件 RTP协议模块 解包类修正H265分片合并数据重复头不正确问题 解包类修正AAC还原数据错误问题 解包类H264不在过滤AUD 封包类输出的数据类型使用新的数据结构保存数据 核心组件 核心服务模块 TCPXPoll模型修正关闭套接字崩溃问题 UDPSelect模型接受数据线程支持SELECT处理 基础组件 基础模块 XENGINE_KEYVALUE结构体移动到公用头文件中 ====================================================================================== XEngine-V9.25.0.1001 Build20250801 其他更新 公用头文件增加了路径最小和中间大小的长度定义 音视频编解码组件 音频编解码模块 编解码函数结构现在输出了Duration时间戳了 编解码删除了AudioCodec_Stream_GetTime函数,已经有了获取函数 编解码解码器现在aac使用默认解码而不是libfdk_aac解码了 编解码解码器时间基设置现在使用单独的参数设置了 编解码获取音频参数修正获取采样大小不正确的问题 帮助类音频输入输出队列的接受函数修正某些时候可能导致采样大小输出不正确 视频编解码模块 编解码现在支持设置解码器的时间基了 编解码删除了AudioCodec_Stream_GetTime函数,已经有了获取函数 编解码函数结构现在输出了Duration时间戳了 音视频采集模块 音视频主动读取数据函数现在支持输出时间戳信息了 音视频滤镜模块 音视频函数现在都为转换操作增加了输入输出Duration值 媒体包处理模块 封包类删除了AVFormat_Packet_SetPTSTime函数 封包类修改了AVFormat_Packet_SetLastPTS函数,现在可以设置自定义附加时间戳了 流媒体组件 RTP协议模块 解包类初始化不在指定包类型,增加了新的函数用于关联处理包类型 解包类组包函数进行了修改和重构 解包类现在支持复用包解包了.支持同一组数据多个负载类型 解包类现在支持指定AAC通道采样参数设置 组包类初始化不在指定包类型,增加了新的函数用于关联处理包类型 组包类现在支持复用包组包了.支持同一组数据多个负载类型 组包类删除了获取组包统计信息函数时间戳参数的获取 组包类修改时间和CSEQ相关函数现在都需要指定负载ID类型了 标准协议组件 HTTP协议模块 帮助类获取MINI类型现在支持自定义类型了 基础组件 基础模块 句柄类创建随机字符串修正拷贝字符串长度不正确导致某些时候会越界的问题 核心组件 核心安全模块 加解密类删除了摘要计算函数多余的初始化代码 ====================================================================================== XEngine-V9.24.0.1001 Build20250714 其他更新 修正Rockylinux 10下缺少ffmpeg库的问题 修正MACOS下的KQUEUE模式在某些设置事件不正确的问题 标准协议组件 DNS协议模块-新增 增加封包类,支持请求和响应封包,支持错误消息封包 封包类支持消息ID,请求消息,和响应列表打包 封包类支持A记录查询和PTR查询响应和请求封包 封包类响应封包支持简单压缩封包 增加解析类,支持解析消息ID,解析请求和解析响应数据列表 解析类支持解析A记录AAAA记录CNAME和PTR格式协议 增加帮助类,支持处理PTR的IP地址解析转换 流媒体组件 流媒体封包处理模块 封包类修正在主动写封包函数duration时间戳无效不正确的问题 客户端组件 客户端套接字模块 TCPXCore修正初始化的时候客户端状态不正确问题 TCPXCore修正发送函数没有判断是否允许发送的问题 TCPXCore修正Windows下PasueSend处理发送状态不正确导致发送回调错误触发问题 TCPXCore修正发送函数在接受暂停的情况下会被错误设置接受数据的问题 流媒体客户端模块 实时推流修正duration没有处理的问题 核心组件 核心服务模块 套接字操作修正IO操作没有返回错误的问题 TCPXCore修正Windows下PasueSend处理发送状态不正确导致发送回调错误触发问题 TCPXCore修正发送函数在接受暂停的情况下会被错误设置接受数据的问题 池管理模块 内存池现在对输入的参数进行了检查 内存池对内存对其字节进行了优化 内存池增加了获取小块内存使用列表和小块内存使用总大小的函数 内存池增加了获取大块内存使用列表和小块内存使用总大小的函数 内存池增加了获取指定内存的可用空间大小的函数 ====================================================================================== XEngine-V9.23.0.1001 Build20250702 其他更新 转换头文件_tcsxicmp修正函数名称错误的问题 xengine程序输出系统内容修改 增加了Rocky linux,centos,redhat 10(x64,arm64)系统支持 安装配置脚本修正macos下brew处理不正确的问题 对音视频相关处理内存对其全部采用默认自动对其 系统组件 系统函数模块 系统类修正获取系统版本在WINDOWS下获取家庭和教育版无效的问题 系统类增加获取系统进程列表的功能函数 客户端组件 客户端帮助模块 文件传输修正回调进度信息值不正确的问题 HTTP请求现在默认连接超时设置为2秒了 客户端推拉流模块 推流类优化关闭资源释放 实时推流简化推流填充时间 实时推流修正音频推流函数没有填充数据和采样大小的问题 客户端套接字模块 TCPXCore优化某些时候可能导致的MACOS下设置发送接受状态不正确的问题 音视频编解码组件 音视频采集模块 音视频采集器修改了时间基获取函数的参数导出方法,采用标准结构 音视频采集器增加了获取ffmpeg音视频参数结构的函数 音视频采集模块 音频采集器修改和优化关闭句柄和数据释放不正确的问题 音频采集器回调输出的是采样大小而不是数据大小了 视频采集器修改和优化关闭句柄和数据释放不正确的问题 视频采集器获取信息可以获取更多内容了 音频编解码模块 帮助类音频队列现在仅支持S16的采样格式了 帮助类音频队列发送函数修正数据内存布局错误导致的问题 帮助类音频队列非末尾数据获取数据重复内存导致的问题 实时解码修正没有传递数据导致解码空数据的问题 视频编解码模块 帮助类获取帧大小现在不需要传递内存对其方式了 核心组件 核心服务模块 TCPXCore优化某些时候可能导致的MACOS下设置发送接受状态不正确的问题 ====================================================================================== 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