- 博客(14)
- 资源 (2)
- 收藏
- 关注
原创 Linux如何清空Socket缓冲区
最近碰到一个问题,对于阻塞模式的socket通讯,如果要实现设备的命令控制,那么进入命令流前,缓冲区不能存有上次通讯没有取回的信息,否则一旦命令发出,然后读取缓冲区,很显然会读到上一次的剩余数据。做法当然很简单,就是先清除接收区的缓冲数据,可是如何清除?网上有很多这样的问题,但都没什么规范的解决办法,有的甚至为了达到清空的目的,建议先close一下socket,这个太大手笔了,为了解决一个小问
2011-11-26 21:07:01 1095
原创 Socket主机与客户机通信难点
最近在研究视频传输,通过服务器将采集到的视频通过socket传输到远程终端,但每当建立好连接,服务器已经采集好数据,但将其通过send发送到终端,终端通过recv接受数据,但每次接受到的数据都不完整,大量数据丢失,很多书上只是接受了socket通信的方法 但没有提到大量数据传输时,数据丢失的解决办法和问题,恰巧我也遇到了,只是研究了一翻,发现原来socket发送数据时会讲数据进行分包出来,再TCP
2011-11-26 20:23:03 1534
原创 利用v4l2获取一帧数据到文件
到今天为止,终于利用摄像头搞出来一张图片,并成功显示,废话少说,接下来就把我再学习v4l2过程中的一些弯路和经验 和大家分享吧。首先,要学习V4L2编程的整体框架:(可结合v4l2-api)网上有很多,我直接粘贴过来的:视频采集基本步骤流程如下: 打开视频设备,设置视频设备属性及采集方式、视频数据处理,关闭视频设备,如下图所示:一、打开视频设备打开视频设备非常简单,在V4L2中
2011-11-22 17:25:16 6577 2
原创 mjpg-stream移植
一、环境主机环境 :ubuntu 10.10 目标机 :FS2410(S3C2410) 主机工具链 :gcc-4.4.5 交叉工具链 :arm-none-linux-gnueabi-gcc-4.3.2 摄像头 :ZC301二、移植过程1、配置内核是内核支持芯片为ZC301的摄像头 Ma
2011-11-16 22:00:59 1825
原创 OpenCV 2.0移植过程中zlib,jpeg,png库的交叉编译
宿主系统:Ubuntu 10.10 交叉编译器arm-linux-gcc-4.4.1 目标板:ARM11 Linux系统,kernel:2.6.36第一步,安装交叉编译工具arm-linux-gcc-4.3.2xgy@Ubuntu:~/toolchain$mkdir armxgy@Ubuntu:~/toolchain$cd arm xgy@Ubuntu:~/toolcha
2011-11-16 21:35:02 1121
原创 如何利用Video4Linux获取摄像头数据
Video4Linux是Linux下用于获取视频和音频数据的API接口,在这篇文章中,着重阐述如何利用Video4Linux获取摄像头数据,以实现连续影像的播放。1. 摄像头的安装 在 Linux下常用的摄像头驱动是spca5xx, 这是一个通用驱动,读者可以在以下网站下到这个驱动 http://mxhaard.free.fr/download.html。这个网站还给出了这款驱动支持的
2011-11-16 17:13:20 2206
原创 V4L2应用程序框架
V4L2较V4L有较大的改动,并已成为2.6的标准接口,函盖video\dvb\FM...,多数驱动都在向V4l2迁移。更好地了解V4L2先从应 用入手,然后再深入到内核中结合物理设备/接口的规范实现相应的驱动。本文先就V4L2在视频捕捉或camera方面的应用框架。V4L2采用流水线的方式,操作更简单直观,基本遵循打开视频设备、设置格式、处理数据、关闭设备,更多的具体操作通过ioctl函
2011-11-16 17:07:33 740
原创 Linux的视频编程(v4l2编程)
一.什么是video4linuxVideo4linux2(简称V4L2),是linux中关于视频设备的内核驱动。在Linux中,视频设备是设备文件,可以像访问普通文件一样对其进行读写,摄像头在/dev/video0下。二、一般操作流程(视频设备):1. 打开设备文件。 int fd=open(”/dev/video0″,O_RDWR);2. 取得设备的capability,看看设备
2011-11-16 17:02:33 1028
原创 视频与图像RGB/YUV格式详解
根据三基色原理,任意一种色光F都可以用不同分量的R、G、B三色相加混合而成。F = r [ R ] + g [ G ] + b [ B ] 其中,r、g、b分别为三基色参与混合的系数。当三基色分量都为0(最弱)时混合为黑色光;而当三基色分量都为k(最强)时混合为白色光。调整r、g、b三个系数的值,可以混合出介于黑色光和白色光之间的各种各样的色光。 那么YUV又从何而来呢?在现代彩色
2011-11-16 16:42:06 1531
原创 USB命令(请求)和USB描述符分析及usb鼠标枚举数据流分析
一、USB命令 在USB规范里,对命令一词提供的单词为“Request”,但这里为了更好的理解主机与设备之间的主从关系,将它定义成“命令”。 所有的USB设备都要求对主机发给自己的控制命令作出响应,USB规范定义了11个标准命令,它们分别是:Clear_Feature、Get_Configuration、Get_Descriptor、Get_Interface、Get_Status、S
2011-11-10 21:50:23 2665
原创 OK6410开发板下rmmod: chdir(/lib/modules): No such file or directory 解决方法
1.创建/lib/modules/2.6.36空目录。2.使用如下源码生成rmmod命令,就可以没有任何提示的卸载ko模块了#include #include #include #include #include #include int main(int argc, char *argv[]){const char *modname = argv[1];
2011-11-02 20:02:26 1054
原创 Ubuntu10.10下安装配置tftp服务器
1、安装软件 $ sudo apt-get install tftp tftpd $ sudo apt-get install openbsd-inetd 2、创建工作目录 $ cd / $ sudo mkdir tftpboot $ sudo chmod 777 tftpboot3、修改配置文件 $
2011-11-02 18:45:16 409
原创 Ubuntu设置为root用户自动登录
ubuntu安全限制的太多,用起来太烦了。我们做系统开发的,经常要使用root权限。1、为root账户设置一个密码输入如下命令:#sudo passwd root根据提示设置密码2、编辑/etc/gdm/custom.conf文件[daemon] AutomaticLoginEnable=true 这个修改为true AutomaticLogin=root
2011-11-01 15:49:43 466
转载 LED字符设备驱动
一、实验环境 开发机环境 操作系统:ubuntu 10.10 交叉编译环境:arm-linux-gcc 4.4.1,安装位置 /usr/local/arm/4.4.1/ 6410板子内核源码路径:/work/linux-2.6.36.2-v1.05/ 目标板环境:OK6410-A lin
2011-11-01 13:40:28 714
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人