📢 【三方库】ohos_webrtc v1.0.2 鸿蒙平台稳定性与质量提升

ohos_webrtc v1.0.2 已发布。本次升级聚焦该库稳定性与质量提升,兼容升级,开发者无需修改现有代码即可享受本次改进。推荐所有该库用户升级至本版本。

版本概览

类型 内容
稳定性 修复硬件视频编码器内存泄漏 #95、API 7.0.0 下相机采集器崩溃 #99
质量提升 本地分辨率实时动态变化 #94、音频轨道暂停与音量调节接口 #104、代码质量问题修复与 OAT.xml 更新 #96

稳定性提升

修复硬件视频编码器内存泄漏 [#95]

问题:硬件视频编码器在码率动态更新、编码器配置、关键帧请求等流程中通过 OH_AVFormat_Create() 创建的 OH_AVFormat 对象,在异常分支与关键帧请求路径下未调用 OH_AVFormat_Destroy() 释放,长时间通话/编码场景下内存持续增长。

修复

  • UpdateBitrate:补齐 encoder_format 空指针校验,并将 OH_AVFormat_Destroy() 提至返回前无条件执行,覆盖成功与失败所有分支。
  • Configure:将 format_ 的销毁与置空从成功分支移至 OH_VideoEncoder_Configure 调用之后无条件执行,避免异常返回时泄漏。
  • Encode 关键帧请求路径:将裸 OH_AVFormat* 替换为 RAII 封装 ohos::AVFormat::Create(),由作用域自动释放,消除遗漏销毁风险。

修复 API 7.0.0 下相机采集器崩溃 [#99]

问题:在 API 7.0.0 系统版本上,CameraCapturer::SelectCameraDevice 以局部临时变量持有 GetSupportedCameras() 返回的设备列表,临时对象生命周期结束后继续访问设备指针,引发崩溃。

修复:将相机设备列表提升为成员 cameraDevices_,由采集器统一持有其生命周期;并在 StopInternal 中调用 cameraDevices_.Reset() 一并释放,既避免悬垂访问,也防止资源泄漏。

质量提升

支持本地分辨率实时动态变化 [#94]

支持在通话过程中实时动态调整本地视频分辨率,无需重新建立连接,适配多变网络带宽与业务场景。

支持音频轨道暂停与音量调节接口 [#104]

新增音频轨道暂停与音量调节接口,提供更细粒度的音频控制能力,对齐原平台表现。

修复 sdk/ohos webrtc 多项代码质量问题并更新 OAT.xml [#96]

sdk/ohos/src/ohos_webrtc 下视频编解码、渲染、PeerConnection、媒体约束等模块进行了批量代码质量修复,共涉及 23 个文件(+158 / -74)。主要内容:

  • 消除魔法数字:将硬编码字面量提取为具名常量,如码率换算系数 kKilobitsToBitsMultiplier、出队超时 kDequeueInputBufferTimeoutMs、I420 平面偏移 kI420UPlaneOffsetNumerator/Denominator、每像素字节数 kRgbaBytePerPixel、可选参数个数 kMinArgsForStreamIds / kCreateDataChannelOptionalArgsCount 等,提升可读性与可维护性。
  • 代码格式规范化:统一 switch-casebreak 与花括号的位置,清理多余空行。
  • 合规扫描配置:更新 OAT.xml 过滤规则与 filteritem 类型,过滤上游 WebRTC 文件,避免头文件/版权扫描误报。

兼容性说明

  • 无 Breaking Changes,API 接口保持不变。
  • 本次变更以缺陷修复、代码质量改进与新增能力为主,均为非破坏性变更,现有代码无需修改。
  • 从 v1.0.0 起升级至 v1.0.2 均为兼容性升级。

升级方式

  • 鸿蒙原生:oh-package.json5"@ohos/webrtc": "^1.0.2",执行 ohpm install

相关链接

  • 文档:https://gitcode.com/CPF-ApplicationTPC/ohos_webrtc/blob/master/sdk/ohos/README.md
  • CHANGELOG:https://gitcode.com/CPF-ApplicationTPC/ohos_webrtc/blob/master/sdk/ohos/CHANGELOG.md
  • 反馈:https://gitcode.com/CPF-ApplicationTPC/ohos_webrtc/issues
Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