stagefright框架概述
多媒体框架stagefright是android2.3后替代opencore的。整个框架非常庞大,这里将它分为编码器、解码器、合成器、分离器、PCM数据和YUV数据输入、数据源(DataSource)、渲染器、AudioPlayer等八个部分。接下来一系列博文会把stagefright分解为这八个部分来一一介绍,最后通过详细介绍Audio和Video的播放和录制过程来分析它们之间是如何关联的。
图1-1 stagefright数据流过程图
上图简单示意了播放和录制时,媒体数据流在stagefright框架的各部分的流转。
DataSource:从本地媒体文件或者流媒体读取数据,给分离器分析;
分离器:获取文件格式和分离多路track;
解码器:将压缩格式的音轨解码为PCM数据,视频经过解码为YUV数据;
渲染器:将解码出来的视频数据经过color转换为RGB输出到屏幕;
AudioPlayer:包含了audiotrack,将音频PCM数据输出到音频设备;
PCM数据和YUV数据输入:通过camera采集的YUV数据和mic采集的PCM数据送到编码器;
编码器:压缩音视频为各种编码格式的数据;
合成器:将压缩好的数据按照文件格式写入到媒体文件;
努力工作 创造价值