转载
NuPlayer流媒体播放器中从网络上取得的rtp包在解码和显示时所用buffer的填充和清空的机制,与stagefright框架播放本地视频时的处理流程类似。
都是通过回调函数fillbuffer及emptybuffer来实现的。
NuPlayer中的ACodec与Stagefright中的OMXCodec的作用相似。
以下是rtsp流媒体中填充待解码的buffer,以及把解码后的buffer送给显示并清空的处理过程:
1.ACodec::UninitializedState::onSetup
调用status_t err = omx->allocateNode(componentName.c_str(), observer, &node);2.OMX::allocateNode
[cpp]
view plain
copy
- status_t OMX::allocateNode(
- const char *name, const sp<IOMXObserver> &observer, node