Stagefright中關於audio的部分是交由AudioPlayer來處理,它是在AwesomePlayer::play_l中被建立的。
(1)
| |
(2) AudioPlayer在啟動的過程中會先去讀取第一筆解碼後的資料,並且開啟audio output
| |
從AudioPlayer::start的程式碼來看,AudioPlayer似乎並沒有將mFirstBuffer傳給audio output。
(3)
| |
解碼後audio資料的讀取就是由callback函式所驅動,但是callback函式又是怎麼由audio output去驅動的,目前從程式碼上還看不出來。另外一方面,從上面的程式片段可以看出,fillBuffer將資料(mInputBuffer)複製到data之後,audio output應該會去取用data。
(5)
本文将从Stagefright框架出发,详细介绍其音频处理流程。首先通过创建并启动AudioPlayer来开始处理过程,接着阐述如何在启动过程中读取解码后的数据,并通过回调函数驱动音频输出。同时,解释音频解码器的工作流程与视频解码器类似,并提供了相关阅读建议。

被折叠的 条评论
为什么被折叠?



