- 博客(8)
- 资源 (3)
- 收藏
- 关注
原创 Android多媒体开发【11】-- android中OpenMax的实现【2】AwesomePlayer中openmax的入口
AwesomePlayer 中有个变量 OMXClient mClient;让我们看看 OMXClient class OMXClient {public: OMXClient(); status_t connect(); void disconnect(); sp interface() { return mOMX;
2012-10-30 09:20:59 10234
原创 Android多媒体开发【10】-- android中OpenMax的实现【1】整体框架
1.android中用openmax来干啥?有了上一篇AwesomePlayer基本框架及播放流程已经很清楚的看到了,android中的 AwesomePlayer就是用openmax来做(code)编解码,其实在openmax接口设计中,他不光能用来当编解码。通过他的组件可以组成一个完整的播放器,包括sourc、demux、decode、output。但是为什么android只用他来做cod
2012-10-26 15:15:59 13718 4
原创 Android多媒体开发【9】-- OpenMax IL简介
1.openmax 简介http://www.khronos.org/openmax/OpenMax是一个多媒体应用程序的框架标准,由NVIDIA公司和Khronos在2006年推出。OpenMAX分为3层:第一层:OpenMax DL(Development Layer,开发层)第二层:OpenMax IL(Integration Layer,集成层)
2012-10-24 13:33:04 15146
原创 Android多媒体开发【8】-- AwesomePlayer基本框架及播放流程
1.通过setDataSource 指定播放器的数据源。可以是URI或者fd.可以是http:// 、rtsp://、本地地址或者本地文件描述符fd。其最终调用是将上层传递来的参数转化为DataSource,为下一步的demux提供数据支持。2.在真正Prepare功能函数onPrepareAsyncEvent()会调用finishSetDataSource_l。通过第一步产生的DataSou
2012-10-18 12:26:28 16015
原创 Android多媒体开发【7】-- AwesomePlayer中TimedEventQueue-event事件调度器
上文已经大概介绍了播放器的几大主要部分,但是有了这些功能组件也不能叫做播放器。需要某种方式将这些单独的功能组件驱动起来,形成一个整体的功能。视频处理过程中有很多都是十分耗时的,如果都放在一个大的线程空间中。用户体验的效果可想而知。所以通常都是做异步操作。AwesomePlayer是通过event事件调度来实现这些功能之间的驱动和调用的。AwesomePlayer中的内部变量
2012-10-17 16:18:01 9392 3
原创 Android多媒体开发【6】-- 播放器的基本模型
AwesomePlayer 不管他有多神秘,说到底还是个多媒体播放器。在播放器的基本模型上,他与VCL、mplayer、ffmpeg等开源的结构是一致的。只是组织实现的方式不同。深入了解AwesomePlayer 之前,把播放器的基本模型总结一下,然后按照模型的各个部分来深入研究AwesomePlayer 的实现方式。说白了播放器大致分为4大部分:source、demux、deco
2012-10-08 14:37:02 8411 6
原创 Android多媒体开发【5】-- Stagefright原来是个皮包公司
通过上文我们已经进入到了StagefrightPlayer中,当满心激动的查看代码时发现 Stagefright其实就是个皮包公司status_t StagefrightPlayer::setDataSource( const char *url, const KeyedVector *headers) { return mPlayer->setDataSource
2012-10-07 19:52:57 5515 3
原创 Android多媒体开发【4】-- 上层mediaPlayer 是如何调到Stagefright的【2】【图解】
基于android 4.1.1 源码【1】mediaserver 启动后会把media相关一些服务添加到servicemanager中,其中就有mediaPlayerService.这样应用启动前,系统就有了mediaPlayerService这个服务程序。 int main(int argc, char** argv){ sp proc(ProcessSta
2012-10-03 13:21:01 12086 3
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人