Menu Home

Nexus 7 Tablet 安装多系统

ref:http://www.linuxjournal.com/content/multi-booting-nexus-7-tablet Multi-Booting the Nexus 7 Tablet Jul 29, 2013  By Bill Childers Anyone who knows me well enough knows I love mobile devices. Phones, tablets and other shiny glowing gadgets are almost an addiction for me. I’ve talked about my addiction in other articles and columns, and Kyle Rankin even made […]

Using libavformat and libavcodec

ref : http://www.inb.uni-luebeck.de/~boehme/using_libavcodec.html Using libavformat and libavcodec Martin Böhme ([email protected]) February 18, 2004 Update (January 23 2009): By now, these articles are quite out of date… unfortunately, I haven’t found the time to update them, but thankfully, others have jumped in. Stephen Dranger has a more recent tutorial, ryanfb of cryptosystem.org has an updated version of […]

tcpdump命令

ref : http://www.cnblogs.com/ggjucheng/archive/2012/01/14/2322659.html 简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。 实用命令实例 默认启动 tcpdump 普通情况下,直接启动tcpdump将监视第一个网络接口上所有流过的数据包。 监视指定网络接口的数据包 tcpdump -i eth1 如果不指定网卡,默认tcpdump只会监视第一个网络接口,一般是eth0,下面的例子都没有指定网络接口。

linux下重置USB设备

#include <stdio.h> #include <usb.h> int main(void) { struct usb_bus *busses; usb_init(); usb_find_busses(); usb_find_devices(); busses = usb_get_busses(); struct usb_bus *bus; int c, i, a; /* … */ for (bus = busses; bus; bus = bus->next) { struct usb_device *dev; int val; usb_dev_handle *junk; for (dev = bus->devices; dev; dev = dev->next) […]

ubuntu 搭建vpn

OS : ubuntu 12.10 install pptpd apt-get install pptpd configure pptpd vi /etc/pptpd.conf localip 192.168.0.234 #主机的ip地址 remoteip 192.168.1.200-238 #分配给客户端的ip地址 vi /etc/ppp/pptpd-options ms-dns 8.8.8.8 vi /etc/ppp/chap-secrets #设置连接密码,可以使用如下2种格式: user1 pptpd password * #适用所有ip, “pptpd”需要跟/etc/ppp/pptpd-options中的name相同 user2 pptpd password 192.168.1.211 #适用指定ip /etc/init.d/pptpd restart #重启pptpd服务 设置ip转发规则 vi /etc/sysctl.conf net.ipv4.ip_forward=1 #开启ip转发 sysctl -p #使ip转发生效 apt-get install […]

android 触摸和鼠标模式切换

Android os : > 4.0 android 4.0以后,触摸屏的触摸模式和鼠标模式使用idc文件来做切换。 需要把触摸屏设备的相应idc文件放到 /system/usr/idc/ 目录下。 如下是IRTOUCH Vendor_6615_Product_0085.idc文件的内容: # Copyright (C) 2012 Beijing IRTOUCH SYSTEMS Co.,Ltd # # # Input Device Configuration File for the IRTOUCH touch screen. # #common device.internal = 1 # Basic Parameters touch.deviceType = touchScreen touch.orientationAware = 1 # Size touch.size.calibration = […]

这不是神经病,这是理想

