
live555源码分析
文章平均质量分 83
分析Live555的源码
天空中的野鸟
这个作者很懒,什么都没留下…
展开
-
6 live555源码分析(六)——live555 RTSP工作流程(三)
live555继承关系比较复杂,所以做图记录下h264文件发送过程中关键变量的类型。上一篇从源码分析了OPTION和DESCRIBE的运行流程。这篇分析剩下的SETUP和PLAY的运行流程。一、 SETUP if (!requestIncludedSessionId) { // No session id was present in the request. // So create a new "RTSPClientSession" object for this request.原创 2021-10-30 21:57:35 · 904 阅读 · 4 评论 -
5 live555源码分析(五)——live555 RTSP工作流程(二)
上一篇我们通过WireShark抓包获取到了RTSP通信的流程,本篇文章通过代码去分析每个流程的工作原理。live555的继承关系太过复杂,所以做了个图简单记录一下与h264文件传输相关的类继承关系一、OPTIONOPTION比较简单,就是客户端向服务端请求可用的方法。服务端收到客户端发来的OPTION指令后,调用函数handleCmd_OPTIONS进行处理void RTSPServer::RTSPClientConnection::handleCmd_OPTIONS() { snprint原创 2021-10-30 19:50:01 · 1700 阅读 · 0 评论 -
4 live555源码分析(四)——live555 工作流程(一)
本文继续对live555源码进行分析。以testOnDemandRTSPServer.cpp为例进行分析。本文只分析传输H264文件的过程。一、 mian函数int main(int argc, char** argv) { // Begin by setting up our usage environment: TaskScheduler* scheduler = BasicTaskScheduler::createNew(); env = BasicUsageEnvironment::原创 2021-10-30 15:00:27 · 976 阅读 · 0 评论 -
3 live555源码分析(三)——live555 任务调度
一、TaskSchedulerTaskScheduler类是任务调度的基础抽象类,live555将任务分为三种类型,分别是延迟任务、事件任务和后台IO任务,在这个类中定义了三种任务的调度函数。TaskScheduler类跟UsageEnvironment定义在相同的文件中UsageEnvironment/include/UsageEnvironment.h:class TaskScheduler {public: virtual ~TaskScheduler(); virtual Task原创 2021-10-25 15:03:08 · 1552 阅读 · 1 评论 -
2 live555源码分析(二)——live555 基础运行环境
一、基础组件总览本篇开始分析live555的基础组件,也就是基础运行环境所需要的组件类。UasgeEnvionment相关类的关系如下图所示UsageEnvironment类是个抽象类,提供基础的运行环境,它依赖于TaskScheduler类来进行任务的调度。BasicUsageEnvironment0继承自UsageEnvironment,是对UsageEnvironment的初步实现,但是也是个抽象类,真正的实现在BasicUsageEnvironment类。BasicUsageEnviron原创 2021-10-22 10:58:20 · 941 阅读 · 0 评论 -
1 live555源码分析(一)——live555编译与运行
一、live555概述live555是一个基于C++开发的开源的流媒体服务解决方案,它实现了标准的流媒体传输协议(如RTP/RTCP、RTSP、SIP)。官网地址http://www.live555.com/。二、live555源码下载live555可以直接从官网下载,一直在维护更新,可以直接下载最新版http://www.live555.com/liveMedia/public/live555-latest.tar.gz。三、live555编译live555是跨平台的,本文以Linux平台进行分原创 2021-10-21 16:59:56 · 3766 阅读 · 1 评论