Android OMXNodeinstance/OMX Component交互

时间:2025-01-25 12:30:45

:

OMX_CALLBACKTYPE OMXNodeInstance::kCallbacks = {

    &OnEvent, &OnEmptyBufferDone, &OnFillBufferDone

};


status_t OMX:allocateNode

...

OMX_ERRORTYPE err = mMaster->makeComponentInstance(name, &OMXNodeInstance::kCallbacks, instance, &handle);


在创建omx component的时候带入kCallbacks,供omx component notify.

当omx component有消息通知的时候,会首先调到里面的

void OMXNodeInstance::onEvent()

OMX_ERRORTYPE OMXNodeInstance::OnEmptyBufferDone()/OnFillBufferDone()


OMXNodeInstance会再通过instance->owner调到里面的

OMX_ERRORTYPE OMX::OnEvent()

OMX_ERRORTYPE OMX::OnEmptyBufferDone()/OnFillBufferDone


OMX会再通过dispatcher->post/loop/dispatch再回到里面的onMessage()


OMXNodeInstance会再通过mObserver->onMessage()回到ACodec中