From 9e4adeaa14d0dfc770468bf457c2e7740e11793d Mon Sep 17 00:00:00 2001 From: Steven Dan Date: Sat, 18 Apr 2026 23:37:23 +0800 Subject: [PATCH] ex3d cold boot starvation --- .../app_usb_aud_phaten_golden_6ch/src/extensions/dsp.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sw_usb_audio/app_usb_aud_phaten_golden_6ch/src/extensions/dsp.c b/sw_usb_audio/app_usb_aud_phaten_golden_6ch/src/extensions/dsp.c index 65b94cb..7684ee7 100644 --- a/sw_usb_audio/app_usb_aud_phaten_golden_6ch/src/extensions/dsp.c +++ b/sw_usb_audio/app_usb_aud_phaten_golden_6ch/src/extensions/dsp.c @@ -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,};