原创 DAPM之五:dapm機制深入分析(上)

哲學裏有三個終極命題:你是誰?從何處來?到何處去?而對於dapm機制,我們可以這樣提問:dapm是什麼,起到何作用?dapm是如何建立的?dapm又是如何觸發的?下面會就這三個問題進行分析。 首先是dapm是什麼?這在DAPM之一:概述中

原创 DAPM之七:文檔《AUDIO CODEC DAPM》放出

經過一週多的整理,包括一個週末,終於形成這個較爲條理的文檔。dapm系列從開坑到現在,時間跨度是3個多月。呵呵,這其實比我想象中要快,畢竟平時工作還是挺忙的。 今後我想關於音頻驅動方面的內容會減少,並不是說我已經全部掌握了alsa架構,p

原创 逸仙時空上翻的一箇舊帖子

這些天無事就到逸仙時空BBS閒逛。說來諷刺,大學四年幾乎沒有登錄過本校的BBS,空閒時間就沉迷於遊戲與動漫之中,畢業工作後纔到BBS上註冊一個賬號,看着師弟師妹們埋怨學校飯堂伙食差啊考試愁死人啊等等,不禁懷念已逝去的大學時光,懷念各奔東西

原创 關於ALSA的小結

這一年來的一個重要工作是音頻設備驅動方面,如驅動開發、調試debug、性能調優、音頻路由、回聲消除等。除此之外,熟悉了一下alsa-lib接口,Android音頻系統,包括設備抽象層和音頻策略。 遺憾的是一直沒有什麼機會接觸藍牙設備的集

原创 NetLink機制使用

前些日子研究如何在Android實現USB-Audio的熱插拔,順帶了解了一下netlink機制。netlink在TCP/IP方面用得較多,但根據需要也可用在HDMI/USB等熱插拔消息通知。前人已經對這方面有深入的剖析,這裏就不累述了。

原创 如何在Android平臺上使用USB Audio設備

需求:USB Headset插上去後,聲音要從本地CODEC切換到USB Headset輸出/輸入。 上網搜了有關USB Audio Hotplug的東西,比較適用的資源如下: 1、Hotplugging USB audio devic

原创 I2S和PCM

I2S總線規範 I2S(Inter-IC Sound Bus)是飛利浦公司爲數字音頻設備之間的音頻數據傳輸而制定的一種總線標準。在飛利浦公司的I2S標準中,既規定了硬件接口規範,也規定了數字音頻數據的格式。I2S有3個主要信號: 1、串行

原创 ANDROID音頻系統散記之三:resample-2

這篇是承接上一篇提到的底層resample處理,以Samsung的tiny alsa-lib爲例說明。 tiny alsa-lib 這個tiny alsa-lib位於android2.3.1-gingerbread/device/sa

原创 ANDROID音頻系統散記之二:resample-1

Android上的resample處理 默認的情況下,Android放音的採樣率固定爲44.1khz,錄音的採樣率固定爲8khz,因此底層的音頻設備驅動只需設置好這兩個固定的採樣率。如果上層傳過來的採樣率與其不符的話,則Android

原创 ANDROID音頻系統散記之四:4.0音頻系統HAL初探

昨天(2011-11-15)發佈了Android4.0的源碼,今天download下來,開始挺進4.0時代。簡單看了一下,發現音頻系統方面與2.3的有較多地方不同,下面逐一描述。 一、代碼模塊位置 1、AudioFlinger fr

原创 智能手機音頻系統概述

聲明:本文非本人原創,主要整理了網上蒐集到的一些資料,並加上個人註解。 音頻系統概述 專業術語: ASLA - Advanced Sound Linux Architecture OSS - 以前的Li

原创 DAPM之四:dapm widget events

這是一個坑。。。 點贊 收藏 分享 文章舉報 sepnic 發佈了59 篇原創文章 · 獲贊 62 · 訪問量 64萬+ 他的留言板

原创 Audio Resampler Implement

前些日子無聊實現的一個Audio PCM Resampler的代碼,僅僅支持採樣率爲44.1khz的源數據的向下轉換,可轉換成8khz/11.025khz/16khz/22.050khz。 接口設計參考android-4.0.3_r1\s

原创 ALSA的ioctl - hwdep

hwdep模塊簡述 字符設備驅動中,ioctl是一個很常見的IO設備操作函數,可以自定義cmd命令字並實現對應的設備IO控制。 音頻設備的控制有所不同:驅動層大部分控制操作定義各種snd_kcontrol_new,然後註冊到SNDRV_

原创 DAPM之二:audio paths與dapm kcontrol

在用alsa_amixer controls時,除了我們之前提到的snd_soc_add_controls添加的kcontrols外,還有一些多出來的controls。其實多出來的那些都是屬於dapm kcontrol,主要用於切換音頻路