ref: http://www.u148.net/article/44302.html 文:石头 紫霞说,这不是神经病,这是理想。 五百年又五百年的轮回,却再也等你不回。我猜中了开始,却猜不中结局。 紫霞看见至尊宝的时候说,我现在郑重宣布,这个山头所有的东西都是属于我的,包括你在内!结果她什么也没有,甚至失去了生命。她的爱情童话里,王子最后踩着七色云彩回来时,却已是不能再有情欲的神。所以,含着泪感叹,我猜中了开头,却猜不中结尾。其实没有人能猜到结尾,因为没有结尾。白晶晶本以为喉上的一剑就可以结束自己对这男人的痛苦,却开始了另一个女子的感情悲剧。 至尊宝用一种让二当家以为是上帝升天的方式一遍又一遍穿梭时空,为的是去找白晶晶,所以他推开了紫霞的亲吻。但是当他见到晶晶并将平静地结婚的时候,才知道自己做梦的时候叫了晶晶这个名字九十八次,叫紫霞的名字叫了七百八十四次——他喜欢的是紫霞。命运终于让撒谎如吃饭一样随便的他明白了,他永远骗不了自己。 晶晶看见了紫霞留在至尊宝像椰子一样的心里的一滴泪,知道他的心房所住另有伊人,匆匆离去。爱的确是不能马虎的糊涂事。就像当初至尊宝在山崖上冒着被晶晶一剑刺死的危险承认自己并不是孙悟空时候说的,怕,不过没办法,因为我不希望你看到我的时候,心里面却想着另外一个人。 爱一个人不需要理由。菩提老祖毕竟是老资格,委琐的外表下,是一颗睿智的心灵。至尊宝(后来是悟空)与他对爱情的一番探讨,高下立见。悟空总是在为做一件事找理由,他找不到自己屈服于尘世的理由,所以无法无天,所以他没有去疼爱过身边的女人。但问题是有许多事情是不需要理由的,爱一个人更是。悟空喜欢了白骨精,而八戒爱上了蜘蛛精春三十娘,牛魔王的妹妹香香更是喜欢了沙僧。尽管春三十娘曾哭着说,想我春三十娘貌美如花,却跟了这么丑的人……但是最后还是选择了为八戒放下断龙石自己与牛魔王同归于尽。 最悲哀的是紫青宝剑和至尊宝“爱你一万年”的千古谎言。他们都是别人生活中的借口。没有人知道能拔出紫青宝剑的人是不是真的就是紫霞的如意郎君。因为只有至尊宝一个人拔过。而至尊宝的千古谎言,在命运面前,是如此的渺小。它骗了一个女人的心,上天却瞒着所有人早早安排了从头到尾让人猜不透的故事。看似可以穿梭时空遨游三清的月光宝盒的作用也仅仅是让所有拿到它的人按照上天安排的轨迹运行一遍又一遍。 于是,五百年又五百年的轮回,却再也等你不回。有人侥幸猜中了开始,却再也没有人猜中结局。 但是,但爱情的意义不是猜测谁会许诺给谁一个永远。爱是白晶晶说的不开心长生不死也没用,开心就算只能活几天也足够了。爱是让你喜欢的人浅浅的生活中有满满的感动。爱是紫霞说的像飞蛾一样,明知道会受伤,还是会扑到火上的执着与冲动。而不是当桀骜的至尊宝变成了无情无欲的悟空后,面对着观音和金箍说,如果上天再给他一次机会…… 于是,紫霞说,这不是神经病,这是理想……

Ubuntu 12.04编译 android 4.0源码

ref:http://blog.sina.com.cn/s/blog_641bd2500100ype3.html 本来计划晚上研究Ice的In-out的用法,直接从demo中找示例,顺便看看其与CORBA在这方面的区别。但在使用slice2cpp时才发现系统升级到11.10后,居然把ice3.3给删除了。于是象上次一样,重新apt-get install zeroc-ice34,下载了80多M的内容,但装好以后无法使用,明明看到动态库在/usr/lib下,就是链接不上,原因也没找到,会不会ubuntu有bug,把32位的库装上了?但如何看一个库是64位还是32位我还不清楚。不管了,还是从源码安装吧。下了第三方的源和Ice的源,刚开始装第一项qt,就进行不下去了。其实我电脑里装有qt creator,比其版本高。于是直接编译源码,碰到第三方库则用apt安装。 第一个问题

ffmpeg中的时间

视频的显示和存放原理 对于一个电影,帧是这样来显示的:I B B P。现在我们需要在显示B帧之前知道P帧中的信息。因此,帧可能会按照这样的方式来存储:IPBB。这就是为什么我们会有一个解码时间戳和一个显示时间戳的原因。解码时间戳告诉我们什么时候需要解码,显示时间戳告诉我们什么时候需要显示。所以,在这种情况下,我们的流可以是这样的: PTS: 1 4 2 3 DTS: 1 2 3 4 Stream: I P B B 通常PTS和DTS只有在流中有B帧的时候会不同。 DTS和PTS 音频和视频流都有一些关于以多快速度和什么时间来播放它们的信息在里面。音频流有采样,视频流有每秒的帧率。然而,如果我们只是简单的通过数帧和乘以帧率的方式来同步视频,那么就很有可能会失去同步。于是作为一种补充,在流中的包有种叫做DTS(解码时间戳)和PTS(显示时间戳)的机制。为了这两个参数,你需要了解电影存放的方式。像MPEG等格式,使用被叫做B帧(B表示双向bidrectional)的方式。另外两种帧被叫做I帧和P帧(I表示关键帧,P表示预测帧)。I帧包含了某个特定的完整图像。P帧依赖于前面的I帧和P帧并且使用比较或者差分的方式来编码。B帧与P帧有点类似,但是它是依赖于前面和后面的帧的信息的。这也就解释了为什么我们可能在调用avcodec_decode_video以后会得不到一帧图像。 ffmpeg中的时间单位 AV_TIME_BASE ffmpeg中的内部计时单位(时间基),ffmepg中的所有时间都是于它为一个单位,比如AVStream中的duration即以为着这个流的长度为duration个AV_TIME_BASE。AV_TIME_BASE定义为: #define AV_TIME_BASE 1000000 AV_TIME_BASE_Q ffmpeg内部时间基的分数表示,实际上它是AV_TIME_BASE的倒数。从它的定义能很清楚的看到这点: #define AV_TIME_BASE_Q (AVRational){1, AV_TIME_BASE} AVRatioal的定义如下: typedef struct AVRational{ int num; //numerator int den; //denominator } AVRational; ffmpeg提供了一个把AVRatioal结构转换成double的函数: static inline […]

