C SDK 更新记录
2.5.0
升级注意
TIRTCCALLBACKS末尾新增on_sleep_wakeup_info回调字段。升级时不能只替换动态库,必须配套更新头文件并重新编译;创建TIRTCCALLBACKS时应先整体清零,不使用此能力时将该字段保持为NULL。TiRtcInit()会将 TGTRP 网络轮询超时时间初始化为10 ms。需要自定义时,应在TiRtcInit()之后设置TIRTC_OPT_TGTRP_POLL_TIMEOUT;此前设置的值会被初始化过程覆盖。- 在使用标准 C 输出流的平台上,SDK 默认控制台日志统一输出到
stdout。只采集stderr的应用需要调整日志采集方式;通过TiRtcLogSetCallback()接入日志的应用不受影响。
新增
- 新增
TIRTC_SLEEP_WAKEUP_SERVER、TIRTC_SLEEP_WAKEUP_INFO和on_sleep_wakeup_info,用于取得低功耗休眠模块连接服务器所需的地址和登录数据。回调在TiRtcStart()内由调用线程同步触发,并且仅在服务端返回有效休眠参数时触发。参见接入低功耗休眠唤醒。
优化
- 设备端会在监听连接所需的临时信令凭证即将到期或失效后自动刷新,降低设备长时间在线后无法接收新连接的风险。
TiRtcLogSetCallback()现在也会接收通过TiRtcLogSetLevel()启用的 TGTRP 底层日志。- 优化通过 WHIP 建立连接时的 TGTRP 实时音视频传输协议版本协商;只有连接双方支持匹配版本时才启用该传输方式,提升自定义 RTC 服务的兼容性。
- 限制异常超大 HTTP 响应体可能造成的内存占用。
修复
- 修复设置
TIRTC_OPT_RESTRICTED_NETWORK后,该值未实际传递到底层传输组件的问题。此问题只影响需要受限网络适配的场景。 - 修复单个过大音频帧可能持续占满发送历史、导致后续音频无法发送的问题,并优化发送缓冲压力下的音频处理。
- 修复设备长时间运行时,32 位毫秒时钟发生回绕或倒退后底层定时任务可能停止推进的问题。
2.4.0
破坏性变更
- 移除
TiRtcLogConfig()。升级时删除旧调用,并配套更新头文件和库。需要保存或转发日志时,使用TiRtcLogSetCallback()接入应用日志系统,由应用负责文件写入、容量限制和滚动;日志等级仍通过TiRtcLogSetLevel()设置。参见配置 SDK 日志输出。
修复
- 修复 HTTP/HTTPS 处理过程中部分内存分配失败可能导致崩溃的问题,以及 URL 字段过长时的缓冲区越界问题。
- 修复
TiRtcGetBuildInfo()返回的传输组件版本显示不准确的问题。
2.3.0
升级注意
TIRTCCALLBACKS新增on_update_bitrate回调字段。升级时,头文件和库必须配套更新。应用不使用视频发送码率建议功能时,on_update_bitrate必须为NULL。TIRTC_OPT_NETWORK_TYPE设为TIRTC_NETCONN_4G后,TIRTC_OPT_ICCID为必填项。未在TiRtcStart()前提供 ICCID 时,TiRtcStart()返回TIRTC_E_INVALID_PARAMETER。参见配置 4G 设备的网络信息。stream_id仍只允许取值0..15。2.3.0 增加了范围校验;旧应用如果使用其他值,音视频和流消息发送、关键帧请求及音视频订阅接口会返回TIRTC_E_INVALID_PARAMETER。- 2.3.0 新增
TIRTC_E_HTTP_*错误码。旧应用如果会根据具体错误码执行重试或告警,需要补充相应处理;只判断返回值是否为0的应用不受影响。
新增
- 新增 TGTRP 实时音视频传输协议。该协议由 TiRTC 自研,针对弱网络环境进行了深度优化。传输方式由 SDK 在建立连接时自动协商,应用不需要修改现有的音视频发送逻辑。
- SDK 可以根据网络可用带宽向设备应用提供视频发送码率建议。设备应用调用
TiRtcConnSetVideoBitrateParams()设置码率参数,并在收到on_update_bitrate回调后调整视频编码器。参见根据网络带宽调整视频发送码率。 - 新增
TIRTC_OPT_TGTRP_POLL_TIMEOUT,用于设置网络轮询超时时间。增大取值可以降低系统负载,但会增加网络响应延迟。 - 新增
Taixin TXW82X和Goke GK7205V10平台支持。
优化
on_conn_accepted会在命令、音频和视频通道全部就绪后触发。设备应用收到回调后,可以立即使用hconn发送数据。TiRtcGetBuildInfo()现在会返回 C SDK、底层传输组件和 mbedTLS 的版本与构建时间。如果发布包写入了提交标识,返回结果中也会包含该标识。- 视频发送缓冲区满或恢复时,日志会记录
stream_id、当前占用和容量上限,便于定位TIRTC_E_BUSY。
修复
- 修复启用 HTTPS 后,
TIRTC_OPT_SERVICE_ENDPOINT仍不接受https://地址的问题。 - 修复部分 HTTP 连接关闭或响应格式异常时返回错误码不准确的问题。
2.2.1
变更
- 优化 ESP32-S3 和 ESP32-P4 的 FreeRTOS 线程资源管理:ESP32-S3 改用 ESP-IDF 扩展任务接口管理 PSRAM 线程栈,ESP32-P4 的线程栈改为使用 PSRAM,降低其对内部 RAM 的占用。
修复
- 修复 ESP32-P4 在 ESP-IDF 5.5.x 下 SoC 寄存器头文件路径不匹配导致的编译问题。
2.2.0
破坏性变更
- 设备端启动前必须通过
TiRtcSetOption(TIRTC_OPT_CLIENT_ID, ...)设置client_id。未设置client_id会导致启动失败。升级到 2.2.0 前,请为每台设备准备一个稳定的硬件或生产标识,长度为 1 到 64 个可打印 ASCII 字符,并在设备端启动时上报,具体规则见连接设备。
新增
- 提供
TiRtcGetVersion()和TiRtcGetBuildInfo(),便于运行时确认 SDK 版本和构建信息。 - 新增 AMR 音频格式定义。
修复
- 修复 Windows 平台 SSL 握手失败的问题。
- 修复连接关闭时被叫方响应不及时的问题。