- 博客(21)
- 资源 (6)
- 收藏
- 关注
原创 FFmpeg发送RTP封包的H264
7).序列号(SN):占16位,用于标识发送者所发送的RTP报文的序列号,每发送一个报文,序列号增1。接收端可以据此检测丢包和重建包序列,当下层的承载协议用UDP的时候,网络状况不好的时候可以用来检查丢包,同时出现网络抖动的情况可以用来对数据进行重新排序,序列号的初始值是随机的,同时音频包和视频包的sequence是分别记数的。2).填充位(P):填充标志,占1位,如果P=1,则该RTP包的尾部就包含附加的填充字节,在该报文的尾部填充一个或多个额外的八位组,它们不是有效载荷的一部分。
2024-03-15 17:24:48
2374
原创 xswitch-1.10.0 windows vs2022编译
最后需要编译FSComm,先移除该项目,然后重新加载./fscomm/FSComm.2008.vcproj。此种错误,都是因为FS工程中某*.exe不能用,大小为0所致;第二种情况:缺少7za1701.exe。第三种情况:缺少yasm.exe。至此编译问题全部解决...
2023-11-18 15:49:00
330
1
原创 MFC程序的执行过程
一、程序的诞生 1、application object 产生,内存于是获得配置,设立初值; 2、AfxWinMain执行AfxWinInit,后者调用AfxInitThread,把消息队列尽量加大到96; 3、AfxWinMain执行InitApplication,这是CWinApp的虚函数,但我们通常不必改写它; 4、AfxWinMain
2013-06-04 16:12:29
626
转载 VC/MFC之ListCtrl控件使用经验总结
MFC:CListCtrl类SDK:以 “ListView_”开头的一些宏。如 ListView_InsertColumn--------------------------------------------------------------------------------1. CListCtrl 风格 LVS_ICON: 为每个item显示大图标
2013-03-26 11:12:28
705
转载 VC++程序员如何做好界面
本屌丝在新春放假期间闲来无事,在各大编程论坛溜达了一圈。发现年前的帖子中,有VC++程序员在界面开发方面遇到了很多苦恼,有抱怨界面工作不好做的,有抱怨用错了界面库的,也有紧急求得技术问题帮助的。看到这些,想起了五年前的我。我那时正好在一家互联网公司担任技术总监一职,手下有三个人。那是一家刚创办的公司,老板是我初中同学,他在美国呆了几年拿到EMBA后到国内创业。在一次同学聚会上了解到彼此工作方向。后
2013-03-05 13:20:54
828
原创 定义一个结构体用于保存员工信息,写入文件后并将其显示出来
#include#includetypedef struct{ int ID; char name[20]; float salary;}employee;int main(){ employee e[3]={ {1001,"Lucy",4500}, {1002,"Jim",5000}, {1003,"James",4800} };
2013-02-24 16:37:28
1929
转载 C语言文件的读写
字符读写函数 :fgetc和fputc字符串读写函数:fgets和fputs数据块读写函数:freed和fwrite格式化读写函数:fscanf和fprinf 下面分别予以介绍。使用以上函数都要求包含头文件stdio.h。 13.1.1字符读写函数fgetc和fputc 字符读写函数是以字符(字节)为单位的读写函数。 每次可从文件读出或向文件写入一个字符。 1
2013-02-24 16:28:51
311
原创 C语言经典实例八
1、结构体的使用使用函数实现填充并打印结构体的信息#includetypedef struct{ int ID; char name[20]; char sex; int age;}student;int main(){ student s; printf("请输入学号:"); scanf("%d",&s.ID); printf("请输入姓名
2013-02-24 15:58:52
335
原创 c语言经典实例五
1、全局变量的栈#include#includeint INDEX;int data[20];/*#define MAXSIZE 100;typedef struct{ int data[MAXSIZE]; int top;}SeqStack,*PSeqStack;*///入栈bool push(int d){ if(INDEX
2013-02-24 15:14:49
234
原创 c语言经典实例四
1、变长数组的使用2、函数的基本使用计算两个浮点数的平均值3、函数练习判断一个整数是不是的素数4、递归算法计算n!5、递归的陷阱使用递归和递推计算第n项的裴波那契数列(1)递归算法(2)递推算法
2013-02-24 15:06:49
241
原创 C++抛出异常处理简单介绍
一、原理try{//1:抛出异常的代码//2:代码}catch(){//3:代码//4:抛出异常}finally{//5:代码}//6:代码首先要明确的一点是:不管try是否抛出异常,finally语句块都会执行。整个try,catch,finally执行有以下几种情况:1:try语句块没有抛出异常。如果是这种情况,程序
2013-02-24 13:34:47
486
原创 关于return、exit、continue和break的比较
return:用于结束一个函数,并赋值给函数返回值,在main函数中使用效果等同于exitexit:用于结束一个进程continue:使while或for或switch循环从循环体顶端开始break:可以立即终止循环,使程序跳转到循环体外继续执行举例:1、return函数#includeint main(){ printf("Hello World\n")
2013-01-23 11:56:19
535
原创 我所理解的C++的多态
虚继承:通过关键字virtual修该一个基类的声明,可以将它指定为被虚拟派生虚函数:virtual 返回值类型 虚函数名(形参表){……}纯虚函数:一个虚函数不需要或者不能写出任何实现时,被定义为纯虚函数例如:virtual void f()=0;抽象类:带有纯虚函数的类,不能被实例化,与接口的区别:1)抽象类是一类事物的高度聚合,那么对于继承抽象类的子类相对于抽象类来说,属
2013-01-22 15:07:30
226
原创 类的覆盖、重载和隐藏
覆盖:在基类中将一个成员函数的声明为虚函数,那么子类中所有与该函数具有相同函数原型(返回类型、函数名、参数表、常量属性、异常说明都相同)的成员函数就可以对基类中的虚函数形成覆盖重载:在同一个作用域中,函数名相同,参数表不同的函数构成重载关系隐藏:派生类的函数屏蔽了与其同名的基类函数举例:classA {public: void foo (void); // a
2013-01-22 14:12:42
279
原创 c++中关于类型兼容性规则的介绍
类型兼容性规则: 在需要基类对象的任何地方,都可以用公有派生类的对象来替代其替代主要包括一下情况1)派生类的对象可以赋值给基类的对象2)派生类的对象可以初始化基类的引用3)派生类对象的地址可以赋给指向基类的指针(这里常用)下面将以实例一一介绍:类的实现部分: class B{……}class D :public B{……}类的调用部分:B b1,*p
2013-01-22 12:41:29
1406
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人