高通CSR QCC300x i2s和AudioCodec 输出切换

一. 以A2DP为例, 并仅分析SBC情况

lib库中的MusicConnectAudio函数

  1. 申请local_config内存, 初始化local_config参数

  2. InitMultiChannelParams(&(local_config->mch_params));
    决定采样频率

  3. DECODER->sink_type: A2DP音乐时参数是 AUDIO_SINK_AV

  4. audioDecoderConnectInputSources(DECODER->sink_type, local_config)
    //目标是连接所有的input source到合适的DSP port.
    {
    sources_t sources;

    sources = audioDecoderGetSources(sink_type);
    //sources.source[0] = StreamSourceFromSink(decoder->media_sink); //A2DP 时候, 实际上只得到source[0], 并且来源于空中A2DP的media_sink.

    generalConfiguration(localConfig);

    configureSources(&sources);
    audioDecodeConnectSources(&sources, sink_type, localConfig->content_protection);
    VmalTransformRtpSbcDecode(sources->source[0], StreamKalimbaSink(GetDspPort(0)));
    //创建A2DP 空中source端到KalimbaSink端的实时流媒体转换.GetDspPort(0)=0;
    connectBackChannel(sink_type, localConfig->codec_data);
    }

以上, 主要是连接 A2DP空中的数据到StreamKalimbaSink(0), 并实时转换.
**
6. // Connect up DSP output ports to hardware sinks
audioDecodeConnectDspOutputs(&(local_config->mch_params));
函数实现:

{
   
AudioOutputAddSourceOrPanic(StreamKalimbaSource(DSP_OUTPUT_PORT_PRI_LEFT), audio_output_primary_left);
//StreamK
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值