《精通Android 5 多媒体开发》——第6章,第6.1节视频系统结构-阿里云开发者社区

开发者社区> 异步社区> 正文

《精通Android 5 多媒体开发》——第6章,第6.1节视频系统结构

简介:
+关注继续查看

本节书摘来自异步社区《精通Android 5 多媒体开发》一书中的第6章,第6.1节视频系统结构,作者 王石磊,更多章节内容可以访问云栖社区“异步社区”公众号查看

6.1 视频系统结构
精通Android 5 多媒体开发
在Android系统中,视频输出系统对应的是Overlay子系统,此系统是Android的一个可选系统,用于加速显示输出视频数据。视频输出系统的硬件通常叠加在主显示区之上的额外的叠加显示区。这个额外的叠加显示区和主显示区使用独立的显示内存。在通常情况下,主显示区用于输出图形系统,通常是RGB颜色空间。额外显示区用于输出视频,通常是YUV颜色空间。主显示区和叠加显示区通过Blending(硬件混淆)自动显示在屏幕上。在软件部分我们无需关心叠加的实现过程,但是可以控制叠加的层次顺序和叠加层的大小等内容。

Overlay系统的基本层次结构如图6-1所示。


e8f394469bdbc582566d33a9604e91a6f9341e8f

Android中的Overlay系统没有Java部分,在里面只包含了视频输出的驱动程序、硬件抽象层和本地框架等。Overlay系统的结构如图6-2所示。


83cf2a95581b58c9d8b29d6999ed5333fb985f64

在图6-2所示的系统结构中,各个构成部分的具体说明如下所示。

(1)Overlay驱动程序:通常是基于FrameBuffer或V4L2的驱动程序。在此文件中主要定义了两种结构,分别是data device和control device,这两个结构体分别针对data device和control device的函数open()和函数close()。这两个函数是注册到device_module里面的函数。

(2)Overlay硬件抽象层:代码路径如下所示。

hardware/qcom/display/liboverlay/overlay.h
Overlay硬件抽象层是一个Android中标准的硬件模块,其接口只有一个头文件。

(3)Overlay服务部分:代码路径如下所示。

frameworks/native/services/surfaceflinger/
由此可见,Overlay系统的服务部分包含在SurfaceFlinger中,此层次的内容比较简单,主要功能是通过类LayerBuffer实现的。首先要明确的是SurfaceFlinger只是负责控制merge Surface,比如说计算出两个Surface重叠的区域,至于Surface需要显示的内容,则通过Skia、Opengl和Pixflinger来计算。所以我们在介绍SurfaceFlinger之前先忽略里面存储的内容究竟是什么,先弄清楚它对merge的一系列控制的过程,然后再结合2D、3D引擎来看它的处理过程。

(4)本地框架代码。

在Overlay系统中,本地框架的头文件路径如下所示。

frameworks/native/include/ui
源代码路径如下所示。

frameworks/native/libs/ui
Overlay系统只是整个框架的一部分,主要功能是通过类Ioverlay和Overlay实现的,源代码被编译成libui.so,它提供的API主要在视频输出和照相机取景模块中使用。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
短视频app开发,短视频系统发展的收益方式是什么?
 时间一转眼来到了2020年底,短视频仍然是当前移动互联网发展中重要的娱乐方式之一,与直播系统不同,短视频APP开发最初垄断的领域比直播系统多,现在所涉及的广泛领域成为了短视频APP开发的重要优势。从其他行业引进短视频开发,以及当前短视频开发的流量优势可以看出短视频的受欢迎程度,短视频开发也有自己的独特收益方式。
56 0
抖音短视频系统开发,消息机制的原理细节处理
对于Android抖音短视频系统开发来说,Binder和Handler是两大利剑,分别实现了进程间和线程间的通讯。Android的消息机制
372 0
+关注
异步社区
异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。
12049
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载