235689412 发表于 2021-5-25 22:24:21

关于qcc512x ldac开发的问题

使用的sony的官方ldac资料包。最新今年2月份的。
发现aac功能不正常,ldac和其他codec正常。只要切换到aac就没声音了,这时候再切换到其他codec就一直没声音,只能重启回到非aac模式才正常工作。



Updated LDAC Decoder Evaluation Kit for QCC512x and ADK6.4.0



twspro 发表于 2021-5-26 08:17:04

Sony 官方的Ldac资料有问题。

EdwardLee 发表于 2021-6-15 19:49:33

解决了,但忘了怎么解决的。反正看下那部分代码影响,然后增加的ldac的分支。

522315697 发表于 2021-6-16 13:02:47

EdwardLee 发表于 2021-6-15 19:49
解决了,但忘了怎么解决的。反正看下那部分代码影响,然后增加的ldac的分支。 ...

有大概方法吗

EdwardLee 发表于 2021-6-17 14:11:14

骑着蟑螂去上学 发表于 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
}

522315697 发表于 2021-6-17 15:31:08

EdwardLee 发表于 2021-6-17 14:11
大概是这里影响的,跟一下代码,看下那里影响的,增加个分支。
audio_input_a2dp_chain_config_stereo.c



好的,谢谢,getDecoderFilterLdac和getDecoderFilter里面的处理啥区别?看起来getDecoderCapabilityId里面也有区分ldac啊。

EdwardLee 发表于 2021-6-17 17:18:52

本帖最后由 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的分支;

522315697 发表于 2021-6-17 18:55:48

EdwardLee 发表于 2021-6-17 17:18
static const operator_config_t op_config[] =
{
    MAKE_OPERATOR_CONFIG(capability_id_rtp, rtp_role ...

好的,再次感谢,我研究下。

Jsjcj 发表于 2021-9-5 06:42:08

你能分享评估工具包吗? 我想将其移植到QCC5144

O11111 发表于 2021-9-5 07:14:34

Jsjcj 发表于 2021-9-5 06:42
你能分享评估工具包吗? 我想将其移植到QCC5144

我也對這個感興趣
页: [1] 2 3
查看完整版本: 关于qcc512x ldac开发的问题