歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> luvcview在arm板上的移植

luvcview在arm板上的移植

日期:2017/3/1 16:35:36   编辑:關於Linux
luvcview在arm板上的移植 一直想著在自己的開發板上能回顯攝像頭中的內容,今天終於有點時間了,試著在網上找了一下,發現支持V4L的攝像頭應用程序還真不少。我簡單看了一下,luvcview是支持直接回顯的。所以就嘗試著移植了luvcview。 www.2cto.com 開發環境: 主 機 VM & Ubuntu 10.04 開 發 板 devkit8500 (arm-cortex a8 dm3730) 交叉編譯器 arm-2009q1 1. 首先就是要下載luvcview源代碼,這個不用多說,到處都是。我這裡使用的是 luvcview_20070512.orig.tar.gz,這個包需要SDL庫的支持,在網上找找怎麼移植就是了。 2. 將壓縮包解壓到自己的工作目錄並進入源碼目錄: www.2cto.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
Copyright © Linux教程網 All Rights Reserved