关于qcc512x ldac开发的问题
使用的sony的官方ldac资料包。最新今年2月份的。发现aac功能不正常,ldac和其他codec正常。只要切换到aac就没声音了,这时候再切换到其他codec就一直没声音,只能重启回到非aac模式才正常工作。
Updated LDAC Decoder Evaluation Kit for QCC512x and ADK6.4.0
Sony 官方的Ldac资料有问题。 解决了,但忘了怎么解决的。反正看下那部分代码影响,然后增加的ldac的分支。 EdwardLee 发表于 2021-6-15 19:49
解决了,但忘了怎么解决的。反正看下那部分代码影响,然后增加的ldac的分支。 ...
有大概方法吗 骑着蟑螂去上学 发表于 2021-6-16 13:02
有大概方法吗
大概是这里影响的,跟一下代码,看下那里影响的,增加个分支。
audio_input_a2dp_chain_config_stereo.c
kymera_chain_handle_t audioInputA2dpCreateStereoChainWithoutSplitter(audio_codec_t decoder)
{
#ifdef ENABLE_LDAC_SINK
if(decoder == audio_codec_ldac)
{
operator_config_t filterldac[] = {getDecoderFilterLdac(decoder), getRemoveSplitterFilterLdac()};
operator_filters_t filtersldac = {.operator_filters = filterldac, .num_operator_filters = ARRAY_DIM(filterldac)};
return PanicNull(ChainCreateWithFilter(getChainConfig(decoder), &filtersldac));
}
else
{
operator_config_t filter[] = {getDecoderFilter(decoder), getRemoveSplitterFilter()};
operator_filters_t filters = {.operator_filters = filter, .num_operator_filters = ARRAY_DIM(filter)};
return PanicNull(ChainCreateWithFilter(getChainConfig(decoder), &filters));
}
#else
operator_config_t filter[] = {getDecoderFilter(decoder), getRemoveSplitterFilter()};
operator_filters_t filters = {.operator_filters = filter, .num_operator_filters = ARRAY_DIM(filter)};
return PanicNull(ChainCreateWithFilter(getChainConfig(decoder), &filters));
#endif
}
kymera_chain_handle_t audioInputA2dpCreateStereoChain(audio_codec_t decoder)
{
#ifdef ENABLE_LDAC_SINK
if(decoder == audio_codec_ldac)
{
operator_config_t filterldac[] = {getDecoderFilterLdac(decoder)};
operator_filters_t filtersldac = {.operator_filters = filterldac, .num_operator_filters = ARRAY_DIM(filterldac)};
return PanicNull(ChainCreateWithFilter(getChainConfig(decoder), &filtersldac));
}
else
{
operator_config_t filter[] = {getDecoderFilter(decoder)};
operator_filters_t filters = {.operator_filters = filter, .num_operator_filters = ARRAY_DIM(filter)};
return PanicNull(ChainCreateWithFilter(getChainConfig(decoder), &filters));
}
#else
operator_config_t filter[] = {getDecoderFilter(decoder)};
operator_filters_t filters = {.operator_filters = filter, .num_operator_filters = ARRAY_DIM(filter)};
return PanicNull(ChainCreateWithFilter(getChainConfig(decoder), &filters));
#endif
}
EdwardLee 发表于 2021-6-17 14:11
大概是这里影响的,跟一下代码,看下那里影响的,增加个分支。
audio_input_a2dp_chain_config_stereo.c
好的,谢谢,getDecoderFilterLdac和getDecoderFilter里面的处理啥区别?看起来getDecoderCapabilityId里面也有区分ldac啊。
本帖最后由 EdwardLee 于 2021-6-17 17:25 编辑
骑着蟑螂去上学 发表于 2021-6-17 15:31
好的,谢谢,getDecoderFilterLdac和getDecoderFilter里面的处理啥区别?看起来getDecoderCapabilityId里 ...
static const operator_config_t op_config[] =
{
MAKE_OPERATOR_CONFIG(capability_id_rtp, rtp_role),
MAKE_OPERATOR_CONFIG(capability_id_splitter, splitter_role),
MAKE_OPERATOR_CONFIG(capability_id_none, decoder_role)
};
当初我也是一段段代码加进去,编译,测试,发现的。
AAC这里不是修改的,你分析下op_config的调用,然后创建ldac的分支;
EdwardLee 发表于 2021-6-17 17:18
static const operator_config_t op_config[] =
{
MAKE_OPERATOR_CONFIG(capability_id_rtp, rtp_role ...
好的,再次感谢,我研究下。 你能分享评估工具包吗? 我想将其移植到QCC5144 Jsjcj 发表于 2021-9-5 06:42
你能分享评估工具包吗? 我想将其移植到QCC5144
我也對這個感興趣