Intel® RealSense™ Cross Platform API
Intel Realsense Cross-platform API
Loading...
Searching...
No Matches
libuvc.h
Go to the documentation of this file.
1#ifndef LIBUVC_H
2#define LIBUVC_H
3
4#ifdef __cplusplus
5extern "C" {
6#endif
7
8#include <stdio.h> // FILE
9#include <errno.h>
10#include <libusb.h>
11#include <sys/time.h> // timeval
12#include "libuvc_config.h"
13
17typedef enum uvc_error {
51 UVC_ERROR_OTHER = -99
53
70};
71
72struct uvc_format_desc;
73struct uvc_frame_desc;
74
81typedef struct uvc_frame_desc {
87 uint8_t bFrameIndex;
90 uint16_t wWidth;
92 uint16_t wHeight;
94 uint32_t dwMinBitRate;
96 uint32_t dwMaxBitRate;
112 uint32_t *intervals;
114
120typedef struct uvc_format_desc {
121 struct uvc_streaming_interface *parent;
129 union {
130 uint8_t guidFormat[16];
131 uint8_t fourccFormat[4];
132 };
134 union {
138 uint8_t bmFlags;
139 };
150
161 UVC_GET_DEF = 0x87
163
167};
168
193
217
221 UVC_TT_STREAMING = 0x0101
223
230
237
245
252struct uvc_context;
253typedef struct uvc_context uvc_context_t;
254
259struct uvc_device;
260typedef struct uvc_device uvc_device_t;
261
267struct uvc_device_handle;
268typedef struct uvc_device_handle uvc_device_handle_t;
269
275struct uvc_stream_handle;
276typedef struct uvc_stream_handle uvc_stream_handle_t;
277
279typedef struct uvc_input_terminal {
282 uint8_t bTerminalID;
289 uint64_t bmControls;
291
292typedef struct uvc_output_terminal {
296
298typedef struct uvc_processing_unit {
301 uint8_t bUnitID;
303 uint8_t bSourceID;
305 uint64_t bmControls;
307
309typedef struct uvc_extension_unit {
312 uint8_t bUnitID;
314 uint8_t guidExtensionCode[16];
316 uint64_t bmControls;
318
323};
324
331
335typedef void(uvc_status_callback_t)(enum uvc_status_class status_class,
336 int event,
337 int selector,
338 enum uvc_status_attribute status_attribute,
339 void *data, size_t data_len,
340 void *user_ptr);
341
346typedef struct uvc_device_descriptor {
348 uint16_t idVendor;
350 uint16_t idProduct;
352 uint16_t bcdUVC;
354 const char *serialNumber;
356 const char *manufacturer;
358 const char *product;
360
364typedef struct uvc_frame {
366 void *data;
370 uint32_t width;
372 uint32_t height;
374 uint32_t fourcc;
376 size_t step;
378 uint32_t sequence;
380 struct timeval capture_time;
392
396typedef void(uvc_frame_callback_t)(struct uvc_frame *frame, void *user_ptr);
397
401typedef struct uvc_stream_ctrl {
402 uint16_t bmHint;
404 uint8_t bFrameIndex;
407 uint16_t wPFrameRate;
408 uint16_t wCompQuality;
410 uint16_t wDelay;
416 uint8_t bMinVersion;
417 uint8_t bMaxVersion;
421
422uvc_error_t uvc_init(uvc_context_t **ctx, struct libusb_context *usb_ctx);
424
426 uvc_context_t *ctx,
427 uvc_device_t ***list);
428void uvc_free_device_list(uvc_device_t **list, uint8_t unref_devices);
429
431 uvc_device_t *dev,
435
438
440 uvc_context_t *ctx,
441 uvc_device_t **dev,
442 int vid, int pid, const char *sn);
443
445 uvc_device_t *dev,
446 uvc_device_handle_t **devh);
447
449 uvc_device_t *dev,
450 uvc_device_handle_t **devh,
451 int camera_number);
452
454
456libusb_device_handle *uvc_get_libusb_handle(uvc_device_handle_t *devh);
457
460
463 void *user_ptr);
464
469
472 uvc_stream_ctrl_t *ctrl,
473 uint32_t fourcc,
474 int width, int height,
475 int fps
476 );
477
479
482 uvc_stream_ctrl_t *ctrl);
483
486 uvc_stream_ctrl_t *ctrl,
488 void *user_ptr,
489 uint8_t flags,
490 int num_transfer_buffers);
491
494 uvc_stream_ctrl_t *ctrl,
496 void *user_ptr);
497
499
504 void *user_ptr,
505 uint8_t flags,
506 int num_transfer_buffers);
509 void *user_ptr);
511 uvc_stream_handle_t *strmh,
512 uvc_frame_t **frame,
513 int32_t timeout_us
514);
517
518int uvc_get_ctrl_len(uvc_device_handle_t *devh, uint8_t unit, uint8_t ctrl);
519int uvc_get_ctrl(uvc_device_handle_t *devh, uint8_t unit, uint8_t ctrl, void *data, int len, enum uvc_req_code req_code);
520int uvc_set_ctrl(uvc_device_handle_t *devh, uint8_t unit, uint8_t ctrl, void *data, int len);
521
524
525/* AUTO-GENERATED control accessors! Update them with the output of `ctrl-gen.py decl`. */
528
529uvc_error_t uvc_get_ae_mode(uvc_device_handle_t *devh, uint8_t* mode, enum uvc_req_code req_code);
531
532uvc_error_t uvc_get_ae_priority(uvc_device_handle_t *devh, uint8_t* priority, enum uvc_req_code req_code);
534
537
540
541uvc_error_t uvc_get_focus_abs(uvc_device_handle_t *devh, uint16_t* focus, enum uvc_req_code req_code);
543
544uvc_error_t uvc_get_focus_rel(uvc_device_handle_t *devh, int8_t* focus_rel, uint8_t* speed, enum uvc_req_code req_code);
545uvc_error_t uvc_set_focus_rel(uvc_device_handle_t *devh, int8_t focus_rel, uint8_t speed);
546
549
552
553uvc_error_t uvc_get_iris_abs(uvc_device_handle_t *devh, uint16_t* iris, enum uvc_req_code req_code);
555
556uvc_error_t uvc_get_iris_rel(uvc_device_handle_t *devh, uint8_t* iris_rel, enum uvc_req_code req_code);
558
559uvc_error_t uvc_get_zoom_abs(uvc_device_handle_t *devh, uint16_t* focal_length, enum uvc_req_code req_code);
561
562uvc_error_t uvc_get_zoom_rel(uvc_device_handle_t *devh, int8_t* zoom_rel, uint8_t* digital_zoom, uint8_t* speed, enum uvc_req_code req_code);
563uvc_error_t uvc_set_zoom_rel(uvc_device_handle_t *devh, int8_t zoom_rel, uint8_t digital_zoom, uint8_t speed);
564
565uvc_error_t uvc_get_pantilt_abs(uvc_device_handle_t *devh, int32_t* pan, int32_t* tilt, enum uvc_req_code req_code);
566uvc_error_t uvc_set_pantilt_abs(uvc_device_handle_t *devh, int32_t pan, int32_t tilt);
567
568uvc_error_t uvc_get_pantilt_rel(uvc_device_handle_t *devh, int8_t* pan_rel, uint8_t* pan_speed, int8_t* tilt_rel, uint8_t* tilt_speed, enum uvc_req_code req_code);
569uvc_error_t uvc_set_pantilt_rel(uvc_device_handle_t *devh, int8_t pan_rel, uint8_t pan_speed, int8_t tilt_rel, uint8_t tilt_speed);
570
573
574uvc_error_t uvc_get_roll_rel(uvc_device_handle_t *devh, int8_t* roll_rel, uint8_t* speed, enum uvc_req_code req_code);
575uvc_error_t uvc_set_roll_rel(uvc_device_handle_t *devh, int8_t roll_rel, uint8_t speed);
576
577uvc_error_t uvc_get_privacy(uvc_device_handle_t *devh, uint8_t* privacy, enum uvc_req_code req_code);
579
580uvc_error_t uvc_get_digital_window(uvc_device_handle_t *devh, uint16_t* window_top, uint16_t* window_left, uint16_t* window_bottom, uint16_t* window_right, uint16_t* num_steps, uint16_t* num_steps_units, enum uvc_req_code req_code);
581uvc_error_t uvc_set_digital_window(uvc_device_handle_t *devh, uint16_t window_top, uint16_t window_left, uint16_t window_bottom, uint16_t window_right, uint16_t num_steps, uint16_t num_steps_units);
582
583uvc_error_t uvc_get_digital_roi(uvc_device_handle_t *devh, uint16_t* roi_top, uint16_t* roi_left, uint16_t* roi_bottom, uint16_t* roi_right, uint16_t* auto_controls, enum uvc_req_code req_code);
584uvc_error_t uvc_set_digital_roi(uvc_device_handle_t *devh, uint16_t roi_top, uint16_t roi_left, uint16_t roi_bottom, uint16_t roi_right, uint16_t auto_controls);
585
586uvc_error_t uvc_get_backlight_compensation(uvc_device_handle_t *devh, uint16_t* backlight_compensation, enum uvc_req_code req_code);
587uvc_error_t uvc_set_backlight_compensation(uvc_device_handle_t *devh, uint16_t backlight_compensation);
588
589uvc_error_t uvc_get_brightness(uvc_device_handle_t *devh, int16_t* brightness, enum uvc_req_code req_code);
591
592uvc_error_t uvc_get_contrast(uvc_device_handle_t *devh, uint16_t* contrast, enum uvc_req_code req_code);
594
595uvc_error_t uvc_get_contrast_auto(uvc_device_handle_t *devh, uint8_t* contrast_auto, enum uvc_req_code req_code);
597
598uvc_error_t uvc_get_gain(uvc_device_handle_t *devh, uint16_t* gain, enum uvc_req_code req_code);
600
601uvc_error_t uvc_get_power_line_frequency(uvc_device_handle_t *devh, uint8_t* power_line_frequency, enum uvc_req_code req_code);
603
604uvc_error_t uvc_get_hue(uvc_device_handle_t *devh, int16_t* hue, enum uvc_req_code req_code);
606
607uvc_error_t uvc_get_hue_auto(uvc_device_handle_t *devh, uint8_t* hue_auto, enum uvc_req_code req_code);
609
610uvc_error_t uvc_get_saturation(uvc_device_handle_t *devh, uint16_t* saturation, enum uvc_req_code req_code);
612
613uvc_error_t uvc_get_sharpness(uvc_device_handle_t *devh, uint16_t* sharpness, enum uvc_req_code req_code);
615
616uvc_error_t uvc_get_gamma(uvc_device_handle_t *devh, uint16_t* gamma, enum uvc_req_code req_code);
618
621
624
625uvc_error_t uvc_get_white_balance_component(uvc_device_handle_t *devh, uint16_t* blue, uint16_t* red, enum uvc_req_code req_code);
627
628uvc_error_t uvc_get_white_balance_component_auto(uvc_device_handle_t *devh, uint8_t* white_balance_component_auto, enum uvc_req_code req_code);
629uvc_error_t uvc_set_white_balance_component_auto(uvc_device_handle_t *devh, uint8_t white_balance_component_auto);
630
631uvc_error_t uvc_get_digital_multiplier(uvc_device_handle_t *devh, uint16_t* multiplier_step, enum uvc_req_code req_code);
633
634uvc_error_t uvc_get_digital_multiplier_limit(uvc_device_handle_t *devh, uint16_t* multiplier_step, enum uvc_req_code req_code);
636
637uvc_error_t uvc_get_analog_video_standard(uvc_device_handle_t *devh, uint8_t* video_standard, enum uvc_req_code req_code);
639
642
643uvc_error_t uvc_get_input_select(uvc_device_handle_t *devh, uint8_t* selector, enum uvc_req_code req_code);
645/* end AUTO-GENERATED control accessors */
646
647void uvc_perror(uvc_error_t err, const char *msg);
648const char* uvc_strerror(uvc_error_t err);
649void uvc_print_diag(uvc_device_handle_t *devh, FILE *stream);
650void uvc_print_stream_ctrl(uvc_stream_ctrl_t *ctrl, FILE *stream);
651
652uvc_frame_t *uvc_allocate_frame(size_t data_bytes);
654
656
657#ifdef __cplusplus
658}
659#endif
660
661#endif // !def(LIBUVC_H)
662
uvc_error_t uvc_set_roll_rel(uvc_device_handle_t *devh, int8_t roll_rel, uint8_t speed)
uvc_error_t uvc_set_privacy(uvc_device_handle_t *devh, uint8_t privacy)
uvc_error_t uvc_get_contrast(uvc_device_handle_t *devh, uint16_t *contrast, enum uvc_req_code req_code)
uvc_error_t uvc_find_device(uvc_context_t *ctx, uvc_device_t **dev, int vid, int pid, const char *sn)
uvc_error_t uvc_stream_stop(uvc_stream_handle_t *strmh)
uvc_it_type
Definition libuvc.h:225
@ UVC_ITT_MEDIA_TRANSPORT_INPUT
Definition libuvc.h:228
@ UVC_ITT_VENDOR_SPECIFIC
Definition libuvc.h:226
@ UVC_ITT_CAMERA
Definition libuvc.h:227
uvc_error_t uvc_set_focus_simple_range(uvc_device_handle_t *devh, uint8_t focus)
struct uvc_processing_unit uvc_processing_unit_t
uvc_error_t uvc_get_analog_video_standard(uvc_device_handle_t *devh, uint8_t *video_standard, enum uvc_req_code req_code)
uvc_error_t uvc_get_focus_simple_range(uvc_device_handle_t *devh, uint8_t *focus, enum uvc_req_code req_code)
uvc_error_t uvc_get_iris_abs(uvc_device_handle_t *devh, uint16_t *iris, enum uvc_req_code req_code)
void() uvc_frame_callback_t(struct uvc_frame *frame, void *user_ptr)
Definition libuvc.h:396
uvc_error_t uvc_get_digital_window(uvc_device_handle_t *devh, uint16_t *window_top, uint16_t *window_left, uint16_t *window_bottom, uint16_t *window_right, uint16_t *num_steps, uint16_t *num_steps_units, enum uvc_req_code req_code)
void uvc_stream_close(uvc_stream_handle_t *strmh)
uvc_error_t uvc_get_digital_multiplier(uvc_device_handle_t *devh, uint16_t *multiplier_step, enum uvc_req_code req_code)
uvc_error_t uvc_get_sharpness(uvc_device_handle_t *devh, uint16_t *sharpness, enum uvc_req_code req_code)
uvc_error_t uvc_get_digital_roi(uvc_device_handle_t *devh, uint16_t *roi_top, uint16_t *roi_left, uint16_t *roi_bottom, uint16_t *roi_right, uint16_t *auto_controls, enum uvc_req_code req_code)
uvc_error_t uvc_start_streaming(uvc_device_handle_t *devh, uvc_stream_ctrl_t *ctrl, uvc_frame_callback_t *cb, void *user_ptr, uint8_t flags, int num_transfer_buffers)
int uvc_get_ctrl(uvc_device_handle_t *devh, uint8_t unit, uint8_t ctrl, void *data, int len, enum uvc_req_code req_code)
uvc_error_t uvc_get_device_descriptor(uvc_device_t *dev, uvc_device_descriptor_t **desc)
struct uvc_context uvc_context_t
Definition libuvc.h:253
uvc_error_t uvc_set_analog_video_standard(uvc_device_handle_t *devh, uint8_t video_standard)
const uvc_format_desc_t * uvc_get_format_descs(uvc_device_handle_t *)
uvc_error_t uvc_set_roll_abs(uvc_device_handle_t *devh, int16_t roll)
uvc_error_t uvc_get_power_mode(uvc_device_handle_t *devh, enum uvc_device_power_mode *mode, enum uvc_req_code req_code)
uvc_error_t uvc_get_exposure_rel(uvc_device_handle_t *devh, int8_t *step, enum uvc_req_code req_code)
uvc_error_t uvc_get_gain(uvc_device_handle_t *devh, uint16_t *gain, enum uvc_req_code req_code)
const uvc_extension_unit_t * uvc_get_extension_units(uvc_device_handle_t *devh)
uvc_error_t uvc_set_hue_auto(uvc_device_handle_t *devh, uint8_t hue_auto)
const uvc_output_terminal_t * uvc_get_output_terminals(uvc_device_handle_t *devh)
uvc_error_t uvc_set_gain(uvc_device_handle_t *devh, uint16_t gain)
uvc_error_t uvc_get_hue(uvc_device_handle_t *devh, int16_t *hue, enum uvc_req_code req_code)
uvc_device_t * uvc_get_device(uvc_device_handle_t *devh)
void uvc_unref_device(uvc_device_t *dev)
uvc_error_t uvc_get_white_balance_component(uvc_device_handle_t *devh, uint16_t *blue, uint16_t *red, enum uvc_req_code req_code)
uvc_error_t uvc_set_power_mode(uvc_device_handle_t *devh, enum uvc_device_power_mode mode)
struct uvc_output_terminal uvc_output_terminal_t
uvc_error_t uvc_set_digital_multiplier_limit(uvc_device_handle_t *devh, uint16_t multiplier_step)
void uvc_close(uvc_device_handle_t *devh)
uvc_error_t uvc_get_pantilt_rel(uvc_device_handle_t *devh, int8_t *pan_rel, uint8_t *pan_speed, int8_t *tilt_rel, uint8_t *tilt_speed, enum uvc_req_code req_code)
uvc_error_t uvc_get_focus_abs(uvc_device_handle_t *devh, uint16_t *focus, enum uvc_req_code req_code)
uvc_error_t uvc_stream_start_iso(uvc_stream_handle_t *strmh, uvc_frame_callback_t *cb, void *user_ptr)
uvc_error_t uvc_set_power_line_frequency(uvc_device_handle_t *devh, uint8_t power_line_frequency)
uvc_error_t uvc_probe_stream_ctrl(uvc_device_handle_t *devh, uvc_stream_ctrl_t *ctrl)
uvc_error_t uvc_set_brightness(uvc_device_handle_t *devh, int16_t brightness)
uvc_error_t uvc_get_focus_rel(uvc_device_handle_t *devh, int8_t *focus_rel, uint8_t *speed, enum uvc_req_code req_code)
uvc_error_t uvc_set_contrast(uvc_device_handle_t *devh, uint16_t contrast)
struct uvc_frame_desc uvc_frame_desc_t
uvc_error_t uvc_get_iris_rel(uvc_device_handle_t *devh, uint8_t *iris_rel, enum uvc_req_code req_code)
struct uvc_device_handle uvc_device_handle_t
Definition libuvc.h:268
uvc_error_t uvc_get_roll_abs(uvc_device_handle_t *devh, int16_t *roll, enum uvc_req_code req_code)
uvc_error_t uvc_set_white_balance_component_auto(uvc_device_handle_t *devh, uint8_t white_balance_component_auto)
uvc_error_t uvc_set_exposure_abs(uvc_device_handle_t *devh, uint32_t time)
void() uvc_status_callback_t(enum uvc_status_class status_class, int event, int selector, enum uvc_status_attribute status_attribute, void *data, size_t data_len, void *user_ptr)
Definition libuvc.h:335
uvc_error_t uvc_get_zoom_rel(uvc_device_handle_t *devh, int8_t *zoom_rel, uint8_t *digital_zoom, uint8_t *speed, enum uvc_req_code req_code)
uint8_t uvc_get_device_address(uvc_device_t *dev)
uvc_device_power_mode
Definition libuvc.h:164
@ UVC_VC_VIDEO_POWER_MODE_FULL
Definition libuvc.h:165
@ UVC_VC_VIDEO_POWER_MODE_DEVICE_DEPENDENT
Definition libuvc.h:166
uvc_error_t uvc_get_zoom_abs(uvc_device_handle_t *devh, uint16_t *focal_length, enum uvc_req_code req_code)
struct uvc_stream_ctrl uvc_stream_ctrl_t
uvc_error_t uvc_get_hue_auto(uvc_device_handle_t *devh, uint8_t *hue_auto, enum uvc_req_code req_code)
enum uvc_error uvc_error_t
struct uvc_input_terminal uvc_input_terminal_t
uvc_error_t uvc_set_white_balance_temperature_auto(uvc_device_handle_t *devh, uint8_t temperature_auto)
uvc_error_t uvc_get_roll_rel(uvc_device_handle_t *devh, int8_t *roll_rel, uint8_t *speed, enum uvc_req_code req_code)
uvc_error_t uvc_set_analog_video_lock_status(uvc_device_handle_t *devh, uint8_t status)
uvc_error_t uvc_set_iris_rel(uvc_device_handle_t *devh, uint8_t iris_rel)
struct uvc_format_desc uvc_format_desc_t
uvc_req_code
Definition libuvc.h:152
@ UVC_GET_MIN
Definition libuvc.h:156
@ UVC_RC_UNDEFINED
Definition libuvc.h:153
@ UVC_GET_RES
Definition libuvc.h:158
@ UVC_GET_MAX
Definition libuvc.h:157
@ UVC_GET_DEF
Definition libuvc.h:161
@ UVC_GET_INFO
Definition libuvc.h:160
@ UVC_SET_CUR
Definition libuvc.h:154
@ UVC_GET_LEN
Definition libuvc.h:159
@ UVC_GET_CUR
Definition libuvc.h:155
uvc_error_t uvc_set_white_balance_temperature(uvc_device_handle_t *devh, uint16_t temperature)
uvc_error_t uvc_set_digital_roi(uvc_device_handle_t *devh, uint16_t roi_top, uint16_t roi_left, uint16_t roi_bottom, uint16_t roi_right, uint16_t auto_controls)
uvc_error_t uvc_open2(uvc_device_t *dev, uvc_device_handle_t **devh, int camera_number)
void uvc_stop_streaming(uvc_device_handle_t *devh)
const uvc_processing_unit_t * uvc_get_processing_units(uvc_device_handle_t *devh)
uvc_error_t uvc_get_saturation(uvc_device_handle_t *devh, uint16_t *saturation, enum uvc_req_code req_code)
uvc_error_t uvc_get_privacy(uvc_device_handle_t *devh, uint8_t *privacy, enum uvc_req_code req_code)
uvc_error_t uvc_get_ae_priority(uvc_device_handle_t *devh, uint8_t *priority, enum uvc_req_code req_code)
int uvc_get_ctrl_len(uvc_device_handle_t *devh, uint8_t unit, uint8_t ctrl)
struct uvc_stream_handle uvc_stream_handle_t
Definition libuvc.h:276
uvc_error_t uvc_set_focus_rel(uvc_device_handle_t *devh, int8_t focus_rel, uint8_t speed)
uvc_error_t uvc_get_white_balance_component_auto(uvc_device_handle_t *devh, uint8_t *white_balance_component_auto, enum uvc_req_code req_code)
uvc_error_t uvc_get_white_balance_temperature(uvc_device_handle_t *devh, uint16_t *temperature, enum uvc_req_code req_code)
uvc_error_t uvc_set_zoom_rel(uvc_device_handle_t *devh, int8_t zoom_rel, uint8_t digital_zoom, uint8_t speed)
uvc_et_type
Definition libuvc.h:239
@ UVC_COMPOSITE_CONNECTOR
Definition libuvc.h:241
@ UVC_EXTERNAL_VENDOR_SPECIFIC
Definition libuvc.h:240
@ UVC_SVIDEO_CONNECTOR
Definition libuvc.h:242
@ UVC_COMPONENT_CONNECTOR
Definition libuvc.h:243
uvc_error_t uvc_get_brightness(uvc_device_handle_t *devh, int16_t *brightness, enum uvc_req_code req_code)
uvc_error_t uvc_set_digital_multiplier(uvc_device_handle_t *devh, uint16_t multiplier_step)
uvc_error_t uvc_set_hue(uvc_device_handle_t *devh, int16_t hue)
uvc_error_t uvc_get_scanning_mode(uvc_device_handle_t *devh, uint8_t *mode, enum uvc_req_code req_code)
uvc_error_t uvc_set_ae_mode(uvc_device_handle_t *devh, uint8_t mode)
void uvc_set_status_callback(uvc_device_handle_t *devh, uvc_status_callback_t cb, void *user_ptr)
uvc_error_t uvc_set_ae_priority(uvc_device_handle_t *devh, uint8_t priority)
uvc_error_t uvc_get_backlight_compensation(uvc_device_handle_t *devh, uint16_t *backlight_compensation, enum uvc_req_code req_code)
const uvc_input_terminal_t * uvc_get_input_terminals(uvc_device_handle_t *devh)
uvc_error_t uvc_get_digital_multiplier_limit(uvc_device_handle_t *devh, uint16_t *multiplier_step, enum uvc_req_code req_code)
void uvc_free_frame(uvc_frame_t *frame)
int uvc_set_ctrl(uvc_device_handle_t *devh, uint8_t unit, uint8_t ctrl, void *data, int len)
uvc_error_t uvc_set_focus_auto(uvc_device_handle_t *devh, uint8_t state)
uvc_status_class
Definition libuvc.h:319
@ UVC_STATUS_CLASS_CONTROL_PROCESSING
Definition libuvc.h:322
@ UVC_STATUS_CLASS_CONTROL
Definition libuvc.h:320
@ UVC_STATUS_CLASS_CONTROL_CAMERA
Definition libuvc.h:321
uvc_vs_desc_subtype
Definition libuvc.h:55
@ UVC_VS_FORMAT_DV
Definition libuvc.h:65
@ UVC_VS_FRAME_FRAME_BASED
Definition libuvc.h:68
@ UVC_VS_UNDEFINED
Definition libuvc.h:56
@ UVC_VS_FRAME_MJPEG
Definition libuvc.h:63
@ UVC_VS_FORMAT_UNCOMPRESSED
Definition libuvc.h:60
@ UVC_VS_OUTPUT_HEADER
Definition libuvc.h:58
@ UVC_VS_FORMAT_STREAM_BASED
Definition libuvc.h:69
@ UVC_VS_FORMAT_MPEG2TS
Definition libuvc.h:64
@ UVC_VS_FORMAT_FRAME_BASED
Definition libuvc.h:67
@ UVC_VS_INPUT_HEADER
Definition libuvc.h:57
@ UVC_VS_FRAME_UNCOMPRESSED
Definition libuvc.h:61
@ UVC_VS_COLORFORMAT
Definition libuvc.h:66
@ UVC_VS_FORMAT_MJPEG
Definition libuvc.h:62
@ UVC_VS_STILL_IMAGE_FRAME
Definition libuvc.h:59
const char * uvc_strerror(uvc_error_t err)
uvc_error_t uvc_set_zoom_abs(uvc_device_handle_t *devh, uint16_t focal_length)
uvc_error_t uvc_set_digital_window(uvc_device_handle_t *devh, uint16_t window_top, uint16_t window_left, uint16_t window_bottom, uint16_t window_right, uint16_t num_steps, uint16_t num_steps_units)
void uvc_exit(uvc_context_t *ctx)
void uvc_print_diag(uvc_device_handle_t *devh, FILE *stream)
uvc_ct_ctrl_selector
Definition libuvc.h:170
@ UVC_CT_PRIVACY_CONTROL
Definition libuvc.h:188
@ UVC_CT_SCANNING_MODE_CONTROL
Definition libuvc.h:172
@ UVC_CT_IRIS_ABSOLUTE_CONTROL
Definition libuvc.h:180
@ UVC_CT_PANTILT_ABSOLUTE_CONTROL
Definition libuvc.h:184
@ UVC_CT_FOCUS_RELATIVE_CONTROL
Definition libuvc.h:178
@ UVC_CT_PANTILT_RELATIVE_CONTROL
Definition libuvc.h:185
@ UVC_CT_FOCUS_AUTO_CONTROL
Definition libuvc.h:179
@ UVC_CT_FOCUS_ABSOLUTE_CONTROL
Definition libuvc.h:177
@ UVC_CT_DIGITAL_WINDOW_CONTROL
Definition libuvc.h:190
@ UVC_CT_ZOOM_ABSOLUTE_CONTROL
Definition libuvc.h:182
@ UVC_CT_ROLL_RELATIVE_CONTROL
Definition libuvc.h:187
@ UVC_CT_ROLL_ABSOLUTE_CONTROL
Definition libuvc.h:186
@ UVC_CT_REGION_OF_INTEREST_CONTROL
Definition libuvc.h:191
@ UVC_CT_CONTROL_UNDEFINED
Definition libuvc.h:171
@ UVC_CT_EXPOSURE_TIME_ABSOLUTE_CONTROL
Definition libuvc.h:175
@ UVC_CT_EXPOSURE_TIME_RELATIVE_CONTROL
Definition libuvc.h:176
@ UVC_CT_FOCUS_SIMPLE_CONTROL
Definition libuvc.h:189
@ UVC_CT_ZOOM_RELATIVE_CONTROL
Definition libuvc.h:183
@ UVC_CT_IRIS_RELATIVE_CONTROL
Definition libuvc.h:181
@ UVC_CT_AE_MODE_CONTROL
Definition libuvc.h:173
@ UVC_CT_AE_PRIORITY_CONTROL
Definition libuvc.h:174
uvc_status_attribute
Definition libuvc.h:325
@ UVC_STATUS_ATTRIBUTE_VALUE_CHANGE
Definition libuvc.h:326
@ UVC_STATUS_ATTRIBUTE_INFO_CHANGE
Definition libuvc.h:327
@ UVC_STATUS_ATTRIBUTE_UNKNOWN
Definition libuvc.h:329
@ UVC_STATUS_ATTRIBUTE_FAILURE_CHANGE
Definition libuvc.h:328
void uvc_ref_device(uvc_device_t *dev)
void uvc_free_device_descriptor(uvc_device_descriptor_t *desc)
uvc_term_type
Definition libuvc.h:219
@ UVC_TT_VENDOR_SPECIFIC
Definition libuvc.h:220
@ UVC_TT_STREAMING
Definition libuvc.h:221
uvc_error_t uvc_set_sharpness(uvc_device_handle_t *devh, uint16_t sharpness)
uvc_error_t uvc_set_backlight_compensation(uvc_device_handle_t *devh, uint16_t backlight_compensation)
struct uvc_device uvc_device_t
Definition libuvc.h:260
uvc_frame_t * uvc_allocate_frame(size_t data_bytes)
uvc_error_t uvc_get_input_select(uvc_device_handle_t *devh, uint8_t *selector, enum uvc_req_code req_code)
uvc_error_t uvc_set_contrast_auto(uvc_device_handle_t *devh, uint8_t contrast_auto)
uvc_error_t uvc_get_device_list(uvc_context_t *ctx, uvc_device_t ***list)
uvc_ot_type
Definition libuvc.h:232
@ UVC_OTT_VENDOR_SPECIFIC
Definition libuvc.h:233
@ UVC_OTT_DISPLAY
Definition libuvc.h:234
@ UVC_OTT_MEDIA_TRANSPORT_OUTPUT
Definition libuvc.h:235
uvc_error_t uvc_stream_open_ctrl(uvc_device_handle_t *devh, uvc_stream_handle_t **strmh, uvc_stream_ctrl_t *ctrl)
libusb_device_handle * uvc_get_libusb_handle(uvc_device_handle_t *devh)
uvc_error_t uvc_get_exposure_abs(uvc_device_handle_t *devh, uint32_t *time, enum uvc_req_code req_code)
uvc_error_t uvc_get_stream_ctrl_format_size(uvc_device_handle_t *devh, uvc_stream_ctrl_t *ctrl, uint32_t fourcc, int width, int height, int fps)
uvc_pu_ctrl_selector
Definition libuvc.h:195
@ UVC_PU_DIGITAL_MULTIPLIER_LIMIT_CONTROL
Definition libuvc.h:211
@ UVC_PU_SHARPNESS_CONTROL
Definition libuvc.h:204
@ UVC_PU_GAIN_CONTROL
Definition libuvc.h:200
@ UVC_PU_WHITE_BALANCE_COMPONENT_AUTO_CONTROL
Definition libuvc.h:209
@ UVC_PU_GAMMA_CONTROL
Definition libuvc.h:205
@ UVC_PU_CONTRAST_AUTO_CONTROL
Definition libuvc.h:215
@ UVC_PU_CONTRAST_CONTROL
Definition libuvc.h:199
@ UVC_PU_ANALOG_VIDEO_STANDARD_CONTROL
Definition libuvc.h:213
@ UVC_PU_SATURATION_CONTROL
Definition libuvc.h:203
@ UVC_PU_WHITE_BALANCE_TEMPERATURE_AUTO_CONTROL
Definition libuvc.h:207
@ UVC_PU_HUE_CONTROL
Definition libuvc.h:202
@ UVC_PU_WHITE_BALANCE_TEMPERATURE_CONTROL
Definition libuvc.h:206
@ UVC_PU_HUE_AUTO_CONTROL
Definition libuvc.h:212
@ UVC_PU_POWER_LINE_FREQUENCY_CONTROL
Definition libuvc.h:201
@ UVC_PU_WHITE_BALANCE_COMPONENT_CONTROL
Definition libuvc.h:208
@ UVC_PU_DIGITAL_MULTIPLIER_CONTROL
Definition libuvc.h:210
@ UVC_PU_BACKLIGHT_COMPENSATION_CONTROL
Definition libuvc.h:197
@ UVC_PU_BRIGHTNESS_CONTROL
Definition libuvc.h:198
@ UVC_PU_CONTROL_UNDEFINED
Definition libuvc.h:196
@ UVC_PU_ANALOG_LOCK_STATUS_CONTROL
Definition libuvc.h:214
uvc_error_t uvc_set_focus_abs(uvc_device_handle_t *devh, uint16_t focus)
uvc_error_t uvc_set_white_balance_component(uvc_device_handle_t *devh, uint16_t blue, uint16_t red)
uvc_error_t uvc_set_input_select(uvc_device_handle_t *devh, uint8_t selector)
uvc_error_t uvc_set_scanning_mode(uvc_device_handle_t *devh, uint8_t mode)
uvc_error_t uvc_get_white_balance_temperature_auto(uvc_device_handle_t *devh, uint8_t *temperature_auto, enum uvc_req_code req_code)
void uvc_print_stream_ctrl(uvc_stream_ctrl_t *ctrl, FILE *stream)
struct uvc_extension_unit uvc_extension_unit_t
void uvc_perror(uvc_error_t err, const char *msg)
uvc_error_t uvc_set_saturation(uvc_device_handle_t *devh, uint16_t saturation)
uvc_error_t uvc_stream_start(uvc_stream_handle_t *strmh, uvc_frame_callback_t *cb, void *user_ptr, uint8_t flags, int num_transfer_buffers)
uvc_error_t uvc_start_iso_streaming(uvc_device_handle_t *devh, uvc_stream_ctrl_t *ctrl, uvc_frame_callback_t *cb, void *user_ptr)
uvc_error
Definition libuvc.h:17
@ UVC_ERROR_PIPE
Definition libuvc.h:37
@ UVC_ERROR_NOT_SUPPORTED
Definition libuvc.h:43
@ UVC_ERROR_BUSY
Definition libuvc.h:31
@ UVC_ERROR_OTHER
Definition libuvc.h:51
@ UVC_ERROR_INTERRUPTED
Definition libuvc.h:39
@ UVC_ERROR_OVERFLOW
Definition libuvc.h:35
@ UVC_ERROR_CALLBACK_EXISTS
Definition libuvc.h:49
@ UVC_ERROR_NO_DEVICE
Definition libuvc.h:27
@ UVC_ERROR_IO
Definition libuvc.h:21
@ UVC_ERROR_INVALID_DEVICE
Definition libuvc.h:45
@ UVC_ERROR_INVALID_MODE
Definition libuvc.h:47
@ UVC_ERROR_INVALID_PARAM
Definition libuvc.h:23
@ UVC_SUCCESS
Definition libuvc.h:19
@ UVC_ERROR_TIMEOUT
Definition libuvc.h:33
@ UVC_ERROR_NO_MEM
Definition libuvc.h:41
@ UVC_ERROR_NOT_FOUND
Definition libuvc.h:29
@ UVC_ERROR_ACCESS
Definition libuvc.h:25
uvc_error_t uvc_set_exposure_rel(uvc_device_handle_t *devh, int8_t step)
uvc_error_t uvc_get_analog_video_lock_status(uvc_device_handle_t *devh, uint8_t *status, enum uvc_req_code req_code)
uint8_t uvc_get_bus_number(uvc_device_t *dev)
void uvc_free_device_list(uvc_device_t **list, uint8_t unref_devices)
struct uvc_frame uvc_frame_t
uvc_error_t uvc_get_contrast_auto(uvc_device_handle_t *devh, uint8_t *contrast_auto, enum uvc_req_code req_code)
uvc_error_t uvc_get_focus_auto(uvc_device_handle_t *devh, uint8_t *state, enum uvc_req_code req_code)
struct uvc_device_descriptor uvc_device_descriptor_t
uvc_error_t uvc_open(uvc_device_t *dev, uvc_device_handle_t **devh)
uvc_error_t uvc_stream_get_frame(uvc_stream_handle_t *strmh, uvc_frame_t **frame, int32_t timeout_us)
uvc_error_t uvc_get_gamma(uvc_device_handle_t *devh, uint16_t *gamma, enum uvc_req_code req_code)
uvc_error_t uvc_get_pantilt_abs(uvc_device_handle_t *devh, int32_t *pan, int32_t *tilt, enum uvc_req_code req_code)
uvc_error_t uvc_init(uvc_context_t **ctx, struct libusb_context *usb_ctx)
uvc_error_t uvc_set_gamma(uvc_device_handle_t *devh, uint16_t gamma)
uvc_error_t uvc_set_iris_abs(uvc_device_handle_t *devh, uint16_t iris)
uvc_error_t uvc_duplicate_frame(uvc_frame_t *in, uvc_frame_t *out)
uvc_error_t uvc_get_ae_mode(uvc_device_handle_t *devh, uint8_t *mode, enum uvc_req_code req_code)
uvc_error_t uvc_set_pantilt_abs(uvc_device_handle_t *devh, int32_t pan, int32_t tilt)
uvc_error_t uvc_set_pantilt_rel(uvc_device_handle_t *devh, int8_t pan_rel, uint8_t pan_speed, int8_t tilt_rel, uint8_t tilt_speed)
uvc_error_t uvc_get_power_line_frequency(uvc_device_handle_t *devh, uint8_t *power_line_frequency, enum uvc_req_code req_code)
Definition libuvc.h:346
uint16_t idProduct
Definition libuvc.h:350
const char * manufacturer
Definition libuvc.h:356
const char * serialNumber
Definition libuvc.h:354
uint16_t idVendor
Definition libuvc.h:348
uint16_t bcdUVC
Definition libuvc.h:352
const char * product
Definition libuvc.h:358
Definition libuvc.h:309
uint8_t guidExtensionCode[16]
Definition libuvc.h:314
struct uvc_extension_unit * next
Definition libuvc.h:310
struct uvc_extension_unit * prev
Definition libuvc.h:310
uint8_t bUnitID
Definition libuvc.h:312
uint64_t bmControls
Definition libuvc.h:316
Definition libuvc.h:120
uint8_t guidFormat[16]
Definition libuvc.h:130
uint8_t fourccFormat[4]
Definition libuvc.h:131
uint8_t bVariableSize
Definition libuvc.h:146
uint8_t bAspectRatioX
Definition libuvc.h:142
struct uvc_format_desc * prev
Definition libuvc.h:122
struct uvc_frame_desc * frame_descs
Definition libuvc.h:148
uint8_t bCopyProtect
Definition libuvc.h:145
uint8_t bmFlags
Definition libuvc.h:138
uint8_t bFormatIndex
Definition libuvc.h:126
uint8_t bNumFrameDescriptors
Definition libuvc.h:127
enum uvc_vs_desc_subtype bDescriptorSubtype
Definition libuvc.h:124
uint8_t bAspectRatioY
Definition libuvc.h:143
uint8_t bmInterlaceFlags
Definition libuvc.h:144
struct uvc_format_desc * next
Definition libuvc.h:122
uint8_t bBitsPerPixel
Definition libuvc.h:136
uint8_t bDefaultFrameIndex
Definition libuvc.h:141
struct uvc_streaming_interface * parent
Definition libuvc.h:121
Definition libuvc.h:81
uint16_t wWidth
Definition libuvc.h:90
uint32_t * intervals
Definition libuvc.h:112
uint8_t bFrameIndex
Definition libuvc.h:87
uint8_t bmCapabilities
Definition libuvc.h:88
struct uvc_frame_desc * prev
Definition libuvc.h:83
struct uvc_frame_desc * next
Definition libuvc.h:83
struct uvc_format_desc * parent
Definition libuvc.h:82
uint16_t wHeight
Definition libuvc.h:92
uint32_t dwBytesPerLine
Definition libuvc.h:110
uint32_t dwDefaultFrameInterval
Definition libuvc.h:100
enum uvc_vs_desc_subtype bDescriptorSubtype
Definition libuvc.h:85
uint32_t dwMaxBitRate
Definition libuvc.h:96
uint8_t bFrameIntervalType
Definition libuvc.h:108
uint32_t dwMaxVideoFrameBufferSize
Definition libuvc.h:98
uint32_t dwMinFrameInterval
Definition libuvc.h:102
uint32_t dwMinBitRate
Definition libuvc.h:94
uint32_t dwFrameIntervalStep
Definition libuvc.h:106
uint32_t dwMaxFrameInterval
Definition libuvc.h:104
Definition libuvc.h:364
size_t data_bytes
Definition libuvc.h:368
uint32_t width
Definition libuvc.h:370
uint8_t library_owns_data
Definition libuvc.h:390
uint32_t height
Definition libuvc.h:372
uint32_t sequence
Definition libuvc.h:378
uint32_t fourcc
Definition libuvc.h:374
size_t step
Definition libuvc.h:376
struct timeval capture_time
Definition libuvc.h:380
void * data
Definition libuvc.h:366
uvc_device_handle_t * source
Definition libuvc.h:383
Definition libuvc.h:279
uint16_t wObjectiveFocalLengthMin
Definition libuvc.h:285
uint8_t bTerminalID
Definition libuvc.h:282
uint64_t bmControls
Definition libuvc.h:289
enum uvc_it_type wTerminalType
Definition libuvc.h:284
uint16_t wOcularFocalLength
Definition libuvc.h:287
uint16_t wObjectiveFocalLengthMax
Definition libuvc.h:286
struct uvc_input_terminal * prev
Definition libuvc.h:280
struct uvc_input_terminal * next
Definition libuvc.h:280
Definition libuvc.h:292
struct uvc_output_terminal * next
Definition libuvc.h:293
struct uvc_output_terminal * prev
Definition libuvc.h:293
Definition libuvc.h:298
struct uvc_processing_unit * next
Definition libuvc.h:299
uint8_t bUnitID
Definition libuvc.h:301
uint64_t bmControls
Definition libuvc.h:305
struct uvc_processing_unit * prev
Definition libuvc.h:299
uint8_t bSourceID
Definition libuvc.h:303
Definition libuvc.h:401
uint32_t dwFrameInterval
Definition libuvc.h:405
uint32_t dwMaxPayloadTransferSize
Definition libuvc.h:412
uint8_t bFrameIndex
Definition libuvc.h:404
uint8_t bMaxVersion
Definition libuvc.h:417
uint16_t wDelay
Definition libuvc.h:410
uint8_t bmFramingInfo
Definition libuvc.h:414
uint8_t bMinVersion
Definition libuvc.h:416
uint16_t wCompWindowSize
Definition libuvc.h:409
uint16_t wKeyFrameRate
Definition libuvc.h:406
uint16_t wCompQuality
Definition libuvc.h:408
uint32_t dwMaxVideoFrameSize
Definition libuvc.h:411
uint16_t wPFrameRate
Definition libuvc.h:407
uvc_stream_handle_t * handle
Definition libuvc.h:419
uint16_t bmHint
Definition libuvc.h:402
uint8_t bFormatIndex
Definition libuvc.h:403
uint8_t bInterfaceNumber
Definition libuvc.h:418
uint8_t bPreferredVersion
Definition libuvc.h:415
uint32_t dwClockFrequency
Definition libuvc.h:413