使用QGraphicsProxyWidget实现字幕滚动和翻转动画

OS : ubuntu 12.04 QT : 4.8 multiTxtWidget.h #ifndef MULTITEX_WIDGET_H #define MULTITEX_WIDGET_H #include <QGraphicsItem> #include <QPainter> #include <QPropertyAnimation> #include <QGraphicsWidget> #include <QGraphicsProxyWidget> #include <QWidget> #include <qcoreevent.h> class MulitTexWidget : public QWidget { Q_OBJECT Q_PROPERTY(QString text READ text WRITE setText) public: explicit MulitTexWidget(QWidget *parent = 0); virtual ~MulitTexWidget(); void setText(const QString […]

基于QGraphicsItem的字幕翻转动画效果

OS: mac os x 10.7.5 QT: 5.0.1 main.cpp #include “mainwindow.h” #include <QApplication> #include <QGraphicsScene> int main(int argc, char *argv[]) { QApplication a(argc, argv); TxtItem txtItem; txtItem.setText(“How are you, my friend!!”); QGraphicsScene scene; MyQView mqv(&scene); scene.addItem(&txtItem); mqv.show(); return a.exec(); }

linux socket常规操作(备忘)

/*server*/ #include <stdio.h> #include <stdlib.h> #include <errno.h> #include <string.h> #include <unistd.h> #include <sys/types.h> #include <netinet/in.h> #include <arpa/inet.h> #include <sys/socket.h> #include <sys/wait.h> #define PORT 3333 #define BACKLOG 10 #define DATASIZE 10 int main(int argc, char **argv) { int sockfd, client_fd; struct sockaddr_in serv_addr; struct sockaddr_in remote_addr; char buf[DATASIZE]; int recv_len; if((sockfd […]

基于ffmpeg的流媒体服务器

OS:ubuntu 12.04 ffmpeg:N-47141-g4063bb2 x264:0.133.2334 a3ac64b 目标: 使用ffserver建立流媒体服务器 使用ffmpeg对本地文件流化(x264编码器) 使用ffplay播放 ffserver.conf配置 Port 8090 #访问端口 RTSPPort 554 #rtsp端口 BindAddress 0.0.0.0 #服务器地址绑定 MaxHTTPConnections 2000 #允许的最大连接数 MaxClients 1000 #最大的客户数 MaxBandwidth 10000 CustomLog – <Feed feed1.ffm> File /tmp/feed1.ffm FileMaxSize 1G ACL allow 127.0.0.1 #只允许本地连接 </Feed> ################ asf ################ <Stream test.asf> Feed feed1.ffm Format asf #流媒体格式 […]

一些关于流媒体的基本概念

