Stagefright (2) - 和OpenMAX的運作
来源:互联网 发布:手机如何做淘宝兼职 编辑:程序博客网 时间:2024/05/22 14:25
Stagefright的編解碼功能是利用OpenMAX框架,而且用的還是OpenCORE之OMX的實作,我們 來看一下Stagefright和OMX是如何運作的。
(1) OMX_Init
OMXClient mClient;
AwesomePlayer::AwesomePlayer()
{
mClient.connect();
}
status_t OMXClient::connect()
{
mOMX = service->getOMX();
}
sp<IOMX> MediaPlayerService::getOMX()
{
mOMX = new OMX;
}
OMX::OMX() : mMaster(new OMXMaster)
OMXMaster::OMXMaster()
{
addPlugin(new OMXPVCodecsPlugin);
}
OMXPVCodecsPlugin::OMXPVCodecsPlugin()
{
OMX_MasterInit();
}
OMX_ERRORTYPE OMX_MasterInit() <-- under OpenCORE
{
return OMX_Init();
}
(2) OMX_SendCommand
OMXCodec::function_name()
{
mOMX->sendCommand(mNode, OMX_CommandStateSet, OMX_StateIdle);
}
status_t OMX::sendCommand(node, cmd, param)
{
return findInstance(node)->sendCommand(cmd, param);
}
status_t OMXNodeInstance::sendCommand(cmd, param)
{
OMX_SendCommand(mHandle, cmd, param, NULL);
}
(3) 其他作用在 OMX 元件的指令
其他 作用在OMX元件的指令也和OMX_SendCommand的call path一樣,請見下表:
OMXCodecOMXOMXNodeInstance useBufferuseBuffer (OMX_UseBuffer) getParametergetParameter (OMX_GetParameter) fillBufferfillBuffer (OMX_FillThisBuffer) emptyBufferemptyBuffer (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 (2) - 和OpenMAX的運作
- Stagefright (2) - 和OpenMAX的運作
- stagefright框架(二)- 和OpenMAX的運作
- stagefright框架(二)- 和OpenMAX的運作
- stagefright框架(二)- 和OpenMAX的運作
- stagefright框架(二)- 和OpenMAX的運作
- stagefright框架(二)- 和OpenMAX的運作
- stagefright框架(二)- 和OpenMAX的運作
- stagefright框架(二)- 和OpenMAX的運作
- stagefright框架(二)- 和OpenMAX的運作
- stagefright框架(二)- 和OpenMAX的運作
- stagefright框架(二)- 和OpenMAX的運作
- stagefright框架(二)- 和OpenMAX的運作
- stagefright框架(二)- 和OpenMAX的運作
- stagefright框架(二)- 和OpenMAX的運作
- stagefright框架(二)- 和OpenMAX的運作 .
- stagefright框架(二)- 和OpenMAX的運作
- stagefright框架(二)- 和OpenMAX的運作
- Stagefright (1) - Video Playback的流程
- htmlparser 简单教程
- 网站倒闭营收下滑 中国SNS陷成长烦恼
- widnows iocp 的理解
- centos5.4上编译安装memcached1.4.5
- Stagefright (2) - 和OpenMAX的運作
- ogre-procedural library building error LNK2001: 无法解析的外部符号
- 有关搜索引擎爬虫抓取原理浅析
- Stagefright (3) - 選擇Video Decoder
- oracle rownum
- ftp自动登录下载文件到指定目录
- Stagefright (4) - Video Buffer傳輸流程
- Stagefright (5) - Video Rendering
- Stagefright (6) - Audio Playback的流程