
Linux编程
文章平均质量分 63
myaccella
这个作者很懒,什么都没留下…
展开
-
DirectFB把内容同时输出到主副surface
一直忙项目,很长时间没有更新博客了。近期碰到一个问题, 就是设定了DirectFB的主Surface输出到高清接口,比如HDMI, 而副Surface的内容则要输出到标清接口,比如CVBS。我不想一条语句调用两次,分别向不同的Surface画, 研究了一下, Directfb是可以做到在输出到主Surface的同时,flip一份到副Surface的。具体代码如下:#i原创 2013-03-26 18:05:21 · 3819 阅读 · 0 评论 -
arm下交叉编译glib-2.28.8
废话不多, 直接上配置:CC=arm-none-linux-gcc ./configure --build=i686-linux --host=arm-none-linux \ glib_cv_stack_grows=no glib_cv_uscore=no ac_cv_func_posix_getpwuid_r=yes \ ac_cv_func_posi原创 2012-02-27 13:56:46 · 17180 阅读 · 1 评论 -
linux技巧点滴(一)
查找新于某一时间点的所有文件 比如现在是1209日的15:00, 要查找1小时内,即14:00以后定的所有文件,可以这样做: 先建立一个时间戳文件: $ touch 12091400 ts 然后使用find命令的newer选项查找指定目录中所有晚于该时间戳文件的文件: $ find /usr -newer ts -print原创 2011-12-09 15:58:31 · 786 阅读 · 0 评论 -
gstreamer 的 elements
安装了gst-ffmpeg-0.10.11和st-plugins-base-0.10.35插件后检测到的gstreamer的elements: video4linux: v4lsrc: Video (video4linux/raw) Sourcegdp: gdppay: GDP Payloadergdp: gdpdepay: GDP Depayloaderpostproc原创 2012-02-13 13:27:23 · 6352 阅读 · 0 评论 -
QtWebkit实现视频透明区域
今天,想在页面上开一个区域来播放视频, 因为当前的图形层叠在视频上上面,想要让视频露出来,就不能有任何的图形东东挡在上面。 首先,我在页面上设计了一块div区域来显示视频,这块区域被设置成全透明:注意最后一个opacity, 设置为0的话, 就表示该div区域就是全透明了,webkit支持这一个属性。 加载该页面, 发现这个区域的确是透出来了,但不符合我们要求, 因为,原创 2012-01-04 17:47:59 · 5224 阅读 · 1 评论 -
MIPS下编译QT4.8.0的__tls_get_addr找不到错误
用arm可以成功编译QT4.8.0, 但用mips编译的时候却碰到如下错误:obj/release-shared-emb-mips/qthread_unix.o: In function `set_thread_data(QThreadData*)':qthread_unix.cpp.text+0xec): undefined reference to `__tls_get_addr'原创 2012-02-07 14:47:01 · 6757 阅读 · 4 评论 -
QtWebkit2.2.0 HTML5.0支持情况
Canvas: 支持element, 2d context以及文本解析规则:支持 HTML5 tokenizer/tree building, SVG in text/html, MathML in text/htmlVideo/Audio: 需要GStreamer的支持Elements: 支持嵌入客户不可见数据, 支持section, 分组内容,部分支持Text-level sem原创 2011-12-31 15:54:11 · 3320 阅读 · 1 评论 -
自定义QT的编译路径
用qmake从pro文件生成Makefile文件的时候, 里面的头文件路径和库文件路径是缺省的qt安装路径, 怎么样才能定制这些路径, 我们可以利用下面的QMAKE宏。 QMAKE_INCDIR_QT: 指定头文件搜索路径,编译时从指定目录去搜索qt的系统头文件。 比如:QMAKE_INCDIR_QT=$$(QTDIR)/includeQTDIR为QT系统的路径,下同。原创 2012-02-06 15:01:33 · 11030 阅读 · 0 评论 -
linux 使用摘记
1. 遍历指定目录中的文件shellfor file in `ls common_patch` ; do echo " file name: " $filedone $file就是不包含路径的文件名。 2. 补丁生成和patch方法单个文件补丁diff -Nu old-file new-file >xxx.patchpatch –p0 反向恢复:原创 2012-02-03 15:30:51 · 1933 阅读 · 0 评论 -
linux shell脚本之判断
先写一些基本语法: 1、字符串判断 str1 = str2 当两个串有相同内容、长度时为真 str1 != str2 当串str1和str2不等时为真 -n str1 当串的长度大于0时为真(串非空) -z str1 当串的长度为0时为真(空串) str1 当串str1为非空时为真 2、数字转载 2012-02-01 12:09:03 · 1315 阅读 · 0 评论 -
gstreamer中用dfbvideosink播放视频文件过程总结
今天终于解决了困扰已久的video播放显示的问题,可以总结一下了。我要做的是用Gstream播放avi等等我们可能需要支持的视频文件,需要用到的plugin除了基本的filesrc,ffmpegcolorspace之外,还另外装了 avidemux,mpegdemux,mpeg2dec等等解码插件,最后播放的就是dfbvideosink.而整个过程是这样的:1,最开始测试用转载 2012-03-01 13:31:41 · 8812 阅读 · 5 评论 -
编译gst-template-master的gst-plugin
自己用gst-template-master 的工具make_element生成了plugins,想编译之,结果运行autogen.sh出现如下错误:configure.ac:29: error: possibly undefined macro: AC_MSG_ERROR If this token and others are legitimate, please use原创 2012-03-02 11:42:59 · 7313 阅读 · 0 评论 -
Linux shell那些事儿
1. 判断某个ko是否已经安装,没有安装则安装之if [ 0 -eq `lsmod | grep foo` ]; then insmod /lib/foo.kofi 2. 判断设备文件是否已经建立, 没有建立,则建之if [ ! -e /dev/foo ]; thenmknod /dev/foo c $num 0fi3. 获取eth0的网关I原创 2013-03-26 18:35:32 · 2238 阅读 · 0 评论 -
linux下共享库的一个有用工具objdump
objdump可以用来得到共享库的SONAME, RPATH, 依赖库等等重要信息,具体用法如下:1. 获取共享库objdump -x libfoo.so | grep NEEDED输出结果如下: NEEDED libinit-1.0.so.0 NEEDED libgui.so NEEDED原创 2013-03-26 18:56:24 · 3024 阅读 · 0 评论 -
Qt 中链接Directfb
1. 修改qmake.conf文件, 用如下方法修改:$(call QT_QMAKE_SET,QMAKE_CC,$(TARGET_CC),$(@D))$(call QT_QMAKE_SET,QMAKE_CXX,$(TARGET_CXX),$(@D))$(call QT_QMAKE_SET,QMAKE_LINK,$(TARGET_CXX),$(@D))$(call QT_QM原创 2013-03-28 18:34:38 · 3490 阅读 · 0 评论 -
Linux技巧点滴(二)
在特定的文件中查找文本下面的命令是在当前目录及子目录中的cpp文件中查找是否包含文本hello,若存在, 则输出文件名和行号 grep -nr 'hello' --include=*.cpp ./ 判断进程是否已经运行if ps -ef |grep "myprocess" |grep -v "grep"thenecho "running"fi $1 如果原创 2012-05-14 13:52:13 · 1957 阅读 · 0 评论 -
Qt 的启动界面上添加进度条
主要是基于qsplashscreen写一个扩展类,不罗嗦,直接看源码,关键部位有注释。扩展类头文件#ifndef __MYSPLASHSCREEN_H#define __MYSPLASHSCREEN_H#include class MySplashScreen: public QSplashScreen{ Q_OBJECTprivate:原创 2012-05-10 00:51:38 · 12015 阅读 · 3 评论 -
Makefile里调用shell注意点
大家经常编写和使用Makefile, Makefile里面也经常用到shell, 但对其中一些需要注意的地方未必会去留意, 这里列出几个来, 不知是否对大家有用。1. 注意Makefile的变量和shell变量, 看如下示例: DIRS = src bin lib all: @for i in $(DIRS); / do / e原创 2012-04-23 00:14:18 · 7684 阅读 · 0 评论 -
HTML5 音视频标签的方法、属性和事件
方法方法描述addTextTrack()为音视频加入一个新的文本轨迹canPlayType()检查指定的音视频格式是否得到支持load()重新加载音视频标签play()播放音视频pause()暂停播放当前的音视频 属性属性描述audioTracks原创 2012-03-22 11:39:16 · 3595 阅读 · 0 评论 -
GStreamer良好的开发习惯
1. 为你的管道(pipeline)添加一个GstBus的处理函数: /* watch for messages on the pipeline's bus (note that this will only * work like this when a GLib main loop is running) */ bus = gst_pipeline_get_bus (GST翻译 2012-03-09 13:28:28 · 4254 阅读 · 0 评论 -
arm平台交叉编译gstreamer-0.10.36 及相关plugins
glib-2.0要先编译好, 安装到/home/work/gst目录下。关于glib-2.0的交叉编译, 可参考前面博文http://blog.youkuaiyun.com/myaccella/article/details/7298014。 gstreamer-0.10.36 的交叉编译配置如下: CC=arm-none-linux-gcc PKG_CONFIG_PATH=/home/原创 2012-03-05 16:49:55 · 11106 阅读 · 2 评论 -
GStreamer调试 参数与函数的使用
原文出处: http://blog.sina.com.cn/s/blog_5cf930300100ia75.html 一、GStreamer的五个打印调试信息的函数: GST_LOG () ==>>5 GST_DEBUG () ==>>4 GST_INFO () ==>>3转载 2012-01-17 13:26:50 · 1980 阅读 · 0 评论 -
让qtwebkit使用gstreamer
花了一天事件, 终于编译出了支持gstreamer的qtwebkit, 可以开始html5 的之旅了。 1. 编译libxml2下载libxml2-sources-2.7.6.tar.gz解包后在当前目录下编写如下编译脚本:(当然,不用脚本也行,你可以直接执行)CC=arm-none-linux-gnueabi-gcc ./configure --build=i686-linux原创 2012-01-12 16:50:10 · 7688 阅读 · 5 评论 -
怎么把webkit中的AtomicString转换成const char*
先用AtomicString 的方法:const String& string()const;转换成String类;AtomicString.h在JavascriptCore的wft/text目录下可以找到String.h 也在同一个目录下 String有个方法叫latin1可以转换成CStringconst CString latin1();转化成CStri原创 2012-01-13 13:30:05 · 4314 阅读 · 0 评论 -
Linux下的段错误调试
如果你对core dump和gdb很熟悉的话, 就直接跳过这篇文章好了。 先来看下如下代码段:#include void foo(char *p){ char s[] = {"foo"}; printf("%s...\n", s); *p = s[0]; return; }int main(){原创 2011-11-24 16:45:46 · 2276 阅读 · 0 评论 -
给日志信息加色
给日志信息加色我们在调测程序的时候,往往会打印许多信息到终端,但信息多了,也会带来不便。后来在设计日志功能的时候, 往往会把日志信息分级, 通过级别控制开关来输出某个级别或者某个级别以上的信息来达到筛选日志信息的目的,但很多级别信息都需要输出的话还是不能解决信息量多, 查找敏感信息不方便的问题。考虑到Linux终端下是可以通过shell提供的功能来设置输出信息的颜色的,那我们原创 2011-11-10 15:28:39 · 854 阅读 · 0 评论 -
想让你的makefile色一点吗
还是得借助shell, 不啰嗦,直入主题吧,看下面例子: CR_GREEN=\033[1;32m #加亮绿色,具体可直接百度shell颜色 CR_RED=\033[1;31m #加亮红色 CR_RESET=\033[0m MKBEGIN=@echo -ne "$(CR_GREEN)Compiling ...$(CR_RESET)" MKOK="$原创 2011-11-10 15:36:25 · 750 阅读 · 0 评论 -
Linux网络配置代码
Linux下 配置网络接口比较简单, IP地址,掩码,缺省网管用ioctl,DNS直接操作/etc/resolv.conf文件就可以了。 void interface_configure(const char* address, const char* netmask, const char* gateway,原创 2011-11-14 14:49:04 · 1477 阅读 · 1 评论 -
Broadcom webkit(基于directfb)编译过程
原帖出处:http://hi.baidu.com/kurbylee/blog/item/82b9c6f6d17eeb3e720eec81.htmlBroadcom webkit(based DFB)编译过程1》平台准备 1.1 确认开发包已经解压到/home/broadcom目录,此时该目录下文件结构应至少包含如下几项:[liwei@localhost ]$ ls转载 2011-11-14 16:36:00 · 2673 阅读 · 0 评论 -
说说Linux线程的栈空间
刚接触C编程时, 比较喜欢用局部变量, 因为局部变量是在栈上分配的,会自动释放, 不会造成内存泄漏, 碎片什么的,觉得比malloc/new 出来的堆内存好使多了,大家可能说malloc/new可以分配动态内存,其实linux/win32的大多数平台提供了一个类似的函数alloca也可以来动态的分配栈内存。 栈变量正用得不亦乐乎的时候,悲剧发生了, 程序运行中老是出现莫名其妙的原创 2011-11-15 10:35:46 · 4063 阅读 · 1 评论 -
说说DirectFB的WM
DirectFB 的 WM有两种, Default和 Unique: Default:1. Window Stack 管理,Stack插入,删除、调整Z-Order等。2. Focus管理, 把消息送给Focus窗口3. 快捷操作,关闭,移动,放大等。 Unique:1. 包含Default所有功能2. 装饰,除了标题名称没有外,其它比如圆角化,icon, 边框原创 2011-11-15 10:56:57 · 912 阅读 · 0 评论 -
Linux下用管道实现进程全双工通信的代码
直接看代码, 里面已经有注释了。 主程序:int main(){ char buf[256]; int fdin[2]; int fdout[2]; int pid; int size; // 创建全双工管道 pipe(fdin); pipe(fdout); pid = fork(); if (pid原创 2011-11-17 10:49:34 · 5291 阅读 · 1 评论 -
Linux实现函数和全局变量的#ifdef功能
大家都知道,我们可以用#ifdef来检测这个宏存在与否,分别在不同的处理,比如:int main(){#ifdef __FOOprintf("Defined!\n");#elseprintf("Not defined");#endifreturn 0;}如果__FOO在前面定义了,那么就输出Defined!,否则就输出Not defined.但如果是函数原创 2011-11-18 15:26:22 · 4221 阅读 · 0 评论 -
GTK Webkit 添加JS对象
尽管GTK Webkit没有类似于QT Webkit 的 addToJavaScriptWindowObject()接口,但我们还是可以利用JavascriptCore的接口函数来实现对Javascript扩展对象的添加, 只不过过程会稍微复杂一点。首先要定义一个JSClassRef结构, 该结构用来指定类的成员函数,属性等信息,然后调用JSClassCreate()接口来创建这个原创 2011-11-10 15:46:06 · 3862 阅读 · 3 评论 -
Linux下检测以太网链路状态代码
该方法用到了ioctl操作ETHTOOL,需要root权限, 否则会失败! // PARAM: devname -- just the device name such as eth0, eth1 etc.// RETURN: -1 -- error , details can check errno// 1 -- interface link up//原创 2011-11-25 11:07:54 · 5130 阅读 · 0 评论 -
QtWebkit的画图
WebKit支持的图形库很多: Cairo、GTK2、Qt、Wx、CG、Mac、Skia,不同的图形库能支持不同的平台,而在各平台上的显示效果会有所不同。至于在一个指定的平台上究竟使用哪种图形库,这个可以灵活选择,比如在windows平台上可选的图形库有Cairo、Qt、 Wx、Cg、Skia。 WebKit的WebCore提供了一个称之为图形上下文GraphicsContex原创 2012-01-11 13:16:29 · 2775 阅读 · 0 评论 -
异步事件引起的plugins crash问题
编写了一个 基于QtWebkit 的MediaPlayer plugin,在实现切换当前播放页面到其它页面时就停止播放的功能时, plugins 发生了crash。停止播放功能实在onUnload()的时候实现的,javascript代码如下: function unload(){ var mp = document.getElementById('mp');原创 2012-01-09 17:14:02 · 1068 阅读 · 0 评论 -
谈谈QtWebkit 键盘鼠标事件过滤
QT的QObject对象提供了一个方法:void installEventFilter ( QObject * filterObj );这里的参数filterObj也是一个QObject, 这个对象具体实施过滤事件的,它要重载QObject的虚函数: virtual bool eventFilter( QObject * watched, QEvent * event );第一个原创 2011-12-15 18:35:16 · 4584 阅读 · 2 评论 -
QT 4.8.0 QURL的Bug??
最近, Qt4.8.0终于正式release了,由于想用它带的QtWebkit 2.2.0,就下载了一个。解包, 写编译脚本, 设置环境变量,在arm平台交叉编译成功生成了熟悉的几个Qt库以及plugins以后。编以前的qtwebkit应用: 自己写的一个简单浏览器。编译成功后, 发现跑起来以后,访问不了本地页面, 只能访问服务器页面,我访问本地页面用的是如下语句: webView原创 2011-12-23 14:29:17 · 2849 阅读 · 2 评论 -
QtWebkit2.2为HTML5.0而来
QtWebKit最新版本2.2.0增加了许多的HTML5.0 feature, 可以说是在支持HTML5.0方面迈了一大步。2.2.0虽然已经发布,但由于该release是在QT4.8的分支上开发的,在QT4.7平台上的表现有待于进一步验证,可能会有稳定性方面的问题, 而当前QT4.8并没有发布, 只发布了RC1版本, 所以,不是很急的话, 可以等待QT4.8发布再来用QtWebKit原创 2011-12-09 17:28:27 · 5739 阅读 · 1 评论