
live555学习笔记【4】---RTSP服务器(二)
上篇文章 live555学习笔记【3】---RTSP服务器(一) 上篇文已经将整个RTSP服务器的处理流程分析过了,接下来我们再细看RTSP服务器对客户端报文的处理。本篇博客需要深入分析服务器对客户端报文的处理,所以要求你对RTSP、SDP协议有一定的了解.我们先来分析一下客户端信息处理函数handleRequestBytes(中的)RT
2,3,4,5,6,7,8,9,10,11,12,13,14
上篇文章 live555学习笔记【3】---RTSP服务器(一) 上篇文已经将整个RTSP服务器的处理流程分析过了,接下来我们再细看RTSP服务器对客户端报文的处理。本篇博客需要深入分析服务器对客户端报文的处理,所以要求你对RTSP、SDP协议有一定的了解.我们先来分析一下客户端信息处理函数handleRequestBytes(中的)RT
Live555库是一个使用开放标准协议如RTP/RTCP、RTSP、SIP等实现多媒体流式传输的开源C 库集。这些函数库可以在Unix、Windows、QNX等操作系统下编译使用,基于此建立RTSP/SIP服务器和客户端来实现多媒体流的传输。下面给出具体实现过程:(1)客户端发起RTSP OPTION请求,目的是得到服务器提供什么方法。R
接下来,我们正式进入live555的学习,live555项目的源代码中包括四个基本的库、各种测试代码以及Media Server。 四个基本的库分别是: UsageEnvironment、groupsock、 liveMedia以及BasicUsageEnvironment。首先,我们先来学习live555中比较重要的几个类,不一定对其完
一、简介:live555是一个为流媒体提供解决方案的跨平台的C++开源项目,它实现了对标准流媒体传输是一个为流媒体提供解决方案的跨平台的C++开源项目,它实现了对标准流媒体传输协议如RTP/RTCP、RTSP、SIP等的支持。Live555实现了对多种音视频编码格式的音视频数据的流化、接收和处理等支持。推荐一个特别好用的微信公众号:码客资
对象初始化的方式有很多种,特别是C++11新引入了统一初始化,可以用于一切场合的初始化,至少从概念上可以这么理解。目前常见的初始化方式大概有以下几种:int x(0);//使用小括号初始化int y = 0; //使用等号初始化int z{0};//使用C++11新引入的统一初始化格式,即大括号初始化int
虽然auto用起来确实好处多多,到那时也并不是万能的,在有些场景下,我们就不得不使用带显示型别的初始化。例如如下代码:std::vector<bool> features() { std::vector<bool> temp; f
第四章是无用的,这里暂时不整理了。废话补多少,直接总结一下使用auto的好处:1、对于变量未初始化情况,如果使用显示显示型别声明,程序猿将无感知,但是如果使用了auto进行变量声明,将提醒你编译错误。int x1; //有潜在的未初始化风险,编译器最多给告警auto x2; //未初始化,编译报错2、可以使用auto来表示只有编译器才知
decltype是C++11新增的一个关键字,它的主要用途是那些返回值依赖于形参型别的函数模板。一般来说decltype告诉你的结果与你预测的几乎相同,所以这里就不再累述,只需要记住以下几点即可:decltype(expression) var; 具体判断逻辑如下:(1)如果expression没有使用括号括起来,则类型与expressi
首先auto型别推导与模板型别推导完全相同,也是按照前面说的三种情况进行推导,唯一的区别是在对大括号括起来的表达式进行推导时,auto会将其推导为一个std::initializer_list<T>的类型。代码示例如下:auto x1 = 27;//x1型别为intauto x2(27); //x2型别为intauto x3&
C++98仅有一套型别推导,用于函数模板。C++11对这套规则进行了一些改动并增加了两套规则,一套用于auto,一套用于decltype。后来C++14又扩展了能够运用auto和decltype的语境。下面先重点讲一下auto关键字的使用语境:请允许我使用一小段伪代码来说明。函数模板的大致形如:template<Class T>