Android Audio音訊通路 七

2021-09-29 14:04:05 字數 814 閱讀 7836

例如 「deep-buffer-playback speaker」 通路中的路由控制項:

**********1:deep_buffer usacase 對應的 fe pcm

quat_mi2s_rx:speaker device所連線的be dai

audio mixer:表示dsp路由功能

value = 1:表示連線;value = 0:表示斷開連線

這個控制項是:把 **********1 pcm 與 quat_mi2s_rx dai 連線起來。這個控制項並沒有指明 quat_mi2s_rx dai 與 speaker device 之間的連線,因為 be dais 與 devices 之間並不需要路由控制項,如之前所強調」device 連線著唯一的 be dai,確定了 device 也就能確定所連線的 be dai「

1.路由操作函式

enable_audio_route()/disable_audio_route(),這兩個函式名稱很貼合,控制 fe pcms 與 be dais 的連線或斷開。

2.開啟/關閉裝置函式

enable_snd_device()/disable_snd_device()

值得注意的點有:

裝置引用計數

每個裝置都有各自的引用計數 snd_dev_ref_cnt,引用計數在 enable_snd_device() 中累加,如果大於 1,則表示該裝置已經被開啟了,那麼就不會重複開啟該裝置;引用計數在 disable_snd_device() 中累減,如果為 0,則表示沒有 usecase 需要該裝置了,那麼就關閉該裝置。

帶保護

android audio系統簡記

audiotrack audioflinger audiopolicysevice 當audiopolicymanagerbase構造時,它會根據使用者提供的audio policy.conf來分析系統中有哪些audio inte ce primary,a2dp以及usb 然後通過audioflin...

高通 音訊驅動程式

從上往下的大致流程 amixer 使用者層 snd ctl ioctl 系統呼叫 snd ctl elem write user 核心鉤子函式 snd ctl elem wirte snd ctl find id 遍歷kcontrol鍊錶找到與給定id相匹配的kctl kctl put 呼叫kctl...

android audio 音量設定分析

audiod 中經常遇到的場景是音量調整與輸出裝置的切換,下面兩篇文章 針對這兩個場景分別分析一下 1,音量調整場景 android 音量調整,可以使用兩種方式 軟體mixer的時候修改pcm data 控制dac硬體的增益 第一種情況,如果是多路mix的情況,就是mixerthread進行軟體mi...