2012年7月27日金曜日

mbedでWEBカメラ(BSW13K08H)のテスト

UVC対応なのだがペイロードはYUY2だけだった。モーションJPEGはありません。
フレームレートは画像サイズが決まると、他のは選べないみたい。

320 x 240 4.0fps
640 x 480 1.0fps
352 x 288 3.0fps
176 x 144 8.0fps
160 x 120 15.0fps

rc = Control(SET_CUR, VS_COMMIT_CONTROL, 1, param, sizeof(param));
がエラーになってしまうのでuvcini.cppを修正。

パケットサイズは下記のとおり。
MaxPacketSize:
192 256 768 780 812 976 1020

YUY2のテストプログラム、先頭2ピクセルのデータを表示します。
example4_yuy2.cpp

Vender: 1E4E
Product: 0103
Manufacture: Etron Technology, Inc.
Product: USB2.0 Camera

DESCRIPTOR_TYPE_CS_INTERFACE
CC_VIDEO
SC_VIDEOSTREAMING
VS_FORMAT_UNCOMPRESSED
FormatIndex: 1
NumFrameDescriptors: 5
GUID: YUY2
DefaultFrameIndex: 1

(7月30日追加)
rc = Control(SET_CUR, VS_COMMIT_CONTROL, 1, param, sizeof(param));
を外したら、他のUSBカメラが動かなくなってしまったので元にもどす。
VS_COMMIT_CONTROLの先頭8バイト以外も更新しないといけないのか。
そもそも VS_COMMIT_CONTROLとVS_PROBE_CONTROLの違いを理解していない。

BSW13K08Hはパケットサイズを変更すると動作が変わってくるので転送速度が間に合ってないのかも。
先頭2ピクセルを読み取っているのは間違いかもしれない。


---

0 件のコメント: