posts - 34, comments - 90, trackbacks - 0, articles - 0

     摘要: 产生段错误就是访问了错误的内存段,一般是你没有权限,或者根本就不存在对应的物理内存,尤其常见的是访问0地址。

一般来说,段错误就是指访问的内存超出了系统所给这个程序的内存空间,通常这个值是由gdtr来保存的,它是一个48位的寄存器,其中的32位是保存由它指向的gdt表,后13位保存相应于gdt的下标,最后3位包括了程序是否在内存中以及程序在cpu中的运行级别,指向的gdt是以64位为一个单位的表,在这张表中就保存着程序运行的代码段、数据段的起始地址、与此相应的段限和页面交换、程序运行级别还有内存粒度等等的信息。一旦一个程序发生了越界访问,cpu就会产生相应的异常保护,于是segmentation fault就出现了.
  阅读全文

posted @ 2008-09-05 14:52 猫头鹰 阅读(6986) | 评论 (0)编辑 收藏

     摘要: 当在C中定义了一个结构类型时,它的大小是否等于各字段(field)大小之和?编译器将如何在内存中放置这些字段?ANSI C对结构体的内存布局有什么要求?而我们的程序又能否依赖这种布局?这些问题或许对不少朋友来说还有点模糊,那么本文就试着探究它们背后的秘密。

首先,至少有一点可以肯定,那就是ANSI C保证结构体中各字段在内存中出现的位置是随它们的声明顺序依次递增的,并且第一个字段的首地址等于整个结构体实例的首地址。比如有这样一个结构体:
  阅读全文

posted @ 2008-09-05 13:03 猫头鹰 阅读(286) | 评论 (0)编辑 收藏

     摘要: 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。

一.对齐的作用和原因:
各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地址开始存取。比如有些架构的CPU在访问一个没有进行对齐的变量的时候会发生错误,那么在这种架构下编程必须保证字节对齐.其他平台可能没有这种情况,但是最常见的是如果不按照适合其平台要求对数据存放进行对齐,会在存取效率上带来损失。比如有些平台每次读都是从偶地址开始,如果一个int型(假设为32位系统)如果存放在偶地址开始的地方,那么一个读周期就可以读出这32bit,而如果存放在奇地址开始的地方,就需要2个读周期,并对两次读出的结果的高低字节进行拼凑才能得到该32bit数据。显然在读取效率上下降很多。
  阅读全文

posted @ 2008-09-05 12:59 猫头鹰 阅读(579) | 评论 (0)编辑 收藏

     摘要: linux 下基于jrtplib库的实时传送实现
一、RTP 是进行实时流媒体传输的标准协议和关键技术
实时传输协议(Real-time Transport Protocol,PRT)是在 Internet 上处理多媒体数据流的一种网络协议,利用它能够在一对一(unicast,单播)或者一对多(multicast,多播)的网络环境中实现传流媒体数据的实时传输。RTP 通常使用 UDP 来进行多媒体数据的传输,但如果需要的话可以使用 TCP 或者 ATM 等其它协议。

协议分析 :每一个RTP数据报都由头部(Header)和负载(Payload)两个部分组成,其中头部前 12 个字节的含义是固定的,而负载则可以是音频或者视频数据。  阅读全文

posted @ 2008-09-03 18:17 猫头鹰 阅读(1293) | 评论 (0)编辑 收藏

     摘要: 一、流媒体简介
随着Internet 的日益普及,在网络上传输的数据已经不再局限于文字和图形,而是逐渐向声音和视频等多媒体格式过渡。目前在网络上传输音频/视频(Audio/Video,简称A/V)等多媒体文件时,基本上只有下载和流式传输两种选择。通常说来,A/V文件占据的存储空间都比较大,在带宽受限的网络环境中下载可能要耗费数分钟甚至数小时,所以这种处理方法的延迟很大。如果换用流式传输的话,声音、影像、动画等多媒体文件将由专门的流媒体服务器负责向用户连续、实时地发送,这样用户可以不必等到整个文件全部下载完毕,而只需要经过几秒钟的启动延时就可以了,当这些多媒体数据在客户机上播放时,文件的剩余部分将继续从流媒体服务器下载。  阅读全文

