正在使用alsa做開發,網上查看了相關資料,發現網上對alsa的緩沖區說法不一!
主要疑惑是底層的環形緩沖區如何理解?
問題1:使用snd_pcm_hw_params_set_buffer_size函式設定的緩沖區,我理解就是對底層緩沖區大小的設定吧?
問題2:底層的這個環形緩沖區位于哪里?硬體聲卡上還是驅動在記憶體上開辟的?還是在硬體聲卡和記憶體中都存在緩沖區?
問題3:音頻流資料如何在緩沖區之間流動的?
我目前的理解是(只說播放),假設在硬體聲卡和記憶體中都存在緩沖區,則:上層用戶空間使用snd_pcm_writei函式將資料放入底層驅動維護的緩沖區,DMA將驅動緩沖區中的資料搬運到聲卡環形緩沖區。
由于是假設,對目前的理解心里不踏實,望有相關大神解惑,感激不盡!
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/11293.html
標籤:驅動程序開發區
上一篇:ip隧道如何可以多級轉發
