當前位置:
首頁 > 最新 > Android系統視頻最新進度:音頻更新12節

Android系統視頻最新進度:音頻更新12節

不好意思,昨天打擾到大家了,推送的那篇文章對提高工作效率有很大幫助,但是群發後變成分享原文樣式,夾雜了一些過時的推廣信息,為了不誤導大家,所以第一時間刪除了,想看的話請自行關注公眾號:L先生說。搜索閱讀

開工大吉,其實我們初七就開工了,但有的同事沒買到火車票,推遲幾天上班,小編忙著發貨等繁瑣事宜,無暇顧及公號更新。多多理解。

春節前更新了3節Android音頻驅動課程,當時在老家,設備落後。用的文字推送,為了方便大家了解進度,這次整理成圖文,梳理到目前為止Android的更新進度。

節前上新3節:

第008節_DAPM的情景分析_構造過程主講kcontrol,route,path註冊過程情景演示

第009節_DAPM的情景分析_使用過程主講

a.tinymix,tinyplay,tinycap殊途同歸,都會調用dapm_power_widgets

b.dapm的核心: complete path

某個widget是否要上電的判斷過程

tinymix調用過程:

以SOC_DAPM_SINGLE("LINPUT1 Switch", WM8960_LINPATH, 8, 1, 0),為例:

snd_soc_dapm_put_volsw

connect = xxx // 根據傳入的val確定

// 把kcontrol要設置的reg,val寫入update

update.kcontrol = kcontrol;

update.widget = widget;

update.reg = reg;

update.mask = mask;

update.val = val;

widget->dapm->update = &update;

dapm_mixer_update_power(widget, kcontrol, connect);

// 找到path並設置connect

path->connect = connect;

// 調用此函數逐個widget進行判斷、上電/關閉

dapm_power_widgets(widget->dapm, SND_SOC_DAPM_STREAM_NOP);

widget->dapm->update = NULL;

tinyplay,tinycap調用過程:

播放/錄音前都會調用 soc_pcm_prepare

soc_pcm_prepare

// stream"s name = Playback or Capture

snd_soc_dapm_stream_event(rtd, stream"s name, SND_SOC_DAPM_STREAM_START)

soc_dapm_stream_event

// 找出每一個widget

// 如果strstr(w->sname, stream) // w->sname中含有Playback or Capture

// w->active = 1

dapm_power_widgets

大家都會調用dapm_power_widgets

dapm_power_widgets

// 對於每一個widget

// power = w->power_check(w); // 確定是否要上電

// 放入不同的鏈表, 以後統一上是或關閉

if (power)

dapm_seq_insert(w, &up_list, true);

else

dapm_seq_insert(w, &down_list, false);

// 關閉down_list上的所有widget

dapm_seq_run(dapm, &down_list, event, false);

// 根據dapm->update設置kcontrol, // update來自tinymix的調用

dapm_widget_update(dapm);

// 打開up_list上的所有widget

dapm_seq_run(dapm, &up_list, event, true);

// 給鏈表中的widget上電或關閉

dapm_seq_run

dapm_seq_run_coalesced

snd_soc_update_bits

第010節_tiny4412音效卡驅動錄音功能調試

安卓視頻錄製初步計劃:

第1季(bootloader)、2季(內核)、3季(init進程和文件系統)、7季(項目實踐)還沒講:因為第12季在實際工作中沒那麼急迫

第4季(Android框架)的部分內容在binder驅動里已經涉及:怎麼使用c/c++/java實現service;剩下的「service組件」以後講解。

第5季已發布binder驅動深度分析;第6季已發布【燈光系統、輸入系統,顯示系統】。

正在錄製音效卡系統之音頻框架(已發布12節),

繼而講藍牙,WIFI, 多媒體和視頻輸出,

然後倒回去講第3季(INIT進程與文件系統)

繼而講解第1、2季、其他驅動;

最後講解第7季(項目實踐)。

為什麼一定要學android系統開發?

1、Android與蘋果IOS是當今兩大移動操作系統,並且Android佔有率更高。源碼開放的Android,不僅僅應用於手機,還可以應用於其他千變萬化的產品之中:物聯網、機器人、工業控制、車聯網等等。你可以暴改Android以適應自己的產品。Nokia放棄Android,它被收購了。黑莓堅持自己的OS,也快完了。Windows也推出Android手機了。那麼你為什麼不選擇Android?

2、Linux是嵌入式行業的第一操作系統,而Android = linux+Android系統框架+Android應用。要求你不僅要掌握linux驅動開發,要想飛得更高,走得更遠,還要掌握Android系統開發。各大公司已經改組了Linux科室:比如中興不再有「Linux底層支持科」,而是去掉了"Linux"改成了「底層支持科」,既負責Linux,還負責Android系統框架。我所了解的這個科室,以前只有10人,現在有40多人(不是在整個公司,而是在某個產品的小部門裡)。

3、我們說的是系統!系統!!系統!!!

不是那些只會點JAVA然後用2、3個月就可以速成的Android APP工程師。2008年、2009年只要會點Android APP就可以拿高工資的時代一去不返了,任何行業,先進者得利;後進者精深才得利,恆得利。

推薦的參考書籍:

1、> 作者:(韓)金泰延、宋亨周、朴知勛、李白、林起永

2、> 作者:林學森

3、> 作者:劉超

真實交易,大家的評價很走心,感謝。

新年新氣象,你要一年比一年好。新的一年,百問網將繼續陪伴大家,共同成長。

公號介紹

韋東山2012年創辦的深圳百問網科技有限公司旗下賬號,長期發布課程進度,嵌入式Linux乾貨。"悅己之作,方能悅人","學嵌入式,就看韋東山視頻"。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 嵌入式Linux的事 的精彩文章:

為什麼 Android 要採用 Binder 作為 IPC 機制?

TAG:嵌入式Linux的事 |