ASF ASF是(Advanced Streaming Format 高级串流格式)的缩写,是 Microsoft 为 Windows 98 所开发的串流多媒体文件格式。ASF是微软公司Windows Media的核心。这是一种包含音频、视频、图像以及控制命令脚本的数据格式。这个词汇当前可和 WMA 及 WMV 互换使用。 ASF是一个开放标准,它能依靠多种协议在多种网络环境下支持数据的传送。同JPG、MPG文件一样,ASF文件也是一种文件类型,但它是专为在IP网上传送有同步关系的多媒体数据而设计的,所以ASF格式的信息特别适合在IP网上传输。ASF文件的内容既可以是我们熟悉的普通文件,也可以是一个由编码设备实时生成的连续的数据流,所以ASF既可以传送人们事先录制好的节目,也可以传送实时产生的节目。 ASF用于排列、组织、同步多媒体数据以利于通过网络传输。ASF是一种数据格式,它也可用于指定实况演示。ASF最适于通过网络发送多媒体流,也同样适于在本地播放。任何压缩/解压缩运算法则(编解码器)都可用来编码ASF流。 Windows Media Service的核心是ASF。ASF是一种数据格式,音频、视频、图像以及控制命令脚本等多媒体信息通过这种格式,以网络数据包的形式传输,实现流式多媒体内容发布。其中,在网络上传输的内容就称为ASF Stream。ASF支持任意的压缩/解压缩编码方式,并可以使用任何一种底层网络传输协议,具有很大的灵活性。 Microsoft Media player是能播放几乎所有多媒体文件的播放器,支持ASF在Internet网上的流文件格式,可以一边下载一边实时播放,无需下载完再听。 ASF流文件的数据速率可以在28.8Kbps到3Mbps之间变化。用户可以根据自己应用环境和网络条件选择一个合适的速率,实现VOD点播和直播。 FLV FLV 是FLASH VIDEO的简称,FLV流媒体格式是随着Flash MX的推出发展而来的视频格式。由于它形成的文件极小、加载速度极快,使得网络观看视频文件成为可能,它的出现有效地解决了视频文件导入Flash后,使导出的SWF文件体积庞大,不能在网络上很好的使用等缺点。 FLV是被众多新一代视频分享网站所采用,是目前增长最快、最为广泛的视频传播格式。是在sorenson公司的压缩算法的基础上开发出来的。FLV格式不仅可以轻松的导入Flash中,速度极快,并且能起到保护版权的作用,并且可以不通过本地的微软或者REAL播放器播放视频。

linux + ffmpeg + eclipse 调试

使用linux + ffmpeg + eclipse调试步骤 OS : ubuntu 12.04 Eclipse : 3.7.2 为Eclipse安装cdt插件,使其支持c/c++ 导入ffmpeg项目 File —-> Import —-> c / c++ —-> Existing Code as Makefile Project 输入 Project Name, 选择ffmpeg所在目录, Toolchain选择Linux GCC  项目右键 —-> Debug As —-> Local C/C++ Application —->  选择需要调试的项目        你需要选择带_g的程序才能做调试(如ffplay_g) ffmpeg库调试 如果使用make install安装ffmpeg的动态链接库是不带调试信息的。所以需要手工拷贝。 删除/usr/lib或者/usr/local/lib中的所有ffmpeg库文件 […]

C++创建DDS文件

OS: ubuntu12.04 创建DDS文件头 这里只使用DXT1压缩,mipmaps为1,输入格式为GBR #define PUTL32(buf, l) \ (buf)[0] = ((l) ) & 0xff; \ (buf)[1] = ((l) >> 8) & 0xff; \ (buf)[2] = ((l) >> 16) & 0xff; \ (buf)[3] = ((l) >> 24) & 0xff; int compression = DDS_COMPRESS_BC1; unsigned int rmask = 0x00ff0000; unsigned int gmask […]

DDS图像格式

名词解释 DDS是一种图片格式。DirectDraw Surface的缩写,它是DirectX纹理压缩(DirectX Texture Compression,简称DXTC)的产物。 我们可以利用一些程序轻松地将bmp,tga等文件转化为dds文件,也有photo, gimp的插件能帮助我们利用我们所熟悉的工具来完成转化工作。dds档还起到了压缩文件大小的作用,这在游戏制作中是很重要的,更小的纹理容量意味着显示速度的增加和显存要求的降低在选择生成文件时,有多种格式可供选择。 DDS文件格式要追述到S3(Silicon & Software Systems)公司提出的一种纹理压缩格式S3TC(S3 Texture Compression), 其目的是通过对纹理的压缩, 以达到节约系统带宽并提高效能的目的. S3TC就是通过压缩方式, 利用有限的纹理缓存空间来存储更多的纹理, 因为它支持6:1的压缩比例, 所以6M的纹理可以被压缩为1M存放在材质缓存中, 从而在节约了缓存的同时也提高了显示性能. 后来的DXTC和FXT1都是与S3TC类似的技术, 它们分别是微软和3dfx开发的纹理压缩标准, FXT1能提供比S3TC更高的压缩比, 达到8:1, 同时它也在3DFX新版本的Glide中得到支持. DXTC是1999年微软从S3公司取得S3TC的授权后更名而来的, 并在DirectX6中提供了支持, 即使用户的图形硬件不能支持S3TC, DirectX API会自动解码压缩后的纹理贴图. 压缩纹理贴图可以使用高品质的离线压缩器, 不会造成加载程序时有很多延时, 而DDS文件就可以使用DXTC方式压缩或是存储未压缩的像素格式。 格式介绍

