知识屋:更实用的电脑技术知识网站
所在位置:首页 > 操作系统 > linux

luvcview在arm板上的移植

发布时间:2014-09-05 15:05:09作者:知识屋

luvcview在arm板上的移植
 
一直想着在自己的开发板上能回显摄像头中的内容,今天终于有点时间了,试着在网上找了一下,发现支持V4L的摄像头应用程序还真不少。我简单看了一下,luvcview是支持直接回显的。所以就尝试着移植了luvcview。  www.zhishiwu.com  
开发环境: 主     机 VM & Ubuntu 10.04
                开 发 板 devkit8500 (arm-cortex a8 dm3730)
                交叉编译器 arm-2009q1
 
1. 首先就是要下载luvcview源代码,这个不用多说,到处都是。我这里使用的是 luvcview_20070512.orig.tar.gz,这个包需要SDL库的支持,在网上找找怎么移植就是了。
2. 将压缩包解压到自己的工作目录并进入源码目录:  www.zhishiwu.com  
    #tar xvf /mnt/hgfs/share/luvcview_20070512.orig.tar.gz
3. 修改Makefile文件,这里有关键的几行是必须要修改的。
        CC=gcc
        CPP=g++
        INSTALL=install
        APP_BINARY=luvcview
        BIN=/usr/local/bin
        SDLLIBS = $(shell sdl-config --libs) 
        SDLFLAGS = $(shell sdl-config --cflags)
        #LIBX11FLAGS= -I/usr/X11R6/include -L/usr/X11R6/lib
----->>>
       TARGET=arm-none-linux-gnueabi-
       CC=$(TARGET)gcc
       CPP=$(TARGET)g++
       INSTALL=install
       APP_BINARY=luvcview
       BIN=/usr/local/bin
       SDLLIBS = -L/work/prj/root-dev/usr/local/lib -lSDL
       SDLFLAGS = /work/prj/root-dev/usr/local/include
其中SDLLIBS和SDLFLAGS标识了SDL库的头文件和库文件所在的目录,我的放在/work/prj/root-dev/usr/local/下,这里顺便说一下,建议在家在移植一些库时,尽量将这些库安装在一个固定的目录下面,方便后面移植其它库时使用,例如我将前面移植的一些基础库全部安装到/work/prj/root-dev/目录下,后面再用时,就不用东找西找了。
3. 源代码修改 luvcview.c
       (1). #include <X11/Xlib.h> 
--->>> //#include <X11/Xlib.h>
       (2). static Uint32 SDL_VIDEO_Flags =SDL_ANYFORMAT | SDL_DOUBLEBUF | SDL_RESIZABLE;
--->>> static Uint32 SDL_VIDEO_Flags = SDL_ANYFORMAT | SDL_RESIZABLE;// | SDL_DOUBLEBUF;
       (3). int format = V4L2_PIX_FMT_MJPEG;
--->>> int format = V4L2_PIX_FMT_YUYV;
 
4. 直接make编译就可以了,然后将luvcview拷到开发板上,插上USB摄像头,运行luvcview就可以在LCD上看到图像了。
 
****
(1) 注释掉SDL_DOUBLEBUF是因为在luvcview的代码里面没有调用SDL_Flip,所以用双buffer无法显示。如果不想注释掉SDL_DOUBLEBUF,那就需要在主循环里面增加一句
    /* main big loop */
    while (videoIn->signalquit) {
        ……
        
        SDL_Flip(pscreen);
 
        SDL_Delay(10);
    }
(2) V4L2_PIX_FMT_MJPEG改成V4L2_PIX_FMT_YUYV是因为通过V4L接口取出来的图像数据都是YUV格式的,除非你的摄像头支持mjpeg格式。当然也可以不修改源码,而在运行luvcview时增加一个参数运行,如:./luvcview -f yuv
 
(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