PTAM

基本的なpackageはyumでインストール

  • TooN
  • libcvd
  • gvars3

はREADMEのバージョンのものをCVSでとってくる。 すべてPTAMをビルドしても動作しない。どうもV4L2の設定に失敗している模様。 そこで libcvd の解析する progsvideo_play_source というvideoテストプログラムがあるのでこれでテストする。

使い方:

./video_play_source -mono v4l2:///dev/video0 or ./video_play_source -rgb8 v4l2:///dev/video0

VIDIOC_S_FMT が失敗して異常終了する。 そこで cvd_src/Linux/v4lbuffer.cc を解析し V4L2Client メソッドがYUYVをサポートしていないのを発見。

f.pixelformat == fourcc("YVU9") ||
+ f.pixelformat == fourcc("YUYV")))
{
  actual_fmt = f.pixelformat;
}

こんな感じでYUYVを加えると、とりあえず-monoで絵がでるようになった。ただしゴーストがでる。。 どうもformatの設定がおかしい。 formatはfmt変数が要求のformatでv4l2から検索し存在したら actual_fmt にセットする。 ただし、grayscale(つまり-mono)では"422P", "YU12", "YV12", "411P", "YUV9", "YVU9"のいずれかを選択できる。 引数に-rgb8を指定するとfmt=RGB4になり、v4l2から探し出せないので actual_fmtNone になる。で VIDIOC_S_FMTに失敗する。 そこで libcvd をYUYVに対応させるかuvcを他のformatに対応させる必要がある。