原创 GObject 學習筆記彙總---15

轉自: http://garfileo.is-programmer.com/2011/3/28/a-simple-example-for-gobject-introspection.25662.html GObject Introspe

原创 11. Android MultiMedia框架完全解析 - start流程分析

還是從mediaplayer.cpp開始分析,看start函數的實現: status_t MediaPlayer::start() { mPlayer->setLooping(mLoop); mPlayer->setVolume

原创 15. Android MultiMedia框架完全解析 - Render流程分析

先來看Render在NuPlayer框架中所處的位置: Renderer的作用就是根據傳過來數據幀的時間來判斷這一幀是否需要渲染,並進行音視頻的同步。但是真正硬件渲染的代碼在MediaCodec和ACodec中。   Renderer的

原创 17. Android MultiMedia框架完全解析 - MediaClock分析與音視頻同步

這裏的代碼分析流程就是《15. Android MultiMedia框架完全解析 - Render流程分析》中的代碼流程,上次主要關注的是buffer的交互流程,這次主要分析的是音視頻同步,即AVsync。   (一)音視頻同步概念與方法

原创 10. Android MultiMedia框架完全解析 - MediaExtractor::Create函數的解析和FslExtractor分析

先來看看MediaExtractor所處的位置: (一)創建流程 在GenericSource.cpp的NuPlayer::GenericSource::initFromDataSource()函數中調用了:   extractor

原创 13. Android MultiMedia框架完全解析 - MediaCodec解析

MeidaCodec API: https://developer.android.com/reference/android/media/MediaCodec MediaCodec是一個Codec,通過硬件加速解碼和編碼。它爲芯片廠商和

原创 12. Android MultiMedia框架完全解析 - 從NuPlayer到MediaCodec到ACodec到OMX的整體流程與狀態轉換

之前的文章中,講了那麼多細節的東西,已經對概況沒有一個大致的瞭解,所以這裏縷一下整體的流程,同時也分析MediaCode,ACodec與OMX Plugin之間的狀態切換關係。   (一)初始化過程(從NuPlayer開始): 1. N

原创 16. Android MultiMedia框架完全解析 - ACodec詳細解析

之前的文章中,已經多次分析過ACodec,但是我仍然認爲有必要單獨拿出來一節分析其中的一些機制與流程,下面先來看看ACodec在整個NuPlayer架構中的位置: 1、ACodec消息機制: ACodec有一個BaseState和派生出

原创 14. Android MultiMedia框架完全解析 - NuPlayerDecoder與MediaCodec的交互

上一篇文章中詳細分析了MediaCodec,以及由它向下的內容,但是在MediaCodec外面包裹的是一層NuPlayerDecoder,這裏就看看它們兩者之間是如何溝通的。 從理論上來講,既然NuPlayerDecoder包裹在Medi

原创 Android MultiMedia框架完全解析 - 概覽

之前的工作中,一直在看Android MultiMedia的一些東西,關注我博客的同學也許知道我換工作了,以後將要從事Camera相關的工作,於是乎,將之前整理存放在有道雲筆記裏面的一些東西發出來,整理成一個專欄。   工作的環境爲And

原创 7. Android MultiMedia框架完全解析 - ALooper-AHandler-AMessage機制分析

先來看整個框架圖: NuPlayer基於Stagefright的基礎類構建,使用了更底層的ALooper-AHandler-AMessage機制來異步處理消息。 AMessage作爲一個消息載體,保存這與這個消息有關的信息; ALoop

原创 1. Android MultiMedia框架完全解析 - 從開機到MediaServer的註冊過程

Android的App一般是用java寫的,大致流程如下: MediaPlayer mediaPlayer = new MediaPlayer(); mediaPlayer.setOnCompletionListener(new OnC

原创 8. Android MultiMedia框架完全解析 - prepareAsync的過程分析

還是從mediaplayer.cpp文件開始分析: status_t MediaPlayer::prepareAsync() { ALOGV("prepareAsync"); Mutex::Autolock _l(mLo

原创 4. Android MultiMedia框架完全解析 - MediaPlayerFactory中OMX_Player的實現

這裏的實現,可以參照C++設計模式中的工廠模式,:http://blog.csdn.net/wuzhekai1985/article/details/6660462 這裏插講一下廠商定製Player的過程,可以參考NuPlayer的創建過

原创 5. Android MultiMedia框架完全解析 - 再談Playback框架及一些學習方法的討論

經過前面的分析,我們大概知道了一些概念,但是這個StageFright在整個playback的位置是什麼樣的: Android Media這一塊的知識雜亂,而且有深度,有廣度。深度的話,從app->JNI->C++->底層的OMX驅動,