8 #ifndef META_OCEAN_SYSTEM_USB_VIDEO_VC_DESCRIPTOR_H
9 #define META_OCEAN_SYSTEM_USB_VIDEO_VC_DESCRIPTOR_H
116 uint8_t bLength_ = 0u;
119 uint8_t bDescriptorType_ = 0u;
122 uint8_t bDescriptorSubtype_ = 0u;
127 uint16_t bcdUVC_ = 0u;
130 uint16_t wTotalLength_ = 0u;
140 uint32_t dwClockFrequency_ = 0u;
143 uint8_t bInCollection_ = 0u;
192 ITT_VENDOR_SPECIFIC = 0x200u,
194 ITT_CAMERA = 0x0201u,
196 ITT_MEDIA_TRANSPORT_INPUT = 0x0202u
204 CT_CONTROL_UNDEFINED = 0x00u,
205 CT_SCANNING_MODE_CONTROL = 0x01u,
206 CT_AE_MODE_CONTROL = 0x02u,
207 CT_AE_PRIORITY_CONTROL = 0x03u,
208 CT_EXPOSURE_TIME_ABSOLUTE_CONTROL = 0x04u,
209 CT_EXPOSURE_TIME_RELATIVE_CONTROL = 0x05u,
210 CT_FOCUS_ABSOLUTE_CONTROL = 0x06u,
211 CT_FOCUS_RELATIVE_CONTROL = 0x07u,
212 CT_FOCUS_AUTO_CONTROL = 0x08u,
213 CT_IRIS_ABSOLUTE_CONTROL = 0x09u,
214 CT_IRIS_RELATIVE_CONTROL = 0x0Au,
215 CT_ZOOM_ABSOLUTE_CONTROL = 0x0Bu,
216 CT_ZOOM_RELATIVE_CONTROL = 0x0Cu,
217 CT_PANTILT_ABSOLUTE_CONTROL = 0x0Du,
218 CT_PANTILT_RELATIVE_CONTROL = 0x0Eu,
219 CT_ROLL_ABSOLUTE_CONTROL = 0x0Fu,
220 CT_ROLL_RELATIVE_CONTROL = 0x10u,
221 CT_PRIVACY_CONTROL = 0x11u
243 std::string
toString(libusb_device_handle* usbDeviceHandle =
nullptr)
const;
262 uint8_t bLength_ = 0u;
265 uint8_t bDescriptorType_ = 0u;
268 uint8_t bDescriptorSubtype_ = 0u;
273 uint8_t bTerminalID_ = 0u;
276 uint16_t wTerminalType_ = 0u;
279 uint8_t bAssocTerminal_ = 0u;
282 uint8_t iTerminal_ = 0u;
285 uint16_t wObjectiveFocalLengthMin_ = 0u;
288 uint16_t wObjectiveFocalLengthMax_ = 0u;
291 uint16_t wOcularFocalLength_ = 0u;
294 uint8_t bControlSize_ = 0u;
353 PU_CONTROL_UNDEFINED = 0x00u,
354 PU_BACKLIGHT_COMPENSATION_CONTROL = 0x01u,
355 PU_BRIGHTNESS_CONTROL = 0x02u,
356 PU_CONTRAST_CONTROL = 0x03u,
357 PU_GAIN_CONTROL = 0x04u,
358 PU_POWER_LINE_FREQUENCY_CONTROL = 0x05u,
359 PU_HUE_CONTROL = 0x06u,
360 PU_SATURATION_CONTROL = 0x07u,
361 PU_SHARPNESS_CONTROL = 0x08u,
362 PU_GAMMA_CONTROL = 0x09u,
363 PU_WHITE_BALANCE_TEMPERATURE_CONTROL = 0x0Au,
364 PU_WHITE_BALANCE_TEMPERATURE_AUTO_CONTROL = 0x0Bu,
365 PU_WHITE_BALANCE_COMPONENT_CONTROL = 0x0Cu,
366 PU_WHITE_BALANCE_COMPONENT_AUTO_CONTROL = 0x0Du,
367 PU_DIGITAL_MULTIPLIER_CONTROL = 0x0Eu,
368 PU_DIGITAL_MULTIPLIER_LIMIT_CONTROL = 0x0Fu,
369 PU_HUE_AUTO_CONTROL = 0x10u,
370 PU_ANALOG_VIDEO_STANDARD_CONTROL = 0x11u,
371 PU_ANALOG_LOCK_STATUS_CONTROL = 0x12u
393 std::string
toString(libusb_device_handle* usbDeviceHandle =
nullptr)
const;
412 uint8_t bLength_ = 0u;
415 uint8_t bDescriptorType_ = 0u;
418 uint8_t bDescriptorSubtype_ = 0u;
423 uint8_t bUnitID_ = 0u;
426 uint8_t bSourceID_ = 0u;
432 uint16_t wMaxMultiplier_ = 0u;
435 uint8_t bControlSize_ = 0u;
462 uint8_t iProcessing_ = 0u;
474 uint8_t bmVideoStandards_ = 0u;
517 std::string
toString(libusb_device_handle* usbDeviceHandle =
nullptr)
const;
528 uint8_t bLength_ = 0u;
531 uint8_t bDescriptorType_ = 0u;
534 uint8_t bDescriptorSubtype_ = 0u;
539 uint8_t bUnitID_ = 0u;
542 uint8_t bNrInPins_ = 0u;
548 uint8_t iSelector_ = 0u;
602 std::string
toString(libusb_device_handle* usbDeviceHandle =
nullptr)
const;
613 uint8_t bLength_ = 0u;
616 uint8_t bDescriptorType_ = 0u;
619 uint8_t bDescriptorSubtype_ = 0u;
624 uint8_t bUnitID_ = 0u;
627 uint8_t guidExtensionCode_[16];
630 uint8_t bNumControls_ = 0u;
633 uint8_t bNrInPins_ = 0u;
639 uint8_t bControlSize_ = 0u;
645 uint8_t iExtension_ = 0u;
This class implements the base class for all interface descriptors.
Definition: system/usb/Descriptor.h:29
This class implements the base class for all video control descriptors.
Definition: VCDescriptor.h:33
VideoControlInterfaceTypes
Definition of individual video control interfaces types.
Definition: VCDescriptor.h:41
@ VC_HEADER
Video interface header descriptor.
Definition: VCDescriptor.h:45
@ VC_PROCESSING_UNIT
This descriptor describes the processing unit that processes the video stream data that is delivered ...
Definition: VCDescriptor.h:53
@ VC_SELECTOR_UNIT
This descriptor describes the selector unit that is connected to the processing unit....
Definition: VCDescriptor.h:51
@ VC_DESCRIPTOR_UNDEFINED
Undefined descriptor.
Definition: VCDescriptor.h:43
@ VC_EXTENSION_UNIT
Extension unit descriptor.
Definition: VCDescriptor.h:55
@ VC_OUTPUT_TERMINAL
This descriptor describes the output terminal that represents the USB pipe to the host.
Definition: VCDescriptor.h:49
@ VC_INPUT_TERMINAL
This descriptor describes the input terminal that represents a camera or other video source.
Definition: VCDescriptor.h:47
Extension Unit Descriptor (VC_EXTENSION_UNIT)
Definition: VCDescriptor.h:580
bool isValid() const
Returns whether this object holds valid descriptor information.
std::vector< uint8_t > bmControls_
A bit set to 1 indicates that the mentioned Control is supported: D(n*8-1)..0: Vendor-specific.
Definition: VCDescriptor.h:642
std::string toString(libusb_device_handle *usbDeviceHandle=nullptr) const
Returns the content of this descriptor as string.
VCExtensionUnitDescriptor()=default
Default constructor creating an invalid descriptor.
VCExtensionUnitDescriptor(const void *buffer, const size_t size)
Creates a new extension unit descriptor from memory.
std::vector< uint8_t > baSourceID_
IDs of the Unit or Terminal to which the Input Pins of this Extension Unit is connected.
Definition: VCDescriptor.h:636
Processing Unit Descriptor (VC_PROCESSING_UNIT).
Definition: VCDescriptor.h:343
VCProcessingUnitDescriptor()=default
Default constructor creating an invalid descriptor.
bool isControlSupported(const ControlSelector controlSelector) const
Returns whether this input terminal supports a specified control.
VCProcessingUnitDescriptor(const void *buffer, const size_t size)
Creates a new processing unit descriptor from memory.
bool isValid() const
Returns whether this object holds valid descriptor information.
std::string toString(libusb_device_handle *usbDeviceHandle=nullptr) const
Returns the content of this descriptor as string.
ControlSelector
Definition of Processing Unit Control Selectors.
Definition: VCDescriptor.h:352
std::vector< uint8_t > bmControls_
A bit set to 1 indicates that the mentioned Control is supported for the video stream.
Definition: VCDescriptor.h:459
Selector Unit Descriptor (VC_SELECTOR_UNIT).
Definition: VCDescriptor.h:495
bool isValid() const
Returns whether this object holds valid descriptor information.
std::string toString(libusb_device_handle *usbDeviceHandle=nullptr) const
Returns the content of this descriptor as string.
VCSelectorUnitDescriptor(const void *buffer, const size_t size)
Creates a new selector unit descriptor from memory.
std::vector< uint8_t > baSourceID_
ID of the Unit or Terminal to which the Input Pins of this Selector Unit is connected.
Definition: VCDescriptor.h:545
VCSelectorUnitDescriptor()=default
Default constructor creating an invalid descriptor.
The namespace covering the entire Ocean framework.
Definition: Accessor.h:15