- 博客(11)
- 资源 (2)
- 收藏
- 关注
原创 动态内存分配
计算机的系统中有四个内存区域: 1)栈: 栈里面储存局部变量以及形参; 2)字符常量区: 主要是储存一些字符常量,比如:char *p_str=”hello”;其中”hello”就储存在字符常量区里面; 3)全局区: 在全局区里储存一些全局变量和(static)静态变量; 4)堆: 堆主要是通过动态分配的储存空间。 什么时候我们需要动态分配内存空间呢? 我们定义
2016-01-24 15:14:45 467
翻译 Live555 Streaming Media
原文在这里 -> http://www.live555.com/liveMedia/ 这份代码由一系列使用开放标准协议(RTP/RTCP,RTSP,SIP)的C++多媒体流库文件组成。这些库文件可以在Unix(包括Linux和Mac OS X)、Windows和QNX下编译,之后即可用于构建流媒体应用程序。这些库文件已被用于实现LIVE555 Media Server、L
2016-01-19 21:24:39 584
转载 SDP会话描述协议中的参数整理
v= (protocol version) //v=0 o= (owner/creator and session identifier). //o= //例如:o=sname1234567890 0987654321 IN IP4126.15.64.3 s= (session name)
2016-01-19 21:20:58 808
转载 RTSP协议格式
RTSP(Real Time Streaming Protocol,实时流媒体协议),是由Real Network和Netscape共同提出的如何有效地在IP网络上传输流媒体数据的应用层协议。RTSP提供一种可扩展的框架,使能够提供能控制的,按需传输实时数据,比如音频和视频文件。源数据可以包括现场数据的反馈和存贮的文件。RTSP对流媒体提供了诸如暂停,快进等控制,而它本身并不传输数据,RTSP的作
2016-01-19 21:19:42 1437
转载 (三)H264NAL的分析处理
转载 增加一些说明 ------------------------------ H.264的NAL层处理 ------------------------------ H264以NALU(NAL unit)为单位来支持编码数据在基于分组交换技术网络中传输。 NALU定义了可用于基于分组和基于比特流系统的基本格式,同时给出头信息,从而提供了视频编码和外部世界的接口。
2016-01-18 22:49:02 4062
转载 (二)H264语法及结构
名词解释 场和帧 : 视频的一场或一帧可用来产生一个编码图像。在电视中,为减少大面积闪烁现象,把一帧分成两个隔行的场。 片: 每个图象中,若干宏块被排列成片的形式。片分为I片、B片、P片和其他一些片。 I片只包含I宏块,P片可包含P和I宏块,而B片可包含B和I宏块。 I
2016-01-18 21:39:44 625
转载 (一)H264编码原理以及I帧B帧P帧
---------------------- 前言 ----------------------- H264是新一代的编码标准,以高压缩高质量和支持多种网络的流媒体传输著称,在编码方面,我理解的他的理论依据是:参照一段时间内图像的统计结果表明,在相邻几幅图像画面中,一般有差别的像素只有10%以内的点,亮度差值变化不超过2%,而色度差值的变化只有1%以内。所以对于一段变化
2016-01-18 21:21:26 2910
原创 socket编程学习(二)地址转换与套接字
1,in_addr_t inet_addr(const char *cp) 将IP地址转换成一个32位的整数 我们举个例子 int main() { unsigned int addr=inet_addr("192.168.1.100"); printf("addr is %u\n",ntohl(addr)); unsigned int ip = ntohl(a
2016-01-09 15:49:15 447
原创 socket编程学习(一)字节序
网络字节序有分两种: 大端字节序:最高有效位存储于最低内存地址,最低有效位存储于最高内存地址 小端字节序:最高有效位存储于最高内存地址,最低有效位存储于最低内存地址 举个例子 unsigned int x =0x12345678; unsigned char *p = (unsigned char *)&x; printf("%x_%x_%x_%x",p[0],p[1]
2016-01-09 15:40:46 1477
原创 数组基础
int main() { int a[5]={0x01}; unsigned char b[]={0x00,0x01}; printf("%d ,%d", sizeof(a),sizeof(a)/sizeof(*a)); printf("%d ,%d", sizeof(b),sizeof(b)/sizeof(*b)); } 20,5 8,2 数组名可以看做是一
2015-11-15 14:44:50 318
原创 指针基础
* 指针的本质是个变量,需要占用一定的内存 * 指针用于保存内存地址的值 * 不同类型的指针占用的内存是一样的,和硬件(地址总线)有关系 “*”号 表示所声明的变量为指针,表示取指针所指向的内存空间中的值 “*”号 就是一把钥匙,通过这把钥匙可以打开内存,读取内存中的值 *((int *)0xff224c)= 100 ; // 用 * 钥匙 打开 一个 强制类型转
2015-11-08 17:03:15 359
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人