`
isiqi
  • 浏览: 16453326 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

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, param, NULL);
}

(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)











(4) Callback Functions


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

分享到:
评论

相关推荐

    stagefright-plugins-master_stagefright_android_

    Stagefright是Android平台上的核心多媒体框架,负责处理多媒体数据的解码、渲染和传输。本篇将深入探讨Stagefright的工作原理及其在Android系统中的作用。 一、Stagefright概述 Stagefright自Android 2.2(Froyo)...

    stagefright框架2.0.pdf

    Stagefright 框架在 Android 中以 shared library 的形式存在,名为 libstagefright.so,其中的 AwesomePlayer 模块可以用来播放视频和音频。AwesomePlayer 提供了许多 API,可以让上层的应用程序(Java/JNI)来调用...

    stagefright框架2.0

    Stagefright 框架具有简洁的架构和良好的跨平台移植性,是 Android 多媒体架构中的重要组件。 Stagefright 框架的架构 Stagefright 框架由多个模块组成,每个模块负责不同的多媒体处理任务。 AwesomePlayer 是 ...

    stageFright_OpenMax系统.doc

    stageFright_OpenMax系统.doc,对Android2.3的 stagefright框架和openMAx的深入分析

    android stagefright 和 openmax 框架

    简述了android 的stagefright多媒体 框架 和 openmax 框架

    android多媒体stagefright框架详细分析

    首先,Stagefright框架是基于OMX(OpenMAX Integration Layer)构建的,OMX是一个用于多媒体编解码的标准化接口。OMXClient和OMXCodec是与OMX交互的组件,负责多媒体内容的编解码处理。OMXSurfaceFlinger负责在...

    StageFright_和OpenMAX的運作

    在深入探讨StageFright和OpenMAX的运作之前,我们先简要了解这两个概念。StageFright是Android操作系统中的多媒体框架,负责处理音频、视频的编解码任务。而OpenMAX(Open Media Acceleration API)则是一种跨平台的...

    stagefright与opencore对比

    在Android系统中,多媒体处理是不可或缺的一部分,而Stagefright和OpenCore是两个重要的多媒体框架。它们各自在不同的时期和环境下承担着Android平台上的多媒体播放和处理任务。下面将详细对比这两个框架,以便理解...

    android2.3源码解读—stagefright框架

    在Android 2.3版本之前,OpenCORE是主要的多媒体框架,但其复杂的架构和维护成本促使Google引入了更为简洁的Stagefright框架。Stagefright自Android 2.0开始逐渐崭露头角,并在后续版本中逐步取代OpenCORE,成为...

    stagefright awesomeplayer框架

    其中,AwesomePlayer是Stagefright框架中负责视频和音频播放的关键模块,它提供了丰富的API接口,供上层应用程序(Java或JNI)调用进行多媒体操作。 当一个视频播放请求在Java层发起时,通常会执行以下步骤: 1. ...

    stagefright-cve-2015-3864:PoC-CVE-2015-3864的二进制补丁(非生产版本,使用后果自负)

    标题中的"Stagefright-CVE-2015-3864"是一个重要的安全漏洞,它涉及到Android操作系统中的多媒体处理框架Stagefright。在2015年,这个漏洞被公开,它允许攻击者通过恶意MMS( Multimedia Messaging Service,多媒体...

    stagefright框架

    因此,为了保证系统的安全性,Android开发者不断修复这些漏洞,并加强了对Stagefright框架的审查和安全更新。 总结来说,Stagefright是Android系统中处理多媒体内容的关键组件,它简化了媒体处理流程,提高了性能,...

    stagefright + omx小结

    stagefright + omx小结 stagefright + omx小结 stagefright + omx小结 stagefright + omx小结 stagefright + omx小结 stagefright + omx小结 stagefright + omx小结

    android-stagefright处理httplivestreaming缓冲机制

    在Android系统中,Stagefright框架负责多媒体内容的播放,包括HTTP Live Streaming(HLS)。本文将深入探讨Stagefright处理HLS的缓冲机制,同时也会涉及到Android Binder机制,它是Android系统中进程间通信(IPC)的...

    StageFright_Video Playback的流程

    StageFright是Android系统中用于多媒体处理的核心框架,负责音频、视频的编码和解码工作。它采用组件化的架构,通过一系列可插拔的模块来实现媒体数据的处理,这其中包括解码器、源输入、渲染器等关键组件。本文将...

    stagefright+OMX小结

    在Android操作系统中,Stagefright和OpenMAX(OMX)是两个关键的多媒体处理框架,它们对于处理音频、视频等媒体内容起着至关重要的作用。下面将对这两个概念进行深入解析。 1. **Stagefright**: Stagefright是...

    Android多媒体框架下Stagefright的功能扩展.pdf

    本文详细介绍了Android多媒体框架下Stagefright的功能扩展策略,重点阐述了采用桥接设计模式以及整合FFmpeg框架来开发适配Stagefright的解包装和解码插件的过程。这种扩展方法能够使Android多媒体框架支持更多种类的...

Global site tag (gtag.js) - Google Analytics