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
相关产品推荐
相关产品推荐

