がんばってパラメータを調整したuvccaptureですが、部屋の明るさが変わると絵がボロボロになってしまいます(考えてみれば当たり前ですが)。そこで、その対策としてソースに手を入れて、自動調整するようにしてみよう、と一瞬思ったのですが、その前にRaspbianにapt-getで入ったuvccaptureバージョンを調べてみると、0.4で2006年のものみたいです。一方で最新版は0.5にパッチが入って0.5-2ということみたいです。
ということで、ソースからコンパイルしてみます。
早速、ソースとパッチを取ってきて、展開します。
pi@raspberrypi ~/temp $ wget http://ftp.de.debian.org/debian/pool/main/u/uvccapture/uvccapture_0.5.orig.tar.gz --2012-10-06 03:19:58-- http://ftp.de.debian.org/debian/pool/main/u/uvccapture/uvccapture_0.5.orig.tar.gz ftp.de.debian.org (ftp.de.debian.org) をDNSに問いあわせています... 141.76.2.4 ftp.de.debian.org (ftp.de.debian.org)|141.76.2.4|:80 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 200 OK 長さ: 17807 (17K) [application/x-gzip] `uvccapture_0.5.orig.tar.gz' に保存中 100%[================================================================================>] 17,807 20.3K/s 時間 0.9s 2012-10-06 03:20:00 (20.3 KB/s) - `uvccapture_0.5.orig.tar.gz' へ保存完了 [17807/17807] pi@raspberrypi ~/temp $ wget http://ftp.de.debian.org/debian/pool/main/u/uvccapture/uvccapture_0.5-2.debian.tar.gz --2012-10-06 03:20:10-- http://ftp.de.debian.org/debian/pool/main/u/uvccapture/uvccapture_0.5-2.debian.tar.gz ftp.de.debian.org (ftp.de.debian.org) をDNSに問いあわせています... 141.76.2.4 ftp.de.debian.org (ftp.de.debian.org)|141.76.2.4|:80 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 200 OK 長さ: 3734 (3.6K) [application/x-gzip] `uvccapture_0.5-2.debian.tar.gz' に保存中 100%[================================================================================>] 3,734 --.-K/s 時間 0s 2012-10-06 03:20:10 (26.8 MB/s) - `uvccapture_0.5-2.debian.tar.gz' へ保存完了 [3734/3734] pi@raspberrypi ~/temp $ ls ethlink ethlink.c snap.jpg uvccapture_0.5-2.debian.tar.gz uvccapture_0.5.orig.tar.gz pi@raspberrypi ~/temp $ tar xvfz uvccapture_0.5.orig.tar.gz uvccapture-0.5/ uvccapture-0.5/Makefile uvccapture-0.5/uvccapture.c.orig uvccapture-0.5/v4l2uvc.c uvccapture-0.5/v4l2uvc.h uvccapture-0.5/ChangeLog uvccapture-0.5/README uvccapture-0.5/uvccapture.c uvccapture-0.5/TODO uvccapture-0.5/COPYING pi@raspberrypi ~/temp $ tar xvfz uvccapture_0.5-2.debian.tar.gz debian/ debian/compat debian/uvccapture.1 debian/docs debian/watch debian/copyright debian/control debian/changelog debian/rules debian/patches/ debian/patches/fix_videodev_include_FTBFS.patch debian/patches/series debian/source/ debian/source/format debian/dirs pi@raspberrypi ~/temp $
で、ファイルをみてみると、パッチの方はCソースでインクルードするヘッダファイルを videodev.h から videodev2.h に変更するだけでしたので、手で修正しました。
次に、Makefileを見てみると、
CC=gcc CPP=g++ APP_BINARY=uvccapture VERSION = 0.4 PREFIX=/usr/local/bin WARNINGS = -Wall CFLAGS = -std=gnu99 -O2 -DLINUX -DVERSION=\"$(VERSION)\" $(WARNINGS) CPPFLAGS = $(CFLAGS) OBJECTS= uvccapture.o v4l2uvc.o all: uvccapture clean: @echo "Cleaning up directory." rm -f *.a *.o $(APP_BINARY) core *~ log errlog install: install $(APP_BINARY) $(PREFIX) # Applications: uvccapture: $(OBJECTS) $(CC) $(OBJECTS) $(XPM_LIB) $(MATH_LIB) -ljpeg -o $(APP_BINARY)
・・・バージョン0.4って書いてあります。パッケージは0.5_2でもプログラムで表示されるのは0.4ってことみたいです・・・。コンパイルする意味がなくなりました・・・。
それに、PC側でCheeseを使うとちゃんと動くカメラもある(今回のはやはり色がおかしい)ので、手を入れるべきはuvccaptureではなくどうやらLinuxのUVCドライバのような気がします。