ex3d cold boot starvation

This commit is contained in:
Steven Dan
2026-04-18 23:37:23 +08:00
parent d38a9cb5a4
commit 9e4adeaa14

View File

@@ -135,6 +135,7 @@ void UserBufferManagementInit(unsigned sampFreq)
#if USE_EX3D == 1
memset(ubm_ingress, 0, sizeof(ubm_ingress));
memset(ubm_egress, 0, sizeof(ubm_egress));
frame_index = 0;
assert(uc_ex3d_to_ubm);
while( !m_hThread ){}
@@ -145,6 +146,12 @@ void UserBufferManagementInit(unsigned sampFreq)
} else {
debug_printf("audio_ex3d_change_parameter() success\n\r");
}
// ② 预热:推一个零帧穿过 ex3d触发所有 worker 加载 + 首次同步
chan_out_buf_word(uc_ex3d_to_ubm, (const uint32_t *)ubm_egress,
UBM_TO_EX3D_CHANS * DSP_BLOCK_LENGTH);
chan_in_buf_word (uc_ex3d_to_ubm, (uint32_t *)ubm_ingress,
EX3D_TO_UBM_CHANS * DSP_BLOCK_LENGTH);
memset(ubm_ingress, 0, sizeof(ubm_ingress)); // 清掉哑帧输出
#endif
}
float fLevel[NUM_USB_CHAN_OUT] = {0,};