mac os terminal 快捷键

mac terminal 快捷键: 清屏:Command + K 新建标签: Command + T 关闭当前标签页: Command +W 保存终端输出:Command + S 水平分隔当前标签页: Command + D 取消水平分隔: Command + Shift + D 向左/向右切换标签: Command + shift + { 或 }

BMP图像格式

BMP(全称Bitmap)是Window操作系统中的标准图像文件格式,可以分成两类:设备相关位图(DDB)和设备无关位图(DIB),使用非常广。它采用位映射存储格式,除了图像深度可选以外,不采用其他任何压缩,因此,BMP文件所占用的空间很大。BMP文件的图像深度可选lbit、4bit、8bit及24bit。BMP文件存储数据时,图像的扫描方式是按从左到右、从下到上的顺序。由于BMP文件格式是Windows环境中交换与图有关的数据的一种标准,因此在Windows环境中运行的图形图像软件都支持BMP图像格式。 文件格式 格式组成 典型的BMP图像文件由四部分组成: 位图头文件数据结构,它包含BMP图像文件的类型、显示内容等信息; 位图信息数据结构,它包含有BMP图像的宽、高、压缩方法,以及定义颜色等信息; 调色板,这个部分是可选的,有些位图需要调色板,有些位图,比如真彩色图(24位的BMP)就不需要调色板; 位图数据,这部分的内容根据BMP位图使用的位数不同而不同,在24位图中直接使用RGB,而其他的小于24位的使用调色板中颜色索引值。 格式类型 位图一共有两种类型,即:设备相关位图(DDB)和设备无关位图(DIB)。DDB位图在早期的Windows系统(Windows 3.0以前)中是很普遍的,事实上它也是唯一的。然而,随着显示器制造技术的进步,以及显示设备的多样化,DDB位图的一些固有的问题开始浮现出来了。比如,它不能够存储(或者说获取)创建这张图片的原始设备的分辨率,这样,应用程序就不能快速的判断客户机的显示设备是否适合显示这张图片。为了解决这一难题,微软创建了DIB位图格式。 设备无关位图 (Device-Independent Bitmap) DIB位图包含下列的颜色和尺寸信息: 原始设备(即创建图片的设备)的颜色格式。 原始设备的分辨率。 原始设备的调色板 一个位数组,由红、绿、蓝(RGB)三个值代表一个像素。  一个数组压缩标志,用于表明数据的压缩方案(如果需要的话)。 以上这些信息保存在BITMAPINFO结构中,该结构由BITMAPINFOHEADER结构和两个或更多个RGBQUAD结构所组成。BITMAPINFOHEADER结构所包含的成员表明了图像的尺寸、原始设备的颜色格式、以及数据压缩方案等信息。RGBQUAD结构标识了像素所用到的颜色数据。 DIB位图也有两种形式,即:底到上型DIB(bottom-up),和顶到下型DIB(top-down)。底到上型DIB的原点(origin)在图像的左下角,而顶到下型DIB的原点在图像的左上角。如果DIB的高度值(由BITMAPINFOHEADER结构中的biHeight成员标识)是一个正值,那么就表明这个DIB是一个底到上型DIB,如果高度值是一个负值,那么它就是一个顶到下型DIB。注意:顶到下型的DIB位图是不能被压缩的。 位图的颜色格式是通过颜色面板值(planes)和颜色位值(bitcount)计算得来的,颜色面板值永远是1,而颜色位值则可以是1、4、8、16、24、32其中的一个。如果它是1,则表示位图是一张单色位图(译者注:通常是黑白位图,只有黑和白两种颜色,当然它也可以是任意两种指定的颜色),如果它是4,则表示这是一张VGA位图,如果它是8、16、24、或是32,则表示该位图是其他设备所产生的位图。如果应用程序想获取当前显示设备(或打印机)的颜色位值(或称位深度),可调用API函数GetDeviceCaps(),并将第二个参数设为BITSPIXEL即可。