1 .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
3 .. _v4l2-meta-fmt-d4xx:
5 *******************************
6 V4L2_META_FMT_D4XX ('D4XX')
7 *******************************
9 Intel D4xx UVC Cameras Metadata
15 Intel D4xx (D435 and other) cameras include per-frame metadata in their UVC
16 payload headers, following the Microsoft(R) UVC extension proposal [1_]. That
17 means, that the private D4XX metadata, following the standard UVC header, is
18 organised in blocks. D4XX cameras implement several standard block types,
19 proposed by Microsoft, and several proprietary ones. Supported standard metadata
20 types are MetadataId_CaptureStats (ID 3), MetadataId_CameraExtrinsics (ID 4),
21 and MetadataId_CameraIntrinsics (ID 5). For their description see [1_]. This
22 document describes proprietary metadata types, used by D4xx cameras.
24 V4L2_META_FMT_D4XX buffers follow the metadata buffer layout of
25 V4L2_META_FMT_UVC with the only difference, that it also includes proprietary
26 payload header data. D4xx cameras use bulk transfers and only send one payload
27 per frame, therefore their headers cannot be larger than 255 bytes.
29 Below are proprietary Microsoft style metadata types, used by D4xx cameras,
30 where all fields are in little endian order:
32 .. tabularcolumns:: |p{5.0cm}|p{12.5cm}|
35 .. flat-table:: D4xx metadata
42 * - :cspan:`1` *Depth Control*
46 - Size in bytes (currently 56)
48 - Version of this structure. The documentation herein corresponds to
49 version xxx. The version number will be incremented when new fields are
52 - A bitmask of flags: see [2_] below
54 - Gain value in internal units, same as the V4L2_CID_GAIN control, used to
57 - Exposure time (in microseconds) used to capture the frame
59 - Power of the laser LED 0-360, used for depth measurement
61 - 0: manual; 1: automatic exposure
62 * - __u32 Exposure priority
63 - Exposure priority value: 0 - constant frame rate
65 - Left border of the AE Region of Interest (all ROI values are in pixels
66 and lie between 0 and maximum width or height respectively)
67 * - __u32 AE ROI right
68 - Right border of the AE Region of Interest
70 - Top border of the AE Region of Interest
71 * - __u32 AE ROI bottom
72 - Bottom border of the AE Region of Interest
74 - Preset selector value, default: 0, unless changed by the user
77 * - :cspan:`1` *Capture Timing*
81 - Size in bytes (currently 40)
83 - Version of this structure. The documentation herein corresponds to
84 version xxx. The version number will be incremented when new fields are
87 - A bitmask of flags: see [3_] below
88 * - __u32 Frame counter
89 - Monotonically increasing counter
90 * - __u32 Optical time
91 - Time in microseconds from the beginning of a frame till its middle
92 * - __u32 Readout time
93 - Time, used to read out a frame in microseconds
94 * - __u32 Exposure time
95 - Frame exposure time in microseconds
96 * - __u32 Frame interval
97 - In microseconds = 1000000 / framerate
98 * - __u32 Pipe latency
99 - Time in microseconds from start of frame to data in USB buffer
100 * - :cspan:`1` *Configuration*
104 - Size in bytes (currently 40)
106 - Version of this structure. The documentation herein corresponds to
107 version xxx. The version number will be incremented when new fields are
110 - A bitmask of flags: see [4_] below
111 * - __u8 Hardware type
112 - Camera hardware version [5_]
114 - Camera hardware configuration [6_]
116 - Internal synchronisation
118 - Image format code [7_]
124 - Requested frame rate per second
126 - Byte 0: bit 0: depth and RGB are synchronised, bit 1: external trigger
130 [1] https://docs.microsoft.com/en-us/windows-hardware/drivers/stream/uvc-extensions-1-5
134 [2] Depth Control flags specify which fields are valid: ::
138 0x00000004 Laser power
140 0x00000010 Exposure priority
146 [3] Capture Timing flags specify which fields are valid: ::
148 0x00000001 Frame counter
149 0x00000002 Optical time
150 0x00000004 Readout time
151 0x00000008 Exposure time
152 0x00000010 Frame interval
153 0x00000020 Pipe latency
157 [4] Configuration flags specify which fields are valid: ::
159 0x00000001 Hardware type
178 [6] 8-bit camera hardware configuration bitfield: ::
185 [2] depthIsActive - has a laser projector
187 [4] Inertial Measurement Unit (IMU) presence
191 [6] 0: a projector, 1: an LED
196 [7] Image format codes per video streaming interface: