WolfcsTech


  • 首页

  • 分类

  • 归档

  • 标签

  • 关于

  • 公益 404

Android 图形驱动初始化

发表于 2017-09-14 | 分类于 Android 图形系统 | | 阅读次数:

从应用程序的角度看 OpenGL 图形系统的接口,主要包括两大部分,一部分是 EGL,它为 OpenGL 渲染准备环境;另一部分是 OpenGL,它执行图形渲染。通过这些接口构造渲染环境,并执行渲染的过程,可以参考 在 Android 中使用 OpenGL。

阅读全文 »

在 Android 中使用 OpenGL

发表于 2017-09-13 | 分类于 Android 图形系统 | | 阅读次数:

Android 通过 OpenGL 包含了对高性能 2D 和 3D 图形的支持,特别是 OpenGL ES API。OpenGL 是一个跨平台的图形 API,它为 3D 图形处理硬件规定了一个标准的软件接口。OpenGL ES 是一种用于嵌入式设备的 OpenGL 规范。Android 支持多种版本的 OpenGL ES API:

阅读全文 »

使用 GDB 调试 Android 应用

发表于 2017-09-12 | 分类于 Android开发 | | 阅读次数:

GNU 工程调试器(GDB)是一个常用的 Unix 调试器。本文详述使用 gdb 调试 Android 应用和进程的方法。

阅读全文 »

Android 模拟器下载、编译及调试

发表于 2017-09-11 | 分类于 虚拟化 | | 阅读次数:

Android 模拟器源码下载

Android 模拟器源码的下载与 Android AOSP 源码库的下载过程类似,可以参考 Google 官方提供的 Android 源码下载文档 来了解这个过程。

阅读全文 »

live555 源码分析:播放启动

发表于 2017-09-08 | 分类于 live555 | | 阅读次数:

本文分析 live555 中,流媒体播放启动,数据开始通过 RTP/RTCP 传输的过程。

阅读全文 »

live555 源码分析:子会话 SETUP

发表于 2017-09-08 | 分类于 live555 | | 阅读次数:

在前面 live555 源码分析:子会话 SDP 行生成 一文中,我们看了 live555 中子会话 ServerMediaSubsession 的生命周期,并较为详细地分析了生成 SDP 行的 sdpLines(),本文继续分析这一生命周期。

阅读全文 »

live555 源码分析:子会话 SDP 行生成

发表于 2017-09-07 | 分类于 live555 | | 阅读次数:

如我们在前文 live555 源码分析:ServerMediaSession 中看到的,H264VideoFileServerMediaSubsession 的继承层次体系如下图:

阅读全文 »

live555 源码分析:ServerMediaSession

发表于 2017-09-07 | 分类于 live555 | | 阅读次数:

在 live555 中,用一个 ServerMediaSession 表示流媒体会话,它连接了 RTSPServer 和下层流媒体传输逻辑。ServerMediaSession 和 ServerMediaSubsession 共同用于执行底层流媒体传输和状态维护。而 ServerMediaSession 则是在 GenericMediaServer 中,通过 HashTable 来维护的。

阅读全文 »

live555 源码分析:RTSPServer 组件结构

发表于 2017-09-06 | 分类于 live555 | | 阅读次数:

前面几篇文章分析了 live555 中 RTSP 的处理逻辑,RTSP 处理有关组件的处理逻辑有点复杂,本文就再来梳理一下它们之间的关系。

阅读全文 »

live555 源码分析: PLAY 的处理

发表于 2017-09-05 | 分类于 live555 | | 阅读次数:

在 SETUP 请求之后,客户端会发起 PLAY 请求,以请求服务器开始传输音视频数据。在 PLAY 请求执行时,一定是已经执行过 SETUP 请求,建立好了客户端会话,因而会与其它要求客户端会话已经建立的请求一起,通过 clientSession->handleCmd_withinSession() 执行:

1
2
3
4
5
6
7
8
9
10
11
} else if (strcmp(cmdName, "TEARDOWN") == 0
|| strcmp(cmdName, "PLAY") == 0 || strcmp(cmdName, "PAUSE") == 0
|| strcmp(cmdName, "GET_PARAMETER") == 0
|| strcmp(cmdName, "SET_PARAMETER") == 0) {
if (clientSession != NULL) {
clientSession->handleCmd_withinSession(this, cmdName, urlPreSuffix,
urlSuffix, (char const*) fRequestBuffer);
} else {
handleCmd_sessionNotFound();
}
}

阅读全文 »
1…8910…21
Han Pengfei

Han Pengfei

207 日志
19 分类
30 标签
GitHub 豆瓣 知乎 E-Mail
Links
  • Android Developers
  • Android Open Source Project
  • 蚂蚁网
© 2016.09.16 — 2020 Han Pengfei
由 Hexo 强力驱动
|
主题 — NexT.Mist v6.0.3