最終更新:2023-04-24 (月) 16:08:06 (329d)
UVC/ディスクリプタ
Video Class-Specific Descriptor Types
- 標準ディスクリプタに付随する下記が定義されている。
bDescriptorType CS_UNDEFINED? 0x20 CS_DEVICE? 0x21 - UVCはインターフェイスレベルに属するので定義しない CS_CONFIGURATION? 0x22 - 標準のと同一。クラス固有の定義はない。 CS_STRING? 0x23 - CS_INTERFACE 0x24 UVC/インターフェイスディスクリプタ 標準インターフェイスディスクリプタに従属 CS_ENDPOINT? 0x25 UVC/エンドポイントディスクリプタ
その他
順序
- 親子関係
デバイスディスクリプタ └コンフィグレーションディスクリプタ └インターフェイスアソシエーションディスクリプタ └インターフェイスディスクリプタ └VideoControlインターフェイスディスクリプタ └... └インターフェイスディスクリプタ └VideoStreamingインターフェイスディスクリプタ └...
- 例
定義 種類 備考 デバイス USB/標準ディスクリプタ デバイスディスクリプタ VID/PIDとか コンフィグレーション USB/標準ディスクリプタ コンフィグレーションディスクリプタ UVC USB/標準ディスクリプタ IAD (インターフェイスアソシエーションディスクリプタ) bFunctionClass=0x0E (Video)
bFunctionSubClass=0x03 (Video Interface Collection)
bInterfaceCount=0x02VideoControl USB/標準ディスクリプタ インターフェイスディスクリプタ bInterfaceClass=0x0E (Video)
bInterfaceSubClass=0x01 (Video Control)UVC/ディスクリプタ VideoControlインターフェイスヘッダディスクリプタ UVC/ディスクリプタ インプットターミナルディスクリプタ UVC/ディスクリプタ プロセッシングユニットディスクリプタ UVC/ディスクリプタ エクステンションユニットディスクリプタ? UVC/ディスクリプタ アウトプットターミナルディスクリプタ? USB/標準ディスクリプタ エンドポイントディスクリプタ UVC/ディスクリプタ VCインタラプトエンドポイントディスクリプタ? VideoStreaming USB/標準ディスクリプタ インターフェイスディスクリプタ bInterfaceClass=0x0E (Video)
bInterfaceSubClass=0x02 (Video Streaming)UVC/ディスクリプタ (VSインターフェイス)インプットヘッダディスクリプタ bNumFormats=0x02 UVC/ディスクリプタ 非圧縮ビデオフォーマットディスクリプタ bFormatIndex=0x01 UVC/ディスクリプタ 非圧縮フレームディスクリプタ これ*解像度分 UVC/ディスクリプタ カラーマッチングディスクリプタ UVC/ディスクリプタ MJPEGビデオフォーマットディスクリプタ bFormatIndex=0x02 UVC/ディスクリプタ MJPEGフレームディスクリプタ これ*解像度分 UVC/ディスクリプタ カラーマッチングディスクリプタ
ディスクリプタ構成
デバイスディスクリプタ (標準)
コンフィグレーションディスクリプタ (標準)
IAD
UVC/インターフェイスディスクリプタ
- UVC/VideoControlインターフェイスのみと、IADで下記をまとめる2種類の定義の仕方がある。
標準インターフェイスディスクリプタ
- VideoControl/VideoStreaming用の標準インターフェイスディスクリプタにクラス固有のインターフェイスディスクリプタが従属する。
- bInterfaceClass : 0x0E (Video)
- bInterfaceSubClass
SC_UNDEFINED 0x00 SC_VIDEOCONTROL 0x01 SC_VIDEOSTREAMING 0x02 SC_VIDEO_INTERFACE_COLLECTION 0x03
インターフェイスディスクリプタに従属するディスクリプタ
UVC/VideoControl用インターフェイスディスクリプタ (標準)に従属
- VideoControlインターフェイスディスクリプタ (クラス固有)
- 入出力と、その他の機能コンポーネントに関する情報を提供
- bDescriptorType=0x24(36)
bDescriptorSubType VC_DESCRIPTOR_UNDEFINED 0x00 VC_HEADER 0x01 VideoControlインターフェイスヘッダディスクリプタ VC_INPUT_TERMINAL 0x02 インプットターミナルディスクリプタ VC_OUTPUT_TERMINAL 0x03 アウトプットターミナルディスクリプタ? VC_SELECTOR_UNIT 0x04 セレクタユニットディスクリプタ? VC_PROCESSING_UNIT 0x05 プロセッシングユニットディスクリプタ VC_EXTENSION_UNIT 0x06 エクステンションユニットディスクリプタ?
- エンドポイントディスクリプタ (標準)
- UVC/エンドポイントディスクリプタ (Class-Specific)
UVC/VideoStreaming用インターフェイスディスクリプタ (標準)に従属
- VideoStreamingインターフェイスディスクリプタ (クラス固有)
- 動画データの転送を可能にする。
- ビデオコントロールインターフェイスあたり1つ以上
- bDescriptorType=0x24(36)
bDescriptorSubType VS_UNDEFINED? 0x00 VS_INPUT_HEADER? 0x01 インプットヘッダディスクリプタ VS_OUTPUT_HEADER? 0x02 アウトプットヘッダディスクリプタ? VS_STILL_IMAGE_FRAME? 0x03 スチルイメージフレームディスクリプタ VS_FORMAT_UNCOMPRESSED 0x04 非圧縮ビデオフォーマットディスクリプタ VS_FRAME_UNCOMPRESSED? 0x05 非圧縮フレームディスクリプタ VS_FORMAT_MJPEG 0x06 MJPEGビデオフォーマットディスクリプタ VS_FRAME_MJPEG 0x07 MJPEGビデオフレームディスクリプタ Reserved 0x08 Reserved 0x09 VS_FORMAT_MPEG2TS? 0x0A ビデオフォーマットディスクリプタ? Reserved 0x0B VS_FORMAT_DV? 0x0C ビデオフォーマットディスクリプタ? VS_COLORFORMAT? 0x0D カラーマッチングディスクリプタ Reserved 0x0E Reserved 0x0F VS_FORMAT_FRAME_BASED 0x10 ビデオフォーマットディスクリプタ? VS_FRAME_FRAME_BASED? 0x11 ビデオフレームディスクリプタ VS_FORMAT_STREAM_BASED? 0x12 ビデオフォーマットディスクリプタ?
フォーマット別ペイロードフォーマットディスクリプタ
非圧縮 (USB_Video_Payload_Uncompressed)
MJPEG (USB_Video_Payload_MJPEG)
フレーム-ベース (USB_Video_Payload_Frame_Based)
PlayStation Camera
関連
- UVC/リクエスト?