作者tony123930 (HW)
看板AndroidDev
標題[問題] Audio Framework 閱讀方法
時間Fri Dec 16 20:23:17 2016
大家好,我最近在閱讀 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
推 hivic: 1,2都在audio hal裡 看你們用哪家方案 12/22 15:48
→ hivic: out->stream.get_latency 大多是buffer size去推得 12/22 15:50