QCC3083/QCC3084/QCC3095/QCC5181 Le audio一对多广播BIS

QCC3083/QCC3084/QCC3095/QCC5181 Le audio一对多广播BIS
高通QCC方案,支持aptX adaptive、aptX lossless、aptX-HD、Ldac、AAC、SBC。

一对多广播BIS时支持lc3、aptX-adaptive、aptX-lite。

支持 aux、USB、spdif、i2s、a2dp音源输入。支持ble连接、控制、ota等。

广泛应用于广播系统。

示意图
在这里插入图片描述
Lc3 广播部分音频截图
在这里插入图片描述
void KymeraOutput_DisconnectStereoMainInput(void)
{
chain_endpoint_role_t in_roles[] =
{
EPR_SINK_STEREO_MIXER_L,
EPR_SINK_STEREO_MIXER_R
};

kymeraOutput_DisconnectViaResampler(in_roles, ARRAY_DIM(in_roles), &state.resamplers.main_input);

}

void KymeraOutput_DisconnectMonoMainInput(void)
{
chain_endpoint_role_t in_roles[] =
{
EPR_SINK_MIXER_MAIN_IN
};

if (state.chain_started)
{
    kymeraOutput_StopSplitter(state.splitters.main_input);
}

kymeraOutput_DisconnectViaResampler(in_roles, ARRAY_DIM(in_roles), &state.resamplers.main_input);
kymeraOutput_DestroySplitter(&state.splitters.main_input);

}

void KymeraOutput_DisconnectAuxInput(void)
{
chain_endpoint_role_t in_roles[] =
{
EPR_VOLUME_AUX
};

kymeraOutput_DisconnectViaResampler(in_roles, ARRAY_DIM(in_roles), &state.resamplers.aux_input);

}

void KymeraOutput_DisconnectBackgroundInput(void)
{
chain_endpoint_role_t in_roles[] =
{
EPR_SINK_STEREO_MIXER_BACKGROUND_L,
EPR_SINK_STEREO_MIXER_BACKGROUND_R
};

kymeraOutput_DisconnectViaResampler(in_roles, ARRAY_DIM(in_roles), &state.resamplers.background_input);

}

void KymeraOutput_LoadDownloadableCaps(output_chain_t chain_type)
{
ChainLoadDownloadableCapsFromChainConfig(kymeraOutput_GetChainConfig(chain_type));
}

void KymeraOutput_UnloadDownloadableCaps(output_chain_t chain_type)
{
ChainUnloadDownloadableCapsFromChainConfig(kymeraOutput_GetChainConfig(chain_type));
}

void KymeraOutput_MuteMainChannel(bool mute_enable)
{
kymeraTaskData *theKymera = KymeraGetTaskData();
kymera_chain_handle_t output = KymeraOutput_GetOutputHandle();
int16 gain_in_db = mute_enable ? VOLUME_MUTE_IN_DB : 0;
appKymeraSourceSyncSetMonoRouteGain(output, theKymera->output_rate,
appConfigSyncUnmuteTransitionSamples(), gain_in_db);
}

void KymeraOutput_Init(void)
{
appKymeraRegisterDspClockUser(&kymera_output_dsp_clock_user_if);
}

#ifdef INCLUDE_KYMERA_COMPANDER
void KymeraOutput_EnableSoundLimiter(void)
{
state.bypass_limiter = FALSE;
}

void KymeraOutput_DisableSoundLimiter(void)
{
if(KymeraOutput_GetOutputHandle())
{
DEBUG_LOG_WARN(“KymeraOutput_DisableSoundLimiter: Cannot disable - chain already instantiated”);
}
state.bypass_limiter = TRUE;
}
#endif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值