我一直試圖使用OMXCodec
到Stagefright
。我已經實現了Android的ICS
版本的代碼.I有兩個類CustomDataSource
,其衍生MediaSource
,另一個是CustomOmxCodec
,它調用OMXCodec::Create
方法並執行讀取操作以解碼h264幀。我已經在具有omx.google.video.avc
軟件解碼器的設備上測試了這個實現,它工作正常。現在,當我嘗試在帶有硬件h264解碼的android手機上運行相同的實現時,它會在讀取調用時返回錯誤。該錯誤是如下:OMXCodec :: onEvent - OMX Bad Parameter
[OMX.MTK.VIDEO.DECODER.AVC] ERROR (0x80001005, 0)
0x80001005
是OMX_ErrorBadParameter
。 ,我在讀操作時得到錯誤代碼-1103
。 我嘗試了各種參數,但沒有成功。
完整的日誌如下:
[OMX.MTK.VIDEO.DECODER.AVC] mVideoInputErrorRate (0.000000)
[email protected]@!>>create tid (21087) O<XCodec mOMXLivesLocally=0, mIsVideoDecoder (1), mIsVideoEncoder (0), mime(video/avc)
[OMX.MTK.VIDEO.DECODER.AVC] video dimensions are 640X480
mSupportesPartialFrames 1 err 0
[OMX.MTK.VIDEO.DECODER.AVC] allocating 10 buffers of size 65536 on input port.
[OMX.MTK.VIDEO.DECODER.AVC] mMemHeapBase = 0x00E8C288, mOutputBufferPoolMemBase=0x51F8E000, size = 9578848
[OMX.MTK.VIDEO.DECODER.AVC] ERROR (0x80001005, 0)
OMXCodec::onEvent--OMX Bad Parameter!!
Read Error : -1103
我倒是感謝有這方面的方向。
感謝您的回覆。我沒有設置kKeyAVCC參數。是否有必要或建議定義kKeyAVCC?我正在整合stagefright來逐幀解碼。我從我的幀集合解析編碼幀,而不是從mp4或任何其他媒體容器。那麼在這種情況下,是否可以將sps和pps設置爲kKeyAVCC?將在某個時間共享更多日誌。 – sam18 2013-03-19 10:13:00
@ sam18模擬器和硬件的android代碼應該相同。因此,我認爲kKeyAVCC已經作爲解碼器的第一個緩衝區被傳遞。這個問題似乎源於別的東西。從您的日誌中,錯誤似乎在創建輸出緩衝區期間發生。你能分享完整的日誌嗎? – Ganesh 2013-03-19 14:06:21