Ubuntu 10.10 でWebカメラの映像を取得するプログラムを書いたのですが、 ioctl(VIDIOCGMBUF) に失敗してしまいます。 Debian(Etch) だと動いたんですがね~ VIDIOCGMBUF 辺りをキーワードに検索したのですが、なかなか見つからず、やっとこさ見つかったので、メモ。
$ LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so ./a.out と実行すると無事カメラから映像(画像)を取得することが出来ました。 取得出来たんですが、タイムラグがかなりあります。 プログラムに改良の余地がありますな。 参考: Chapter 6. Libv4l Userspace Library Bug #331014 in linux (Ubuntu): “uvc video driver lacks VIDIOCGMBUF ioctl” 環境変数 LD_PRELOAD - 技術メモ帳 ウノウラボ by Zynga Japan: LD_PRELOADを使って任意の関数呼び出しにフックしてみる