Linux ALSA音訊框架分析三:ALSA框架
阿新 • • 發佈:2019-01-08
ALSA 是 Advanced Linux Sound Architecture 的縮寫,即高階 Linux聲音架構,在 Linux 作業系統上提供了對音訊和 MIDI(Musical InstrumentDigital Interface,音樂裝置數字化介面)的支援。在 Linux2.6 版本核心以後,ALSA 已經成為預設的聲音子系統,用來替換 2.4 版本核心中的OSS(Open Sound System,開放聲音系統)。
ALSA 是一個完全開放原始碼的音訊驅動程式集,是由志願者維護的開源專案,而 OSS 則是由公司提供的商業產品。ALSA 系統包括驅動包alsa-driver(整合在核心原始碼),開發包 alsa-libs,開發包外掛 alsalibplugins,設定管理工具包 alsa-utils,其他聲音相關處理小程式包alsa-tools,特殊音訊韌體支援包 alsa-firmware,OSS 介面相容模擬層工具 alsa-oss 共 7 個子專案,其中只有 alsa-driver 是必須的。除了 alsa-driver,ALSA 包含在使用者空間的 alsa-lib 函式庫,具有更加友好的程式設計介面,並且完全兼容於 OSS,開發者可以通過這些高階 API 使用驅動,不必直接與核心驅動 API 進行互動。
ALSA 主要有如下特點:
1)支援多種音效卡裝置、
2)模組化的核心驅動程式 、
3)支援 SMP(對稱多處理)和多執行緒、
4)提供應用開發函式庫 、
5)相容 OSS 應用程式 。
二、ALSA 整體框架
ALSA 是一個完全開放原始碼的音訊驅動程式集,是由志願者維護的開源專案,而 OSS 則是由公司提供的商業產品。ALSA 系統包括驅動包alsa-driver(整合在核心原始碼),開發包 alsa-libs,開發包外掛 alsalibplugins,設定管理工具包 alsa-utils,其他聲音相關處理小程式包alsa-tools,特殊音訊韌體支援包 alsa-firmware,OSS 介面相容模擬層工具 alsa-oss 共 7 個子專案,其中只有 alsa-driver 是必須的。除了 alsa-driver,ALSA 包含在使用者空間的 alsa-lib 函式庫,具有更加友好的程式設計介面,並且完全兼容於 OSS,開發者可以通過這些高階 API 使用驅動,不必直接與核心驅動 API 進行互動。
ALSA 主要有如下特點:
1)支援多種音效卡裝置、
2)模組化的核心驅動程式 、
3)支援 SMP(對稱多處理)和多執行緒、
4)提供應用開發函式庫 、
5)相容 OSS 應用程式 。
二、ALSA 整體框架