b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

stagefright框架_stagefright漏洞修复_android6多媒体框架(4)

电脑杂谈  发布时间:2017-05-31 00:03:19  来源:网络整理

4.1》AwesomePlayer的Video主要有以下几个成员:

mVideoSource(解码视频)

mVideoTrack(从多媒体文件中读取视频数据)

mVideoRenderer(对解码好的视频进行式转换,android使用的式为RGB565)

mISuce(重绘图层)

mQueue(event事件队列)

4.2》stagefright运行时的Audio部分抽象流程如下:

设置mUri的路径

启动mQueue,创建一个线程来运行 threadEntry(命名为TimedEventQueue,这个线程就是event调度器)

打开mUri所指定的文件的头部,则会根据类型选择不同的分离器(如MPEG4Extractor)

使用 MPEG4Extractor对MP4进行音视频轨道的分离,并返回MPEG4Source类型的视频轨道给mVideoTrack

根据 mVideoTrack中的编码类型来选择,avc的编码类型会选择CDecoder,并返回给mVideoSource,并设置mVideoSource中的mSource为mVideoTrack

插入onVideoEvent到Queue中,开始解码播放

通过mVideoSource对象来读取解析好的视频buffer

如果解析好的buffer还没到时间戳同步的时刻,则推迟到下一作

mVideoRenderer为空,则进行初始化(如果不使用 OMX会将mVideoRenderer设置为AwesomeLocalRenderer)

通过mVideoRenderer对象将解析好的视频buffer转换成RGB565式,并发给display模块进行图像绘制

将onVideoEvent重新插入event调度器来循环

4.3》数据由源到最终解码后的流程如下:

URI,FD

DataSource

MediaExtractor

|

mVideoTrack mAudioTrack//音视频数据流

mVideoSource mAudioSource//音视频

| |

mVideoBuffer mAudioPlayer

说明:

设置DataSource,数据源可以两种URI和FD。URI可以,rtsp://等。FD是一个本地文件描述符,能过FD,可以找到对应的文件。

由DataSource生成MediaExtractor。通过sp<MediaExtractor> extractor = MediaExtractor::Create(dataSource);来实现。 MediaExtractor::Create(dataSource)会根据不同的数据内容创建不同的数据读取对象。

通过调用setVideoSource由MediaExtractor分解生成音频数据流(mAudioTrack)和视频数据流(mVideoTrack)。

onPrepareAsyncEvent()如果DataSource是URL的话,根据地址获取数据,并开始缓冲,直到获取到mVideoTrack和 mAudioTrack。mVideoTrack和mAudioTrack通过调用initVideoDecoder()和 initAudioDecoder()来生成 mVideoSource和mAudioSource这两个音视频。然后调用postBufferingEvent_l()提交事件开启缓冲。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-50200-4.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 醴陵士人
      醴陵士人

      #给烊烊520#1128生日评论集体向520万刷起来#护千玺到远方##易烊千玺真的很不错#

    • 崔素娥
      崔素娥

      雷不死给了多少钱

    热点图片
    拼命载入中...