[問題] Audio Framework 閱讀方法

看板AndroidDev作者 (HW)時間7年前 (2016/12/16 20:23), 編輯推噓1(101)
留言2則, 1人參與, 最新討論串1/1
大家好,我最近在閱讀 Android Framework 的程式碼 主要著重於音訊的部分 /framework/av/ 但現在爬 code 的過程中遇到一些問題 1. 在 PlaybackThread::threadLoop_write() 內,每次都會花 20 ms 經過推敲後發現是 mNormalSink->write() 耗時間,我猜測這個是因為 軟體處理資料的速度,遠快於硬體釋放訊號的速度(數個微秒就可以處 理完 20 ms 長的音訊)為了等待硬體將訊號播放完才有一些等待的邏輯 在裡面。但我往下翻了一下就看到 driver 層的部分了,程式碼落在 /platform/hardware/qcom/audio_hw.c。但現在的問題就是,我不知道 我找到的程式碼是否正確,以及不知道該怎麼讀,不曉得有無人可以提供 建議? 2. 在 AudioTrack 給訂 buffersize 的時候,會叫到 getMinBufferSize() 之類的 API,其中計算跟 latency 相關。想請問這個 latency 的部分 要在哪找到呢? 3. FastMixer 跟 Effect 的部分,坊間的書好像很少著墨,不曉得有沒有 推薦的網站呢? 謝謝大家! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.163.180.192 ※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1481890999.A.BCB.html

12/22 15:48, , 1F
1,2都在audio hal裡 看你們用哪家方案
12/22 15:48, 1F

12/22 15:50, , 2F
out->stream.get_latency 大多是buffer size去推得
12/22 15:50, 2F
文章代碼(AID): #1OKzotlB (AndroidDev)