stagefright框架(二)- 和OpenMAX的運作
来源:互联网 发布:s7200编程软件中文版 编辑:程序博客网 时间:2024/05/16 15:35
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一樣,請見下表:
getParameter (OMX_GetParameter)
fillBuffer (OMX_FillThisBuffer)
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的運作
- 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框架(二)和OpenMAX的運作
- sizeof运算符和strlen函数的区别
- Windows Phone 8.1中元素适应屏幕宽度或子元素继承父元素宽度的解决方案
- Leetcode---Sum Root to Leaf Numbers
- Linux多线程——使用信号量同步线程
- iOS 获取手机的型号,系统版本,软件名称,软件版本
- stagefright框架(二)- 和OpenMAX的運作
- Notepad++使用经验和遇到的问题
- html关闭浏览器事件
- Qt之QComboBox(基本应用、代理设置)
- Ubuntu下安装使用Monaco字体
- stagefright框架(三)-選擇Video Decoder
- 黑马程序员-iOS视频学习之十二
- CUDA 与 OpenCL 区别
- Linux 进程管理浅析