qcc300x笔记之左右声道合并输出(九)

方式一,修改psr

  • 左右声道合并为右声道输出

将如下的配置Merge到芯片中

// PSKEY_DSP24 = Configuration
&2270 = 2270 2271 FF00 0000
// PSKEY_DSP25 = Configuration
&2271 = 2271 0000 777B 9000 0020 0000 0000
  • 左右声道合并为左声道输出

将如下的配置Merge到芯片中

// PSKEY_DSP24 = Configuration
&2270 = 2270 2271 FF00 0000
// PSKEY_DSP25 = Configuration
&2271 = 2271 0000 787C 9000 2000 0000 0000

方式二,通过调音工具修改

       打开调音工具,adk根目录->tools->bin-> UniversalFrontEnd.exe

选择music manager,并连接dsp

播放音乐的情况下,点击上图中1位置,然后选择cross over。调好参数之后,点2可以将参数下载到芯片

如上图,我要使用右声道合并输出,则将right置为0,left置为-INF。左声道反之。

 

方式三,修改工程

尝试了一些方法,暂未成功,后续成功了在更新

虽然没有成功,但是关于output的部分的逻辑看懂了一些,这里简单的说明一下

 

Audio output框架、逻辑分析

框架如下图所示:

代码逻辑分析:

外部音源编解码之后硬件输出逻辑

/*app处理与dsp通讯之间的消息*/
audioDecodeHandleDspInternalMessage/*该消息是从dsp发上来的,dsp层封装起来看不到,猜测应该是dsp中准备好之后,发消息给上层,请求配置将要处理的数据的参数*/case :MUSIC_PARAMS_LOADED_MSGcsrA2dpDecoderDspLoadedAndConfiguredMusicConnectAudio()/*将dsp的端口与音频源连接,音频源可参考枚举AUDIO_SINK_T的定义,此时音频源做src,dsp做sink*/audioDecoderConnectInputSources(sink_type, localConfig)audioDecodeConnectSources(sources, sink_type, content_protection)/*将dsp的端口与硬件输出端口对应,dsp可参考DSP_OUTPUT_PORT_PRI_LEFT的定义,硬件输出端口参考audio_output_t定义*/audioDecodeConnectDspOutputsAudioOutputAddSourceOrPanic(source,output);AudioOutputConnectOrPanicconnect()/*将指定的src与sink连接起来*/StreamConnect()

prompts与tone硬件输出逻辑                       

/*UI层提供的播放提示音的接口*/
AudioPlayAudioPrompt
AudioPlayTonehandleAudioMessagecase :AUDIO_PLUGIN_PLAY_AUDIO_PROMPT_MSGCsrVoicePromptsPluginPlayPhrasecase :AUDIO_PLUGIN_PLAY_TONE_MSGCsrVoicePromptsPluginPlayToneVoicePromptsDspPlay/*需要使用dsp,则连接到对应的dsp端口*/playStandaloneconnectPromptSourceToDsp/*不使用额外的dsp,直接播放,连接到硬件输出端口*/VoicePromptsNoDspPlayAudioOutputConnectStereoSourceAudioOutputConnect(params);connect()/*将指定的src与sink连接起来*/StreamConnect()

上面只贴出了了关键部分的接口,详细接口请参考实际SDK逻辑

 

相关的工具资料等,请到我的博客最下面的网盘链接中下载。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部