3

我有一個視頻解碼器被移植到Android,併成功地作爲一個獨立的應用程序工作,但是我想將此代碼集成到android多媒體框架。所以,這個代碼我已經添加到Android的媒體框架。那是我將它添加到root/media/libstagefright/codecs/myDecoder如何使用MediaCodec API來調用我的自定義解碼器

我寫了一個Android.mk myDecoder文件夾下,我已經添加並放置了我的解碼器的源代碼,編譯成功,我能夠在模擬器中運行它。

現在,我已經讀了Android中新的MediaCodec API允許我們訪問和使用android源代碼中可用的編解碼器。

我的問題是,現在,我有我的集成解碼器,Android源代碼:

是否有可能,我用我的解碼器進行解碼的輸入流,並使其在設備屏幕上?

我的解碼器有一個應該被調用來解碼流的函數。該函數將輸入流的路徑作爲參數。

我應該在解碼器的源代碼中修改某些內容以符合MediaCodec API的要求。

任何關於相同的幫助對我來說都會很有幫助。

-Regards。

回答

2

MediaCodec內部僱傭ACodec抽象,與底層OMX組件談判。因此,您的編解碼器應在您的平臺的media_codecs.xml文件中註冊一個OMX組件。

爲確保您的自定義編解碼器始終處於待用狀態,您可以確保您的編解碼器已註冊爲media_codecs.xml文件中您要使用的編碼解碼器的特定type的第一個組件。

除此之外,只要您的編解碼器支持標準OMX功能和Android特定的擴展,如Native Buffer使用等,它應該工作正常。

注:我假設您的應用程序需要提供輸入並從MediaCodec消耗輸出。

+0

感謝您的回覆。但正如您所指定的,我的編解碼器必須支持標準OMX功能和Android特定擴展,標準OMX功能和Android特定擴展是什麼?請建議一些東西的閱讀材料,使我的編解碼器與此兼容。是的,我將通過MediaCodec API調用編解碼器並使用其輸出緩衝區將其呈現在我的標準媒體播放器中。 – sam

+0

請也請提供一些對此問題的建議:http://stackoverflow.com/questions/18462175/how-to-register-a-omx-core-for-adding-a-new-decoder – sam

相關問題