麻黄附子细辛汤。:stagefright框架(二)- 和OpenMAX的运作
来源:百度文库 编辑:九乡新闻网 时间:2024/04/24 14:58:01
Stagefright的编解码功能是利用OpenMAX框架,而且用的还是OpenCORE之OMX的实作,我們来看一下Stagefright和OMX是如何运作的。
(1) OMX_Init
OMXClient mClient;
AwesomePlayer::AwesomePlayer()
{
mClient.connect();
}
status_t OMXClient::connect()
{
mOMX = service->getOMX();
}
sp 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一样,请见下表:
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
}
(1) OMX_Init
OMXClient mClient;
AwesomePlayer::AwesomePlayer()
{
mClient.connect();
}
status_t OMXClient::connect()
{
mOMX = service->getOMX();
}
sp
{
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一样,请见下表:
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的运作
stagefright框架(七)-Audio和Video的同步
stagefright框架(六)
stagefright框架(一)Video Playback的流程
stagefright框架(六)-Audio Playback的流程
stagefright框架(三)- 选择Video Decoder
stagefright框架(五)-Video Rendering
stagefright框架(四)-Video Buffer传输流程
OpenMAX大意1(六)
stagefright 介绍 - Once的日志
Android Opencore OpenMAX学习(4)
Android Opencore OpenMAX学习(3)
Android Opencore OpenMAX学习(2)
老枪多赢股票运作系统 老枪(二)
中美关于促进经济强劲、可持续、平衡增长和经济合作的全面框架(全文)
中美关于促进经济强劲、可持续、平衡增长和经济合作的全面框架(全文)
中美关于促进经济强劲、可持续、平衡增长和经济合作的全面框架(全文)
农业部关于印发《全国农业和农村信息化建设总体框架(2007-2015)》的通知
SPServer : 一个基于线程池(包括HAHS和LF)的高并发 server 框架
新巴塞尔协议(流动性风险计量标准和监测的国际框架)意见稿
VC(风险投资公司)的运作方式
反腐倡廉制度的分析框架和分层理论结构
反腐倡廉制度的分析框架和分层理论结构
反腐倡廉制度的分析框架和分层理论结构