从应用程序的角度看 OpenGL 图形系统的接口,主要包括两大部分,一部分是 EGL,它为 OpenGL 渲染准备环境;另一部分是 OpenGL,它执行图形渲染。通过这些接口构造渲染环境,并执行渲染的过程,可以参考 在 Android 中使用 OpenGL。
在 Android 中使用 OpenGL
Android 通过 OpenGL 包含了对高性能 2D 和 3D 图形的支持,特别是 OpenGL ES API。OpenGL 是一个跨平台的图形 API,它为 3D 图形处理硬件规定了一个标准的软件接口。OpenGL ES 是一种用于嵌入式设备的 OpenGL 规范。Android 支持多种版本的 OpenGL ES API:
Android 模拟器下载、编译及调试
Android 模拟器源码下载
Android 模拟器源码的下载与 Android AOSP 源码库的下载过程类似,可以参考 Google 官方提供的 Android 源码下载文档 来了解这个过程。
live555 源码分析:子会话 SETUP
在前面 live555 源码分析:子会话 SDP 行生成 一文中,我们看了 live555 中子会话 ServerMediaSubsession
的生命周期,并较为详细地分析了生成 SDP 行的 sdpLines()
,本文继续分析这一生命周期。
live555 源码分析:子会话 SDP 行生成
如我们在前文 live555 源码分析:ServerMediaSession 中看到的,H264VideoFileServerMediaSubsession
的继承层次体系如下图:
live555 源码分析:ServerMediaSession
在 live555 中,用一个 ServerMediaSession
表示流媒体会话,它连接了 RTSPServer
和下层流媒体传输逻辑。ServerMediaSession
和 ServerMediaSubsession
共同用于执行底层流媒体传输和状态维护。而 ServerMediaSession
则是在 GenericMediaServer
中,通过 HashTable
来维护的。
live555 源码分析: PLAY 的处理
在 SETUP
请求之后,客户端会发起 PLAY
请求,以请求服务器开始传输音视频数据。在 PLAY
请求执行时,一定是已经执行过 SETUP
请求,建立好了客户端会话,因而会与其它要求客户端会话已经建立的请求一起,通过 clientSession->handleCmd_withinSession()
执行: