講完了audio和video的處理流程,接下來要看的是audio和video同步化(synchronization)的問題。OpenCORE的做法是設置一個主clock,而audio和video就分別以此作為輸出的依據。而在Stagefright中,audio的輸出是透過callback函式來驅動,video則根據audio的timestamp來做同步。以下是詳細的說明:
- Jan 03 Mon 2011 11:59
Stagefright (7) - Audio和Video的同步
- Dec 31 Fri 2010 17:29
Stagefright (6) - Audio Playback的流程
到目前為止,我們都只著重在video處理的部分,對於audio卻隻字未提。這篇文章將會開始audio處理的流程。
- Dec 30 Thu 2010 17:02
Stagefright (5) - Video Rendering
AwesomePlayer::onVideoEvent除了透過OMXCodec::read取得解碼後的資料外,還必須將這些資料(mVideoBuffer)傳給video renderer,以便畫到螢幕上去。
- Dec 29 Wed 2010 19:01
Stagefright (4) - Video Buffer傳輸流程
這篇文章將介紹Stagefright中是如何和OMX video decoder傳遞buffer。
- Dec 29 Wed 2010 15:00
Stagefright (3) - 選擇Video Decoder
在《Stagefright (1) – Video Playback的流程》中,我們並沒有詳述Stagefright是如何根據影片檔的類型來選擇適合的video decoder,現在,就讓我們來看一看。
- Dec 29 Wed 2010 11:12
Stagefright (2) - 和OpenMAX的運作
Stagefright的編解碼功能是利用OpenMAX框架,而且用的還是OpenCORE之OMX的實作,我們來看一下Stagefright和OMX是如何運作的。
- Dec 28 Tue 2010 17:40
Stagefright (1) - Video Playback的流程
在Android上,預設的多媒體框架(multimedia framework)是OpenCORE。OpenCORE的優點是兼顧了跨平台的移植性,而且已經過多方驗證,所以相對來說較為穩定;但是其缺點是過於龐大複雜,需要耗費相當多的時間去維護。從Android 2.0開始,Google引進了架構稍為簡潔的Stagefright,並且有逐漸取代OpenCORE的趨勢 (註1)。
- Dec 02 Thu 2010 18:51
在Android上實作一個FFmpeg+SDL的media player
我們想要在Android上面開發自己的media player,第一個想到的就是利用FFmpeg來實作。FFmpeg是一個跨平台的編解碼函式庫,我們可以呼叫它所提供的API來完成。另外,FFmpeg有提供一個小程式ffplay,它本身就是一個media player,所以我們打算以ffplay作為程式的基礎。
- Dec 02 Thu 2010 11:07
將FFmpeg整合至Android平台
FFmpeg是一個跨平台的影音編解碼函式庫,我們可以用來實作一個在Android平台上的media player。首先先build出一個Android版本的FFmpeg。
- Dec 01 Wed 2010 20:07
將SDL整合至Android平台
網路上有很多文章在講解如何將SDL整合到Android的平台上,我自己也試著動手做看看,順便將一些步驟及心得整理起來。