You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows C++下5.1 PCM转Dolby Digital用于SPDIF播放的缓冲区问题

5.1 PCM转Dolby Digital压缩音频的缓冲区问题

问题说明

我正在编写一款C++程序,将5.1 PCM音频转换为5.1 Dolby Digital压缩音频,用于光纤Toslink/SPDIF USB接口播放。调试阶段在LF和RF通道使用正弦波PCM信号,后续会替换为Windows音频渲染捕获内容。当前问题:经libavcodec压缩后缓冲区过大,导致Windows及USB接口无法处理,循环中的memcpy出现缓冲区溢出;更新代码后仍触发AUDCLNT_E_BUFFER_TOO_LARGE错误。

初始代码

#include <iostream>...(省略完整代码)

更新代码

#include <iostream>...(省略完整代码)

运行结果

Result:0
Result:0
Result:0
Result:0
Result:0
Result:0
Result:0
Result:-2004287482
AUDCLNT_E_BUFFER_TOO_LARGE

内容的提问来源于stack exchange,提问作者NprogramDev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 17:26:08