stagefright
mfbao01
这个作者很懒,什么都没留下…
展开
-
stagefright框架(一)Video Playback的流程
在Android上,預設的多媒體框架(multimedia framework)是OpenCORE。OpenCORE的優點是兼顧了跨平台的移植性,而且已經過多方驗證,所以相對來說較為穩定;但是其缺點是過於龐大複雜,需要耗費相當多的時間去維護。從Android 2.0開始,Google引進了架構稍為簡潔的Stagefright,並且有逐漸取代OpenCORE的趨勢 (註1)。<br /><br />[圖1] Stagefright在Android多媒體架構中的位置。<br />[圖2] Stagefright转载 2011-03-09 16:35:00 · 3525 阅读 · 1 评论 -
Android-StageFright之OpenMAX的实现
http://disanji.net/2011/03/07/stagefright-openmax0realization/ OMXCodec是一个MediaSource,完成数据的parse和decode。而OMXCodec则主要通过IOMX跨越OpenBinde转载 2011-09-02 11:49:44 · 2652 阅读 · 0 评论 -
DDD调试 stagefright
Google为Android应用开发提供了eclipse加插件作为开发工具,基于eclipse可以方便调试apk,而对于底层开发人员(比如opencore开发)没有提供类似直观的开发工具及调试手段。本文旨在介绍一种基于ddd+gdbserver的调试方法,用于类似 opencor转载 2011-09-02 11:52:03 · 1116 阅读 · 0 评论 -
stagefright框架(六)-Audio Playback的流程
到目前為止,我們都只著重在video處理的部分,對於audio卻隻字未提。這篇文章將會開始audio處理的流程。<br /><br />Stagefright中關於audio的部分是交由AudioPlayer來處理,它是在AwesomePlayer::play_l中被建立的。<br /><br /><br />(1) 當上層應用程式要求播放影音時,AudioPlayer同時被建立出來,並且被啟動<br /><br /><br />status_t AwesomePlayer::play_l()<br />{转载 2011-03-09 16:44:00 · 1029 阅读 · 0 评论 -
stagefright框架(四)-Video Buffer傳輸流程
這篇文章將介紹Stagefright中是如何和OMX video decoder傳遞buffer。<br /><br />(1) OMXCodec會在一開始的時候透過read函式來傳送未解碼的data給decoder,並且要求decoder將解碼後的data傳回來<br /><br /><br /><br />status_t OMXCodec::read(...)<br />{<br /> if(mInitialBufferSubmit)<br /> {<br /> mInitialBuffer转载 2011-03-09 16:41:00 · 1475 阅读 · 0 评论 -
stagefright框架(七)-Audio和Video的同步
講完了audio和video的處理流程,接下來要看的是audio和video同步化(synchronization)的問題。OpenCORE的做法是設置一個主clock,而audio和video就分別以此作為輸出的依據。而在Stagefright中,audio的輸出是透過callback函式來驅動,video則根據audio的timestamp來做同步。以下是詳細的說明:<br /><br />(1) 當callback函式驅動AudioPlayer讀取解碼後的資料時,AudioPlayer會取得兩個時間戳转载 2011-03-09 16:45:00 · 1140 阅读 · 0 评论 -
stagefright框架(二)- 和OpenMAX的運作
Stagefright的編解碼功能是利用OpenMAX框架,而且用的還是OpenCORE之OMX的實作,我們來看一下Stagefright和OMX是如何運作的。<br /><br />(1) OMX_Init<br /><br /><br /><br />OMXClient mClient;<br /><br />AwesomePlayer::AwesomePlayer()<br />{<br /> mClient.connect();<br />}<br /><br />status_t OMXClie转载 2011-03-09 16:38:00 · 1844 阅读 · 0 评论 -
stagefright框架(五)-Video Rendering
AwesomePlayer::onVideoEvent除了透過OMXCodec::read取得解碼後的資料外,還必須將這些資料(mVideoBuffer)傳給video renderer,以便畫到螢幕上去。<br /><br />(1) 要將mVideoBuffer中的資料畫出來之前,必須先建立mVideoRenderer<br /><br /><br />void AwesomePlayer::onVideoEvent()<br />{<br /> ...<br /><br /> if(mVideoR转载 2011-03-09 16:43:00 · 1134 阅读 · 0 评论 -
stagefright框架(三)-選擇Video Decoder
<br />在《Stagefright (1) – Video Playback的流程》中,我們並沒有詳述Stagefright是如何根據影片檔的類型來選擇適合的video decoder,現在,就讓我們來看一看。<br />(1) Video decoder是在onPrepareAsyncEvent中的initVideoDecoder被決定的<br /><br />OMXCodec::Create()會回傳video decoder給mVideoSource。<br /><br /><br />statu转载 2011-03-09 16:39:00 · 1345 阅读 · 0 评论 -
Android Stagefright MPEG4Extractor分析
http://www.cnblogs.com/shaobin0604/archive/2011/08/16/2141388.html 视频播放的基本流程 video track +-------------转载 2011-08-26 11:35:11 · 3785 阅读 · 0 评论