摘要: 用一句简单的话总结:RTSP发起/终结流媒体、RTP传输流媒体数据 、RTCP对RTP进行控制,同步。 之所以以前对这几个有点分不清,是因为CTC标准里没有对RTCP进行要求,因此在标准RTSP的代码中没有看到相关的部分。而在私有RTSP的代码中,有关控制、同步等,是在RTP Header中做扩展定义实现的。 另外,RFC3550可以看作是RFC1889的升级文档,只看RFC3550即可。RTP:实时传输协议(Real-time Transport Protocol)RTP/RTCP是实际传输数据的协议 RTP传输音频/视频数据,如果是PLAY,Server发送到Client端,如果是RECO 阅读全文
posted @ 2013-04-21 09:44 azraelly 阅读(429) 评论(0) 推荐(0) 编辑
摘要: 1. RGB、YUY2、YUYV、YVYU、UYVY、AYUV格式详解 阅读全文
posted @ 2013-02-04 12:22 azraelly 阅读(243) 评论(0) 推荐(0) 编辑
摘要: typedef struct _D3DPRESENT_PARAMETERS_{ UINT BackBufferWidth; UINT BackBufferHeight; D3DFORMAT BackBufferFormat; UINT BackBufferCount; D3DMULTISAMPLE_TYPE MultiSampleType; DWORD MultiSampleQuality; D3DSWAPEFFEC... 阅读全文
posted @ 2013-01-26 16:57 azraelly 阅读(1825) 评论(0) 推荐(0) 编辑
摘要: 以前经常遇到这个警告信息,因为运行并没有什么问题,所以也没深究。但是耿耿于怀那个“ 0 个错误,0 个警告”的成功提示,在网上搜了一下。原来问题出在默认库的引用选择上。VS2008,项目——属性——配置属性——C/C++——代码生成:他有/MT,/MTd,/Md,/MDd四个选项,你必须让所有使用的库都使用相同的配置,否则就会有相应的提示,甚至可能会出现无法解析的函数。有时我们使用的库不是自己可以控制的,那么就只能把工程属性设置成河你使用的库相同的选项。错误1 error LNK2005: _free 已经在 libcmtd.lib(dbgheap.obj) 中定义 MSVCRT.lib错误2 阅读全文
posted @ 2013-01-20 23:18 azraelly 阅读(1360) 评论(0) 推荐(0) 编辑
摘要: 研究生阶段一直使用C++,到工作时,才接触到Java。写了这么多年的多线程程序,觉得对于互斥(注意,不是同步哦)的各种锁有必要做个总结。这里我想将Windows,Linux和Java JVM三种环境中使用锁的环境及虽然将Windows,Linux和Java JVM放在一起比较是有些不合适的,但是对基于Windows操作系统C++,Linux操作系统C++及Java程序而言,在应用层面上来说,这种横向比较对于加深对于多线程互斥中锁应用上的理解,是有意义的。如果有不正确的地方,欢迎指正。Windows有InterLock系列函数,CRITICAL_SECTION临界区,SRWLock读写锁,Mut 阅读全文
posted @ 2013-01-20 12:30 azraelly 阅读(1994) 评论(0) 推荐(1) 编辑
摘要: C++ 虚函数表解析陈皓http://blog.csdn.net/haoel前言C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。关于虚函数的使用方法,我在这里不做过多的阐述。大家可以看看相关的C++的书籍。在这篇文章中,我只想从虚函数的实现机制上面为大家一个清晰的剖析。当然,相同的文章在网上 阅读全文
posted @ 2013-01-18 09:21 azraelly 阅读(324) 评论(0) 推荐(0) 编辑
摘要: 前言07年12月,我写了一篇《C++虚函数表解析》的文章,引起了大家的兴趣。有很多朋友对我的文章留了言,有鼓励我的,有批评我的,还有很多问问题的。我在这里一并对大家的留言表示感谢。这也是我为什么再写一篇续言的原因。因为,在上一篇文章中,我用了的示例都是非常简单的,主要是为了说明一些机理上的问题,也是为了图一些表达上方便和简单。不想,这篇文章成为了打开C++对象模型内存布局的一个引子,引发了大家对C++对象的更深层次的讨论。当然,我之前的文章还有很多方面没有涉及,从我个人感觉下来,在谈论虚函数表里,至少有以下这些内容没有涉及:1)有成员变量的情况。2)有重复继承的情况。3)有虚拟继承的情况。4) 阅读全文
posted @ 2013-01-18 09:18 azraelly 阅读(430) 评论(0) 推荐(0) 编辑
摘要: 内容摘自《ffmpeg/ffplay源码剖析》1.播放器一般原理 可以直观的看到播放这个媒体文件的基本模块(filter),七个模块按广度顺序:读文件模块(source filter),解复用模块(Demux filter),视/音频解码模块(Decode filter),颜色空间转换模块(ColorSpace converter filter),视频/音频播放模块(Render filter)。Source filter 源过滤器的作用是为下级demux filter 以包的形式源源不断的提供数据流,在下一级的demux filter 看来,本地文件和网络数据是一样的 Demux filte 阅读全文
posted @ 2013-01-18 09:12 azraelly 阅读(5730) 评论(1) 推荐(0) 编辑
摘要: YUV420数据拷贝: int picSize = codec_->height * codec_->width; int newSize = picSize * 1.5; //申请内存 unsigned char *buf = new unsigned char[newSize]; int height = p->codec->height; int width = p->codec->width; //写入数据 int a=0,i; for (i=0; i<height; i++) { memcpy(b... 阅读全文
posted @ 2013-01-17 22:54 azraelly 阅读(589) 评论(0) 推荐(0) 编辑
摘要: near指针和far指针?在DOS下(实模式)地址是分段的,每一段的长度为64K字节,刚好是16位(二进制的十六位)。near指针的长度是16位的,所以可指向的地址范围是64K字节,通常说near指针的寻址范围是64K。far指针的长度是32位,含有一个16位的基地址和16位的偏移量,将基地址乘以16后再与偏移量相加,(所以实际上far指针是20位的长度。)即可得到far指针的1M字节的偏移量。所以far指针的寻址范围是1M字节,超过了一个段64K的容量。例如一个far指针的段地址为0x7000,偏移量为0x1244,则该指针指向地址0x71224.如果一个far指针的段地址是0x7122,偏 阅读全文
posted @ 2013-01-17 11:40 azraelly 阅读(511) 评论(0) 推荐(0) 编辑