posted @ 2008-09-03 17:41 猫头鹰 阅读(6992) | 评论 (2)编辑 收藏

     摘要: 最近这几天研究H.263编码,前几天把标准H.263解码库TMNDEC2.0理解了,这两天把H.263的标准编码库研究了一下,编码库的使用明显比解码库要复杂,一眼看上去好你多了很多的代码,令的有点眼花。花了点时间,注释了代码,发现比解码多出来的,主要是进行码率的控制的。而且还使用了两种方法,其它多出来的,就是很多的编码参数(它都弄成全局变量了)。过几天弄一个固定帧率(变码率)的精简版本DEMO出来。  阅读全文

posted @ 2008-09-03 09:26 猫头鹰 阅读(2800) | 评论 (9)编辑 收藏

     摘要: 我想大家都知道默认情况下,往Source Insight里输入中文,字间距相当的大,这篇文章将帮助你解决这个问题。具体设置如下:
1.Options->Style Properties
2. 在左边Style Name下找到Comment Multi Line和Comment.在其右边对应的Font属性框下的Font Name中选“Pick...” 设置为宋体、常规、小四。确定,退回Style Properties界面,Size设为10。最后设置Clolors框下Foreground,点“Pick...”选择一种自己喜欢的颜色就OK了。
3.Done

Source Insight3 中文操作(左右键、删除和后退键)支持宏:
  阅读全文

posted @ 2008-08-29 10:16 猫头鹰 阅读(1461) | 评论 (0)编辑 收藏

     摘要: 当 Visual C++ 项目启用了预编译头 (Precompiled header) 功能时,如果项目中同时混合有 .c 和 .cpp 源文件,则可能收到 C1853 编译器错误:fatal error C1853: 'pjtname.pch' precompiled header file is from a previous version of the compiler, or the precompiled header is C++ and you are using it from C (or vice versa)(致命错误C1853: “filename.pch”预编译头文件来自编译器的早期版本,或者预编译头为C++ 而在C 中使用它(或相反))。

该错误是因为当项目中混合了 .cpp 和 .c 文件时,编译器会对它们采取不同的编译方式(主要是因为对函数声明的处理方式不同),因而不能共用一个预编译头文件。在 VC++ 中,默认的预编译头文件是针对 C++ 的 (stdafx.h 和 stdafx.cpp),当然也可以创建针对 C 的预编译头。有趣  阅读全文

posted @ 2008-08-28 16:49 猫头鹰 阅读(13208) | 评论 (0)编辑 收藏

     摘要: 前一段时间以MPEG2为基础研究了RTP协议,并且完成了在RTP上承载MPEG2 ES流的程序,本来是想编写一个在JRTPLIB上的MPEG2视频广播程序的。但是由于这段时间另外一个视频标准吸引了我,那就是H.263标准,MPEG2和H.263是由两个不同的标准制定组织制定的,MPEG2注重的是高质量(DVD大家都熟悉了吧,数字有线电视的高清大家向往吧),和MPEG2相反,H.263注重的是码率,因此它是可视电话的视频压缩标准,它可以在64Kb/s的ISDN线路上进视频聊天(现在的ADSL更爽啦)。呵呵,爽。  阅读全文

posted @ 2008-08-28 16:31 猫头鹰 阅读(1977) | 评论 (0)编辑 收藏

     摘要: 想想最后一次我写BLOG,已经是好几年前的事了,还在学校的时候,那时候BLOG才刚出来不久。写了没多少编就没写了,原因很多,最主要原因就是毕业了,那时候找工作累死了,那有那闲情去写BLOG。

前段时间,很空的时候也有些时间写写,不过那是QQ的QZONE了,写的也主要是生活的一些琐事。

重新开BLOG的原因其实主要是这段时间在研究嵌入式视频处理,发现网上的资料太少了,“半桶水”--(指那些没有真正自己做过,只是简单百度或google一下就找到了答案的人)的误导也太多了。其它,对于RTP和MPEG,就连国外的学习资料都基本上没有,网上很多的对开源RTP代码的文章都只是对像JRTPLIB这类库以及它们的资料的一些转载和翻译。这些库的DEMO都只是完成了RTP的数据包的发送管理,和正真的音视频开发的DEMO一个都没有,想想,如果RTP和音视频分开,那RTP这个协议又有什么用呢!!我和网上的很多人一个,一开始一点头绪都没有,其实像我们这种视频初学者来说要求很简单,就是有个真的能用而又是看得懂的RTP音视频传输DEMO,  阅读全文

posted @ 2008-08-27 16:26 猫头鹰 阅读(867) | 评论 (3)编辑 收藏

仅列出标题
共4页: 1 2 3 4