ALSA 音訊概念

2021-10-06 04:16:34 字數 545 閱讀 9812

為了能支援2 * 44.1k的取樣率,系統必須支援如下的速度

圖我就不挪了 自己看原版吧

現在 alsa每秒都中斷。那麼我們每秒都需要176400byte資料準備好,才能供上乙個 雙通道 16 位 44.1k的音訊流。

我們可以通過設定period size 來控制pcm中斷的產生。

- 如果我們設定乙個16位雙通道44.1k的音訊流 並且每次都有4410幀資料 -》 4 byte * 4410frams = 17640位元組 》一次中斷會需要17640位元組的資料 =》 那麼他就是100ms中斷一次。

alsa會自己覺得實際的buffer_size 和period_size,根據請求的通道數,和他們其他的一些屬性。

幀代表乙個單位 1幀 = 通道數 * 樣本長度

在你的情況下,1幀佔據了 2 通道* 16位 = 4個位元組

週期數就是在環形buffer裡面的

buffer_size = 週期大小 * 週期數

週期大小(bytes) = 週期大小 * byte每幀

byte每幀 = 通道數 * 每個樣本的byte數

alsa 音訊配置 7 16

在sound soc codecs目錄中有很多音訊codec的codec驅動 這裡個驅動檔案中定義了很多widget和control,alsa在playback或record的時候,sound soc soc dapm.c中的dapm power widgets函式會根據 配置情況 開啟相應的wid...

ALSA 音訊驅動簡要解析

alas 的驅動裝置節點 dev snd controlcx dev snd pcm c dev snd pcm p dev snd seq dev snd timer alsa驅動程式的標頭檔案 include sound asound.h include sound asound.h alsa驅...

alsa 音訊路徑的問題

alsa 音訊路徑的問題 在sound soc codecs目錄中有很多音訊codec的codec驅動,我使用的是wm9713,ap是s3c6410 這裡個驅動檔案中定義了很多widget和control,alsa在playback或record的時候,sound soc soc dapm.c中的d...