最終更新:2014-11-26 (水) 16:49:38 (3432d)
UVC/エニュメレーション
インターフェイス
- VideoControl
- VideoStreaming
- AudioControl?
- AudioStreaming?
Windows
- エニュメレーション直後にVideoControlのProbeを行う。
リクエスト 要求バイト 応答バイト メモ GET_DESCRIPTOR(DEVICE) 64 18 64バイト要求して8バイト帰ってきたらリセット。なんか18バイト帰ってきた SET_ADDRESS GET_DESCRIPTOR(DEVICE) 18 18 コンフィグレーション=1つだけ GET_DESCRIPTOR(CONFIGURATION) 255 255 wTotalLength=1197、bNumInterfaces?=4。 GET_DESCRIPTOR(CONFIGURATION) 1197 1197 57ディスクリプタ。コンフィグレーション+IAD+(インターフェイス、VC_HEADER、VC_OUTPUT_TERMINAL、VC_EXTENSION_UNIT、VC_INPUT_TERMINAL、VC_PROCESSING_UNIT、エンドポイント) GET_DESCRIPTOR(STRING) 255 4 LANG IDリクエスト GET_DESCRIPTOR(STRING) iProduct? GET_DESCRIPTOR(DEVICE) 18 18 GET_DESCRIPTOR(CONFIGURATION) 9 9 wTotalLength=1197、bNumInterfaces?=4。 GET_DESCRIPTOR(CONFIGURATION) 1197 1133 47ディスクリプタ。最後の方謎データ。 SET_CONFIGURATION(1) コンフィグレーション1に切り替え SET_INTERFACE wIndex=1 SET_INTERFACE wIndex=3 GET_DESCRIPTOR(STRING) iFunction? GET_DESCRIPTOR(STRING) iFunction? SET_INTERFACE wIndex=1 GET_LEN 2 2 ControlSelector?=1 Entity=EU VideoControl GET_INFO 1 1 ControlSelector?=1 Entity=EU VideoControl GET_MIN? 4 4 ControlSelector?=1 Entity=EU VideoControl GET_MAX? 4 4 ControlSelector?=1 Entity=EU VideoControl GET_RES? 4 4 ControlSelector?=1 Entity=EU VideoControl GET_DEF 4 4 ControlSelector?=1 Entity=EU VideoControl GET_xxx ControlSelector?=2 Entity=EU VideoControl GET_xxx ControlSelector?=3 Entity=EU VideoControl GET_xxx ControlSelector?=4 Entity=EU VideoControl GET_xxx ControlSelector?=2 Entity=PU VideoControl GET_xxx ControlSelector?=3 Entity=PU VideoControl GET_xxx ControlSelector?=6 Entity=PU VideoControl GET_xxx ControlSelector?=7 Entity=PU VideoControl GET_xxx ControlSelector?=8 Entity=PU VideoControl GET_xxx ControlSelector?=9 Entity=PU VideoControl GET_xxx ControlSelector?=1 Entity=PU VideoControl
Linux
- Linuxは接続時にGET_DEFなどを行う。
GET_DESCRIPTOR(DEVICE) SET_ADDRESS GET_DESCRIPTOR(DEVICE) GET_DESCRIPTOR(CONFIG 1desc) GET_DESCRIPTOR(CONFIG 21desc) GET_DESCRIPTOR(STRING LANG) GET_DESCRIPTOR(STRING 1) GET_DESCRIPTOR(STRING 3) GET_DESCRIPTOR(STRING 2) SET_CONFIGURATION(1) GET_DESCRIPTOR(STRING 4) GET_DESCRIPTOR(STRING 5) SET_INTERFACE(1) GET_DEF CS=1(VS_PROBE_CONTROL) Ent=0 If=1 26bytes SET_CUR CS=1(VS_PROBE_CONTROL) Ent=0 If=1 26bytes GET_CUR CS=1(VS_PROBE_CONTROL) Ent=0 If=1 26bytes Probeまで。 - 使用時にVideoControlのProbeを行う。
UVC/ProbeとCommit
- ホストがカメラをエニュメレートした後、UVC ドライバは一連の要求をカメラに送信して動作の特性を判断します。
- これは「機能要求段階」と呼ばれています。この段階は、ホスト アプリケーションがビデオのストリームを開始するストリーム段階に先行します。
- 要求には PROBE および COMMIT という 2 個のタイプがあります。
- PROBE 要求は、UVC デバイスがストリーミングモードへの変更を受け入れる準備ができたかを判断するために使用されます。