zoukankan      html  css  js  c++  java
  • stagefright框架(二)- 和OpenMAX的運作

    Stagefright的編解碼功能是利用OpenMAX框架,而且用的還是OpenCOREOMX的實作,我們來看一下StagefrightOMX是如何運作的。

    (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, paramNULL);
    }
     


    (3) 其他作用在 OMX 元件的指令

    其他作用在OMX元件的指令也和OMX_SendCommandcall path一樣,請見下表:

    OMXCodec

    OMX

    OMXNodeInstance

     

    useBuffer

    useBuffer (OMX_UseBuffer)

     

    getParameter

    getParameter (OMX_GetParameter)

     

    fillBuffer

    fillBuffer (OMX_FillThisBuffer)

     

    emptyBuffer

    emptyBuffer (OMX_EmptyThisBuffer)










    stagefright框架(二)- <wbr>和OpenMAX的運作



     (4) Callback Functions


    OMX_CALLBACKTYPE OMXNodeInstance::kCallbacks =
    {
      &OnEvent<--------------- omx_message::EVENT
      &OnEmptyBufferDone<----- omx_message::EMPTY_BUFFER_DONE
      &OnFillBufferDone <------- omx_message::FILL_BUFFER_DONE
    }

  • 相关阅读:
    在Visual Studio 2012 Blue theme下使用Dark theme的文本编辑器颜色设置
    How to build the Robotics Library from source code on Windows
    解数独的小程序
    XCAT在虚拟机上部署系统
    在docker里部署网络服务
    初学python里的yield send next
    opencl初体验
    cuda计算的分块
    尽信书不如无书
    docker on centos
  • 原文地址:https://www.cnblogs.com/shakin/p/4097098.html
Copyright © 2011-2022 走看看