共 17 篇文章 |
|
status_tStagefrightPlayer::setDataSource//封装了status_tAwesomePlayer::setDataSource_l()status_tStagefrightPlayer::setDataSource.status_tStagefrightPlayer::prepare() {status_tStagefrightPlayer::seekTo(int msec) //用来控制播放的命令。status_tStagefrightPlayer::getCurrentPosition(int *msec)status_tStagefrightPlayer::get... 阅128 转自开花结果 公众公开 11-12-26 13:39 |
StageFright框架流程解读1、 StageFright介绍 Android froyo版本多媒体引擎做了变动,新添加了stagefright框架,并且默认情况android选择stagefright,并没有完全抛弃opencore,主要是做了一个OMX层,仅仅是对 opencore的omx-component部分做了引用。视频解码器解码后通过mVideoSource->read读取一帧帧的数据,放到mVideoBuffer中,最后... 阅295 转6 评0 公众公开 11-12-22 18:15 |
阅304 转7 评0 公众公开 11-12-22 18:08 |
Android平台Stagefright中增加flv/f4v支持及相关原理介绍。整个视频播放的过程(我就懒得画图了): MediaPlayerService调用StagefrightPlayer StagefrightPlayer调用AwesomePlayer AwesomePlayer调用OMXCodec OMXCodec调用Extractor中相关方法 OMXCodec调用Android标准的IOMX接口(即Stagefright中的OMX实现),OMX实现调用OMXMaster,OMXMast... 阅1224 转12 评0 公众公开 11-12-22 18:06 |
Android StageFright之OpenMAX的實現Android StageFright之OpenMAX的實現。OMX主要完成三個任務,NodeInstance列表的管理,針對一個NodeInstance的操作以及事件的處理。對節點的操作NodeInstance的大部分方法的實現,如sendCommand等,都是通過OMX_Core.h中的巨集定義間接調用 OMX_Component.h中的OMX_COMPONENTTYPE這個struct中的相應函數指標... 阅546 转3 评0 公众公开 11-12-22 18:03 |
Android的MediaPlayer架构介绍 Android的MediaPlayer架构介绍。以开源的Android为例,MediaPlayer的代码主要在以下的目录中: JAVA程序的路径: packages/apps/Music/src/com/android/music/ JAVA类的路径: frameworks/base/media/java/android/media/MediaPlayer.java JAVA本地调用部分(JNI): frameworks/base/media/jni/android_media_Me... 阅471 转3 评0 公众公开 11-12-22 17:12 |
StagefrightPlayer 分析android stagefright StagefrightPlayer 分析。status_tStagefrightPlayer::setDataSource//封装了status_tAwesomePlayer::setDataSource_l()status_tStagefrightPlayer::setDataSource.status_tStagefrightPlayer::start()status_tStagefrightPlayer::seekTo(int msec) //用来控制播放的命令。status_tStagefrightPlaye... 阅397 转4 评0 公众公开 11-12-22 17:10 |
Android-StageFright之OpenMAX的实现 Android-StageFright之OpenMAX的实现。OMX主要完成三个任务,NodeInstance列表的管理,针对一个NodeInstance的操作以及事件的处理。对节点的操作NodeInstance的大部分方法的实现,如sendCommand等,都是通过OMX_Core.h中的宏定义间接调用 OMX_Component.h中的OMX_COMPONENTTYPE这个struct中的相应函数指针... 阅1977 转17 评0 公众公开 11-12-22 17:00 |
上一篇“数据流的封装“中,最后得到的两个MediaSource其实是两个OMXCodec。AwesomePlayer和mAudioPlayer都是从MediaSource 中得到数据进行播放的。AwesomePlayer得到的是最终需要渲染的原始视频数据,而mAudioPlayer读取的是最终需要播放的原始音频数据。也就是说,从OMXCodec中读到的数据已经是原始数据了。下面分析一下OMXCodec是怎么把数据... 阅2462 转11 评0 公众公开 11-12-22 16:53 |
Android-StageFright之数据流的封装和AwesomePlayer流程数据流的封装。strcasecmp(mime, MEDIA_MIMETYPE_CONTAINER_MPEG4) || !strcasecmp(mime, MEDIA_MIMETYPE_AUDIO_MPEG)) { return new MP3Extractor(source, meta);strcasecmp(mime, MEDIA_MIMETYPE_CONTAINER_MPEG2TS)) { return new MPEG2TSExtractor(source);3、通过调用setVideoSou... 阅428 转8 评1 公众公开 11-12-22 16:38 |