Stagefright的編解碼功能是利用OpenMAX框架,而且用的還是OpenCORE之OMX的實作,我們來看一下Stagefright和OMX是如何運作的。
(1) OMX_Init
|
|
(2) OMX_SendCommand
|
|
(3) 其他作用在 OMX
元件的指令
其他作用在OMX元件的指令也和OMX_SendCommand的call path一樣,請見下表:
|
OMXCodec
|
OMX
|
OMXNodeInstance
|
|
|
useBuffer
|
useBuffer (OMX_UseBuffer)
|
|
|
getParameter
|
getParameter (OMX_GetParameter) |
|
|
fillBuffer
|
fillBuffer (OMX_FillThisBuffer) |
|
|
emptyBuffer
|
emptyBuffer (OMX_EmptyThisBuffer) |
(4) Callback Functions
OMX_CALLBACKTYPE OMXNodeInstance::kCallbacks
=
{
&OnEvent,
<--------------- omx_message::EVENT
&OnEmptyBufferDone,
<----- omx_message::EMPTY_BUFFER_DONE
&OnFillBufferDone <-------
omx_message::FILL_BUFFER_DONE
}

本文详细介绍了Stagefright利用OpenMAX框架进行编码解码的功能实现,通过OMX_Init、OMX_SendCommand等关键操作,展示了其在多媒体处理中的高效性。此外,还探讨了OMX框架下的其他作用于OMX元件的指令及其回调函数的使用,为多媒体应用开发者提供了宝贵的技术洞察。

被折叠的 条评论
为什么被折叠?



