- 博客(62)
- 资源 (3)
- 收藏
- 关注
转载 API设计新思维:用流畅接口构造内部DSL
程序设计语言的抽象机制包含了两个最基本的方面:一是语言关注的基本元素/语义;另一个是从基本元素/语义到复合元素/语义的构造规则。在C、C++、Java、C#、Python等通用语言中,语言的基本元素/语义往往离问题域较远,通过API库的形式进行层层抽象是降低问题难度最常用的方法。比如,在C语言中最常见的方式是提供函数库来封装复杂逻辑,方便外部调用。不过普通的API设计方法存在一种天然的陷阱
2011-11-01 10:24:05
771
原创 加密基础知识
加密算法分类:对称加密算法(又称私钥加密):AES DES、TripleDES、RC2、RC4、RC5和Blowfish等。 效率高 DES 56位,废弃 AES 128位 加密强度是DES的1021倍,美国国家标准非对称加密算法(又称公钥加密):RSA DSA 生成一对密钥,公钥,私钥。 公钥用来加密和验证签名,私钥用来解密和签名。 算法复杂,
2011-06-07 10:05:00
1371
转载 ALSA声音编程介绍(译文)
<!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } --> ALSA提供插件,可以用来扩展功能。 一般集成显卡是没有硬件混音器
2011-06-07 10:02:00
1143
原创 Mozilla 平台小记
由于之前的项目决定在Linux上运行Mozilla平台,最后基于Mozilla开发基本应用。所以了解了一些Mozilla平台的开发。 虽然日后估计不会再用到了,当个人觉得还是很强大的一个平台,之前也看到过一个基于这个平台的企业应用,很不错。依赖Mozilla实现跨平台,并且可以用Linux+Mozilla实现个瘦客户端。小记如下:firefox 定制 一种是通过use
2011-06-07 09:55:00
867
原创 C++ placement new
<!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } -->这是以前记录下来的,现在发上来。其实这个用的机会不多。知道就可以了。 事实我们都会如何自定义一些new的行为,就是通过运算符重载。以下这个如果没看错的话就应该是stl提供的一些new重载。其实也是运算符重载,只是stl写好一些可能用
2011-06-07 09:50:00
757
原创 Xlib 学习笔记
<!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } -->Xlib学习笔记第一章1.2X Window System概念display:由键盘,鼠标和一个或多个屏幕组成的一个工作站screen:一个display可以有多个screenserver-client模型:窗口管理器事件X扩展
2011-06-07 09:42:00
5608
1
原创 音视频编解码基础知识
VBR 动态比特率, 需要容器支持提供音视频的同步方法CBR 固定比特率HDRIP: 重新编码,再次经过压缩的视频REMUX版本:意思是重新封装,从HD-DVD或者BD理提取音视频数据,封装到其他格式如TS或AVI中。容器 AVI:微软的,成熟老技术。不支持VBR,不支持流媒体,因为索引在文件尾部。 TS:Transfer stream. ts的每段可以分别
2011-06-07 09:40:00
5406
原创 Linux桌面环境中新的Status Notifier Specification
<!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } A:link { so-language: zxx } -->在ubuntu中所看到的systray icon目前有两种,一种就是旧的基于freedesktop system tray spcification的。而新的则是采用dbus实现
2011-06-07 09:38:00
1243
转载 显卡的vbe标准
<br />显卡的vbe标准 转自:http://blog.csdn.net/jcicheng/archive/2006/05/24/753649.aspx现在的显卡几乎全部支持VESA(电子视频标准协会)制定的标准,该标准的英文全称为VESA BIOS EXTENSION,简写VBE。这个标准经过1.0、1.1、1.2、2.0、2.0 Pro、3.0的升级,目前的最高版本是3.0。制订这个标准的成员来自Intel、Matrox、Microsoft、Nvidia、Phillips、SciTech、Tride
2011-02-24 11:52:00
5170
1
转载 显卡的vbe标准
<br />显卡的vbe标准 转自:http://blog.csdn.net/jcicheng/archive/2006/05/24/753649.aspx现在的显卡几乎全部支持VESA(电子视频标准协会)制定的标准,该标准的英文全称为VESA BIOS EXTENSION,简写VBE。这个标准经过1.0、1.1、1.2、2.0、2.0 Pro、3.0的升级,目前的最高版本是3.0。制订这个标准的成员来自Intel、Matrox、Microsoft、Nvidia、Phillips、SciTech、Tride
2011-02-24 11:52:00
1758
原创 关于显卡的基本工作原理
基本显示原理如下:一.顯示器的工作原理 目前在個人計算機上廣泛使用的是採用陰極射線管(CRT)的光柵掃瞄顯示器,我們在屏幕上所看到的顏色是由電子槍發出的電子束打在CRT屏幕背面的螢光層上的點形成的,通過控制點的亮度可以產生不同的顏色。電子束不斷地從左到右、從上到下掃瞄整個屏幕,使屏幕顯示出圖案,電子束以大約每秒70次的速率在屏幕上重畫這一圖案,這個過程稱為顯示刷新或屏幕刷新,具體的掃瞄頻率依賴於所用的顯示適配器(又稱為顯示卡)。電子束從屏幕的左上角開始向右掃瞄,到達屏幕的右邊緣後,電子束被關閉(水平斷開),
2011-02-24 11:50:00
2199
转载 若干经典的字符串哈希函数
<br />若干经典的字符串哈希函数转自:http://www.cnitblog.com/schkui/archive/2007/07/02/29320.html// RS Hash Function <br /> unsigned int RSHash( char * str)<br /> {<br /> unsigned int b = 378551 ;<br /> unsigned int a = 63689 ;<br />
2011-02-18 11:22:00
736
转载 小记:注意GCC链接中的库依赖,调整链接时库文件的顺序
转自:http://blog.csdn.net/ah__fu/archive/2007/08/01/1721013.aspxGCC在链接过程中,对参数中的库的顺序是有要求的,参数右侧的库会先于左侧的库加载,也就是说参数的解析是从右往左的。 假设库B依赖与库A,则链接的时候要写为: gcc -o bin B A 如果写为: gcc -o bin A B 则在B中引用的A中的内容就会无法链接通过。
2011-02-16 11:06:00
888
原创 用C/C++扩展Python
这两天接到一个任务,要求将一个C库封装成python模块,供python使用。以前玩过一阵子python,也没太深入,满足需求就够了。也一直好奇想看看C/C++如何扩展python。 之前也有大致看了下PyQt,PyGtk的实现。他们都使用了另一种描述语言,最后通过自动生成实现。我这个任务到只是封装一个C库,规模不大,永不到那么复杂,直接用python提供的api实现就可以了。 由C/C++写的python模块最终生成为一个.so(Linux平台)文件。在当前目录下就可以import进来了。那先
2011-02-15 15:44:00
1269
转载 Qt之深入理解gesture
<br />Qt之深入理解gesture<br />转自:http://www.thisisqt.com/forum/viewthread.php?tid=145<br /> GestureRecognizer, GestureQt最新的版本4.7中有五个gesture,分别是QPanGesture, QPinchGesture, QSwipeGesture, QTapAndHoldGesture, and QTapGesture, 前三个比较常用,但用过的人仍然很少,很多人人对这个gesture意思感觉也
2011-02-12 10:28:00
3275
转载 我对于数字电视基于TS流的节目解析流程2
转自:http://blog.sina.com.cn/s/blog_5412d47f0100lg95.htmlSI是对PSI的扩展, SI包括业务描述表(SDT)、事件信息表(EIT)、时间和日期表(TDT)、时间偏移表(TOT)、业务群关联表(BAT)和运行状态表(RST)、填充表(ST)、选择信息表(SIT)、间断信息表(DIT)等表信息。SI中的各表在实际使用中并不都需要传送,其中NIT、SDT、EIT、TDT是必需传送的,其它表则按照需要进行选择传送。a. SDT是Service Descripti
2011-02-10 16:53:00
2054
转载 我对于数字电视基于TS流的节目解析流程1
一.DVB机顶盒的工作原理(STB)1.射频信号2.中频信号3.QAM解调模块4.MPEG传输流5.抽取一个节目的PES数据6.视频解码模块7.输出到PAL/NTSC编码器8.模拟电视信号,送到接收设备(电视,PC等)关键技术: 数字电视广播接收前段 调谐器,QAM解调器 MPEG解码 解复用,解扰引擎和MPEG解压缩 视音频和图形处理 完成视音频的模拟编码以及图像处理功能 电缆调制解调器 双向调谐器,下行QAM,上行QPSK/QAM, 加解扰的技术MAC(媒体访问控制) CPU以及存储器 嵌
2011-02-10 16:52:00
4019
原创 Linux DVB api 笔记
<br />Linux DVB interface<br /><br />Demux <br />用途:硬件解复用<br />设备路径: /dev/dvb/adapter0/demux0<br /><br />数据类型:<br />dmx_output_t<br /><br />typedef enum<br />{<br /> DMX_OUT_DECODER,<br /> DMX_OUT_TAP,<br /> DMX_OUT_TS_TAP<br />} dmx_o
2011-02-10 10:38:00
6117
2
转载 TS流的解码过程-ES-PES-DTS-PTS-PCR
<br />TS流的解码过程-ES-PES-DTS-PTS-PCR <br /> <br /> <br />TS 流解码过程:<br />1. 获取TS中的PAT<br />2. 获取TS中的PMT<br />3. 根据PMT可以知道当前网络中传输的视频(音频)类型(H264),相应的PID,PCR的PID等信息。<br />4. 设置demux 模块的视频Filter 为相应视频的PID和stream type等。<br />5. 从视频Demux Filter 后得到的TS数据包中的payload 数据
2011-01-27 17:48:00
3484
1
原创 Xlib 学习笔记
<br /> <!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } --><br /><br /><br />第一章<br />1.2X Window System概念<br />display:由键盘,鼠标和一个或多个屏幕组成的一个工作站<br />screen:一个display可以有多个screen<br /><br />server-client模型:<br />窗口管理器<br />事件<br
2011-01-27 12:03:00
2245
1
翻译 Hal 规范
<br /> <!-- @page { margin: 2cm } H3 { margin-left: 0.16cm; margin-right: 0.16cm; margin-top: 0.16cm; margin-bottom: 0.16cm; background: #ffffff; border: none; padding: 0cm; color: #000000; background: #ffffff } H3.western { font-family
2011-01-27 11:59:00
3129
1
原创 Template Method模式与Strategy模式
<br /> <!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } A:link { so-language: zxx } --><br /><br /> 在面向对象系统的分析与设计过程中经常会遇到这样一种情况:对于某一个业务逻辑(算法实现)在不同的对象中有不同的细节实现,但是逻辑(算法)的框架(或通用的应用算法)是相同的。TemplateMethod提供了这种情况的一个实现框架。<
2011-01-27 11:53:00
787
原创 什么是XCB
<br /> <!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } --><br />简单看了下XCB的功能,作用,大致总结如下,不知道是否正确。暂时如此理解吧。<br /><br /><br />XCB是用来替代Xlib。当期Xlib实际是调用XCB。<br />XCB最大的特征是可以自动生成X协议的c语言绑定。<br />XLIB/XCB就是用XML文件描述的x协议,并生成x协议的c语言绑定<br
2011-01-27 11:50:00
13275
转载 xorg 架构 将来 以及一些基本常识浅析
<br /> <!-- @page { margin: 2cm } H2 { margin-left: 0.16cm; margin-right: 0.16cm; margin-top: 0.16cm; margin-bottom: 0.16cm; background: #ffffff; border: none; padding: 0cm; color: #000000; background: #ffffff } H2.western { font-family
2011-01-27 11:48:00
2465
原创 Qt 坐标系统
<br /><br />QT坐标系统<br /> <br />World Coordinates 逻辑坐标<br /> 世界变换<br />Window Coordinates 中间态坐标<br /> 窗口视口变换<br />Device Coordinates 物理坐标<br /> <br /> <br />世界变换<br />QPainter::setWorldMatrixEnabled<br />QPainter::setWorldTransform<br />QPainter::worldT
2011-01-27 11:41:00
2937
原创 Qt 字体大小的计算
在QFont当中有两种方式设置字体大小,一种是PixelSize,另一种是PointSize Point实际是磅,也就是 1/72 inch 我们可以从PainterDevice中得到当前DPI(Dot per inch)。因此 Pixel = DPI * Point / 72 例如设置字体为20Point。 那么字体的像素大小是 90 * 20 / 72 约等于 25. 可以将字体设置为25Pixel,看到字体的大小就是20Point和25Pixel大小是一样的。在字体大小中涉及了以
2011-01-27 11:30:00
3426
转载 九宫格的认识以及如何运用九宫格原理
转自:http://www.dzlover.net/share/tutorial-2/写在前面的话:从刺刺来到极限之后,发现在互助区和童鞋们PM我的内容很多都是没有弄明白九宫格原理,所以刺刺今日有空闲来写一篇关于九宫格的教程~(其实是刺刺偷懒,不想一遍遍解释了~哇哈哈~听到咯?以后刺刺都不解释了~休怪我无情m(_ _)m)————————————————什么是九宫格————————————————9宫格是一种我们给它的称呼而已。在主题制作中,它代表一种图片处理的方式。将图片画分9个区域,每个区域都有其参数,
2011-01-25 12:04:00
24639
3
转载 MPEG4、H.264与微软VC-1之争
<br />MPEG4:高昂的授权费<br /> 就当众人都认定MPEG-4必是继MPEG-1(Video CD)、MPEG-2(DVD-Video)之后的接班人时,突然有一件极令人沮丧的消息,那就是MPEG-4的技术授权费让许多运营商难以认同,不光是费用问题,就连计费方式也遭到强烈质疑,在最初的授权预案中,如果电视内容的营运商要以MPEG-4格式来播放节目,则每分钟要支付0.000333美元,或者是以每年每个收视用户收取0.25美元。<br /> 此方案一出,Apple、On2等业内厂商立即提出异议,
2011-01-20 12:19:00
1817
转载 有线数字视频广播(DVB-C)系统综述(三)
<br />3 DVB标准有线传输系统DVB—C <br /> 3.1 DVB标准有线传输系统组成 <br /><br />图<br /><br />图3 DVB标准有线传输系统组成<br /> DVB标准有线传输系统的组成如图3所示,它包括: <br />A.信号源 <br /> (1)本地播出设备的输出,如录像机、DVD/VCD播放机、视频服务器等; <br /> (2)多种电视信号,如卫星电视信号、有线电视信号、开路电视信号等; <br /> (3)现场信号采集,如演播室、比赛现场直播等;
2011-01-20 11:48:00
1949
转载 有线数字视频广播(DVB-C)系统综述(一)
[提要]本文系统、全面地阐述了有线数字视频广播系统所涉及的技术,以及DVB-C系统的构成,并针对DVB-C终端接收设备——机顶盒,在工作原理、模块构成和关键技术方面做了较为详细的介绍 随着世界经济技术的发展,宽带已成为当今社会最令商人兴奋的话题。电子商务、视频点播、网上购物、远程教育等一些在早几年对我们而言还十分陌生的词汇,如今己经家喻户晓、耳熟能详了。因为宽带的概念是伴随着互联网的普及出现的,所以人们总是不由自主地将两者关联起来,于是电信网络理所当然地成为了宽带服务的主要载体。从拨号上网到ISDN、D
2011-01-20 11:47:00
1824
转载 有线数字视频广播(DVB-C)系统综述(二)
<br /> 有线数字视频广播(DVB-C)系统综述(二) 收藏2.4 MPEG—2码流复用及业务信息 <br /> 音视频及数字信号首先经过MPEG—2编码器进行数据压缩,通过节目复用器形成基本码流(ES),基本码流经过打包后形成有包头的基本码流(PES)。代表不同音频、视频信号的PES流被送入传输复用器进行系统复用,复用后的码流叫做传输流(TS),传输流中包括多个节目源的不同信号。为了区分这些信号,在系统复用器上需要加入业务信息(SI),使接收端可以识别不同的节目。为了便于理解DVB传输系统的服务信
2011-01-20 11:47:00
1223
转载 构建数字有线电视DVB—C平台(一)
[提要]本文详细地阐述了如何利用有线电视网络构建数字电视DVB—C平台 由于数字电视技术具有众所周知的强大优越性,近年来,电视数字化的进程明显加快,模拟信号向数字信号过渡全面展开。它将引发一场信息技术革命,推动国家相关产业的升级换代,并带动其它基础产业(系统和整机、专用集成电路和芯片、关键部器件,特别是显示器件等)和相应的软件产业及系统集成(如嵌入式操作系统、中间件和应用软件等)的健康发展。 1 DVB—C平台的系统结构 DVB—C(Digital Video Broadcast—Cable)即有线
2011-01-20 11:46:00
1177
转载 构建数字有线电视DVB—C平台(二)
2.3 系统管理部分 各种管理服务器主要完成一些用户信息管理和计费工作,以及影视材料的管理工作和安全保密等,控制网络部分主要完成各种服务器中的各种信息传递工作及后台的影视材料和数据的交换。在进入数字前端输出部分前的最后处理是“加扰授权”,而加扰器的工作是与CA系统密切相关的,加扰器应可支持现在市场上的主要CA系统并基于开放性标准的,传输流的输入与输出采用ASI口,它的设计是基于DVB的“同密”标准的。用“同密”标准,就可以在同一个传输流中,使用两种或两种以上不同的CA系统,这一特点能使系统管理很方便增加
2011-01-20 11:46:00
1782
转载 MPEG2 TS流
<br /><br />声明:以下内容转帖自http://blog.lmtw.com/b/moreframe/archives/2006/40865.html,作者写的非常好,感谢作者的辛苦。<br />应该说真正了解TS,还是看了朋友推荐的《数字电视业务信息及其编码》一书之后,MPEG2 TS和数字电视是紧密不可分割的,值得总结一下其中的一些关系。<br />ISO/IEC-13818-1:系统部分;ISO/IEC-13818-2:视频;ISO/IEC-13818-3:音频;ISO/IEC-13818-4
2011-01-20 11:44:00
870
转载 1080P,720P等高清分辨率的含义
在这里列一下视频输出的分辨率类型, 算是一个笔记.,不正确的地方请指正。 P:逐行扫描, progressiveI: 隔行扫描, interlace 名称频率含义分辨率描述480I60Hz隔行,525条垂直扫描线,483条可见垂直扫描线640 X 480D1标准的NTSC电视显示模式480P60Hz逐行,525条垂直扫描线,483条可见垂直扫描线640 X 480D2标准的电视NTSC制的EDTV,和逐行扫描DVD规格相同576I50Hz隔行,625条垂直扫描线,576条可见垂直扫描线720 X 576标准
2011-01-20 11:43:00
3217
原创 关于Qt4 QDirIterator遇到中文死循环的问题
今天跟小宁宁哥讨论个问题,遇到QDirIterator迭代目录死循环。让小宁宁哥痛苦不已。 经过半小时对源码反复折腾无果后,才发现是中文目录的问题。于是检查系统,发现是英文环境的,LC_ALL的值为C。修改LC_ALL=zh_CN.UTF-8后,死循环问题消失了。另我们兴奋不已。如是继续想办法不修改系统环境解决中文问题。 我们可以从程序中指定程序使用的编码。 QL
2010-03-06 10:20:00
2197
1
原创 通过网络调试android
这两天看到奔命弄来龙梦编译的android装到yeeloong本子上了,好奇也按了两下。从官方源码编译的,默认就带了那么几个软件,玩起来没什么意思。于是想办法装几个软件玩玩。这才想起来平时用的android sdk中自带的adb只能用于本地连接(默认通过回环与模拟器连接,或者通过usb与设备连接)。可是要与yeeloong本子连接只能通过网络了。于是google一下,找到一个老外改的,可
2010-03-03 11:25:00
1645
原创 主流Linux桌面环境性能大比拼!
为了让linux桌面系统能吸引更多的用户,开源社区在桌面环境上下了不少功夫。依靠X灵活的架构,使linux可以拥有多种用户界面,让用户可以按照自己的习惯自由选择。经过多年的发展,KDE和Gnome成为两大主力桌面环境,随后也就出现了GNOME和KDE之争,这也促进着两者的进步,使两者功能变得越来越强大。但近来netbook的走红,人们不再只关注桌面环境的功能有多强大,也开始考虑他们的性能了
2009-04-15 11:22:00
6329
转载 中间件 DBus - DBusWatch方式处理消息
DBus其他方式的处理消息并不复杂,但是看了半天文档,也没看懂DBusWatch方式。网上关于如何使用DBusWatch方式的文章也很少,还好发现一位大侠贴出了一个sample,再次记录下来!DBusWatch似乎提供了更细力度的控制,而且可以实现异步处理,glib中的绑定也是使用该方式。引自: http://blog.csdn.net/cuijpus/archive/2008/05/25/247
2008-12-16 21:10:00
3136
原创 linux开发 -- 文件监控 inotify
从linux 2.6.13开始引入inotify来监控文件,代替旧的dnotify。因此旧版本的glibc并不提供inotify系统调用的封装。头文件 sys/inotifyint inotify_init() 创建一个inotify实例,并返回一个引用inotify实例文件描述符,文件描述符使用close()关闭int inotify_add_watch(i
2008-10-16 21:15:00
1497
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人