24 _usb_device(usb_device), _info(info)
89 frame.bFrameIndex = block[3];
90 frame.bmCapabilities = block[4];
91 frame.wWidth = block[5] + (block[6] << 8);
92 frame.wHeight = block[7] + (block[8] << 8);
93 frame.dwMinBitRate = as<int>(block, 9);
94 frame.dwMaxBitRate = as<int>(block, 13);
95 frame.dwMaxVideoFrameBufferSize = as<int>(block, 17);
96 frame.dwDefaultFrameInterval = as<int>(block, 21);
97 frame.bFrameIntervalType = block[25];
100 frame.dwMinFrameInterval = as<int>(block, 26);
101 frame.dwMaxFrameInterval = as<int>(block, 30);
102 frame.dwFrameIntervalStep = as<int>(block, 34);
104 frame.intervals = std::vector<uint32_t>((block[25] + 1));
106 for (
int i = 0;
i < block[25]; ++
i)
108 frame.intervals[
i] = as<int>(block, 26 + (
i * 4));
122 frame.bFrameIndex = block[3];
123 frame.bmCapabilities = block[4];
124 frame.wWidth = block[5] + (block[6] << 8);
125 frame.wHeight = block[7] + (block[8] << 8);
126 frame.dwMinBitRate = as<int>(block, 9);
127 frame.dwMaxBitRate = as<int>(block, 13);
128 frame.dwDefaultFrameInterval = as<int>(block, 17);
129 frame.bFrameIntervalType = block[21];
130 frame.dwBytesPerLine = as<int>(block, 22);
132 if (block[21] == 0) {
133 frame.dwMinFrameInterval = as<int>(block, 26);
134 frame.dwMaxFrameInterval = as<int>(block, 30);
135 frame.dwFrameIntervalStep = as<int>(block, 34);
137 frame.intervals = std::vector<uint32_t>((block[21] + 1));
138 for (
int i = 0;
i < block[21]; ++
i)
140 frame.intervals[
i] = as<int>(block, 26 + (
i * 4));
150 auto block = descs[
index].data;
152 auto descriptor_subtype = block[2];
154 switch (descriptor_subtype) {
178 auto block = descs[
index].data;
179 auto descriptor_subtype = block[2];
182 switch (descriptor_subtype) {
199 for(
int i = 0;
i < descs.size();
i++)
204 if(
d.data[2] != interface_number)
207 for(
i++ ;
i < descs.size();
i++)
212 auto descriptor_subtype =
d.data[2];
214 switch (descriptor_subtype) {
256 return throw std::runtime_error(
"parse_video_control_header failed to parse bcdUVC");
259 for (
int j = 12;
j < block.size(); ++
j) {
260 auto intf = block[
j];
278 for (
size_t i = 14 + block[14];
i >= 15; --
i)
292 for (
size_t i = 7 + block[7];
i >= 8; --
i)
298 const uint8_t *start_of_controls;
299 int size_of_controls, num_in_pins;
304 num_in_pins = block[21];
305 size_of_controls = block[22 + num_in_pins];
306 start_of_controls = &block[23 + num_in_pins];
308 for (
int i = size_of_controls - 1;
i >= 0; --
i)
314 auto descriptor_subtype = block[2];
319 switch (descriptor_subtype) {
347 for (
int i = 0;
i < descs.size();
i++)
371 for(
int i = begin;
i <
end;
i++)
uint8_t guidExtensionCode[16]
librealsense::small_heap< frame, 10 > frames_archive
def info(name, value, persistent=False)
GLint GLint GLsizei GLint GLenum format