← Documents Documentation/userspace-api/media/v4l/metafmt-d4xx.rst GitHub 원문 ↗

Linux 6.18.37 · Userspace API / Media / V4L

Intel D4xx UVC 카메라 메타데이터

D4xx 전용 depth control, capture timing, configuration 블록과 유효성 bitmask를 설명합니다.

Source pathDocumentation/userspace-api/media/v4l/metafmt-d4xx.rst
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.

요약·해설

metafmt-d4xx.rst:1-252

D4xx는 UVC header 뒤에 little-endian 전용 블록을 싣고, 각 블록의 Flags로 어떤 센서·시간·구성 필드가 유효한지 표시합니다.

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
2
3 .. _v4l2-meta-fmt-d4xx:
4
5 *******************************
6 V4L2_META_FMT_D4XX ('D4XX')
7 *******************************
8
9 Intel D4xx UVC Cameras Metadata
10
11
12 Description
13 ===========
14
15 Intel D4xx (D435, D455 and others) 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.
23
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.
28
29 This document implements Intel Configuration version 3 [9_].
30
31 Below are proprietary Microsoft style metadata types, used by D4xx cameras,
32 where all fields are in little endian order:
33
34 .. tabularcolumns:: |p{5.0cm}|p{12.5cm}|
35
36
37 .. flat-table:: D4xx metadata
38 :widths: 1 2
39 :header-rows: 1
40 :stub-columns: 0
41
42 * - **Field**
43 - **Description**
44 * - :cspan:`1` *Depth Control*
45 * - __u32 ID
46 - 0x80000000
47 * - __u32 Size
48 - Size in bytes, include ID (all protocol versions: 60)
49 * - __u32 Version
50 - Version of this structure. The documentation herein covers versions 1,
51 2 and 3. The version number will be incremented when new fields are
52 added.
53 * - __u32 Flags
54 - A bitmask of flags: see [2_] below
55 * - __u32 Gain
56 - Gain value in internal units, same as the V4L2_CID_GAIN control, used to
57 capture the frame
58 * - __u32 Exposure
59 - Exposure time (in microseconds) used to capture the frame
60 * - __u32 Laser power
61 - Power of the laser LED 0-360, used for depth measurement
62 * - __u32 AE mode
63 - 0: manual; 1: automatic exposure
64 * - __u32 Exposure priority
65 - Exposure priority value: 0 - constant frame rate
66 * - __u32 AE ROI left
67 - Left border of the AE Region of Interest (all ROI values are in pixels
68 and lie between 0 and maximum width or height respectively)
69 * - __u32 AE ROI right
70 - Right border of the AE Region of Interest
71 * - __u32 AE ROI top
72 - Top border of the AE Region of Interest
73 * - __u32 AE ROI bottom
74 - Bottom border of the AE Region of Interest
75 * - __u32 Preset
76 - Preset selector value, default: 0, unless changed by the user
77 * - __u8 Emitter mode (v3 only) (__u32 Laser mode for v1) [8_]
78 - 0: off, 1: on, same as __u32 Laser mode for v1
79 * - __u8 RFU byte (v3 only)
80 - Spare byte for future use
81 * - __u16 LED Power (v3 only)
82 - Led power value 0-360 (F416 SKU)
83 * - :cspan:`1` *Capture Timing*
84 * - __u32 ID
85 - 0x80000001
86 * - __u32 Size
87 - Size in bytes, include ID (all protocol versions: 40)
88 * - __u32 Version
89 - Version of this structure. The documentation herein corresponds to
90 version xxx. The version number will be incremented when new fields are
91 added.
92 * - __u32 Flags
93 - A bitmask of flags: see [3_] below
94 * - __u32 Frame counter
95 - Monotonically increasing counter
96 * - __u32 Optical time
97 - Time in microseconds from the beginning of a frame till its middle
98 * - __u32 Readout time
99 - Time, used to read out a frame in microseconds
100 * - __u32 Exposure time
101 - Frame exposure time in microseconds
102 * - __u32 Frame interval
103 - In microseconds = 1000000 / framerate
104 * - __u32 Pipe latency
105 - Time in microseconds from start of frame to data in USB buffer
106 * - :cspan:`1` *Configuration*
107 * - __u32 ID
108 - 0x80000002
109 * - __u32 Size
110 - Size in bytes, include ID (v1:36, v3:40)
111 * - __u32 Version
112 - Version of this structure. The documentation herein corresponds to
113 version xxx. The version number will be incremented when new fields are
114 added.
115 * - __u32 Flags
116 - A bitmask of flags: see [4_] below
117 * - __u8 Hardware type
118 - Camera hardware version [5_]
119 * - __u8 SKU ID
120 - Camera hardware configuration [6_]
121 * - __u32 Cookie
122 - Internal synchronisation
123 * - __u16 Format
124 - Image format code [7_]
125 * - __u16 Width
126 - Width in pixels
127 * - __u16 Height
128 - Height in pixels
129 * - __u16 Framerate
130 - Requested frame rate per second
131 * - __u16 Trigger
132 - Byte 0: bit 0: depth and RGB are synchronised, bit 1: external trigger
133 * - __u16 Calibration count (v3 only)
134 - Calibration counter, see [4_] below
135 * - __u8 GPIO input data (v3 only)
136 - GPIO readout, see [4_] below (Supported from FW 5.12.7.0)
137 * - __u32 Sub-preset info (v3 only)
138 - Sub-preset choice information, see [4_] below
139 * - __u8 reserved (v3 only)
140 - RFU byte.
141
142 .. _1:
143
144 [1] https://docs.microsoft.com/en-us/windows-hardware/drivers/stream/uvc-extensions-1-5
145
146 .. _2:
147
148 [2] Depth Control flags specify which fields are valid: ::
149
150 0x00000001 Gain
151 0x00000002 Exposure
152 0x00000004 Laser power
153 0x00000008 AE mode
154 0x00000010 Exposure priority
155 0x00000020 AE ROI
156 0x00000040 Preset
157 0x00000080 Emitter mode
158 0x00000100 LED Power
159
160 .. _3:
161
162 [3] Capture Timing flags specify which fields are valid: ::
163
164 0x00000001 Frame counter
165 0x00000002 Optical time
166 0x00000004 Readout time
167 0x00000008 Exposure time
168 0x00000010 Frame interval
169 0x00000020 Pipe latency
170
171 .. _4:
172
173 [4] Configuration flags specify which fields are valid: ::
174
175 0x00000001 Hardware type
176 0x00000002 SKU ID
177 0x00000004 Cookie
178 0x00000008 Format
179 0x00000010 Width
180 0x00000020 Height
181 0x00000040 Framerate
182 0x00000080 Trigger
183 0x00000100 Cal count
184 0x00000200 GPIO Input Data
185 0x00000400 Sub-preset Info
186
187 .. _5:
188
189 [5] Camera model: ::
190
191 0 DS5
192 1 IVCAM2
193
194 .. _6:
195
196 [6] 8-bit camera hardware configuration bitfield: ::
197
198 [1:0] depthCamera
199 00: no depth
200 01: standard depth
201 10: wide depth
202 11: reserved
203 [2] depthIsActive - has a laser projector
204 [3] RGB presence
205 [4] Inertial Measurement Unit (IMU) presence
206 [5] projectorType
207 0: HPTG
208 1: Princeton
209 [6] 0: a projector, 1: an LED
210 [7] reserved
211
212 .. _7:
213
214 [7] Image format codes per video streaming interface:
215
216 Depth: ::
217
218 1 Z16
219 2 Z
220
221 Left sensor: ::
222
223 1 Y8
224 2 UYVY
225 3 R8L8
226 4 Calibration
227 5 W10
228
229 Fish Eye sensor: ::
230
231 1 RAW8
232
233 .. _8:
234
235 [8] The "Laser mode" has been replaced in version 3 by three different fields.
236 "Laser" has been renamed to "Emitter" as there are multiple technologies for
237 camera projectors. As we have another field for "Laser Power" we introduced
238 "LED Power" for extra emitter.
239
240 The "Laser mode" __u32 fields has been split into: ::
241 1 __u8 Emitter mode
242 2 __u8 RFU byte
243 3 __u16 LED Power
244
245 This is a change between versions 1 and 3. All versions 1, 2 and 3 are backward
246 compatible with the same data format and they are supported. See [2_] for which
247 attributes are valid.
248
249 .. _9:
250
251 [9] LibRealSense SDK metadata source:
252 https://github.com/IntelRealSense/librealsense/blob/master/src/metadata.h
253

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

D4xx 메타데이터 배치와 버전

1-31

Intel D4xx 계열(D435, D455 등)은 Microsoft UVC 확장 제안에 따라 프레임별 메타데이터를 UVC payload header에 넣습니다. 표준 UVC header 뒤에 표준 블록과 Intel 전용 블록이 이어집니다.

표준 블록은 `MetadataId_CaptureStats`(ID 3), `MetadataId_CameraExtrinsics`(ID 4), `MetadataId_CameraIntrinsics`(ID 5)이며 Microsoft 문서가 정의합니다. 이 문서는 D4xx 전용 메타데이터를 설명합니다.

`V4L2_META_FMT_D4XX` 버퍼는 `V4L2_META_FMT_UVC` 배치를 따르되 전용 payload header data까지 포함합니다. D4xx는 bulk transfer로 프레임당 payload 하나만 보내므로 header는 255바이트를 넘을 수 없습니다. 모든 필드는 little endian이며 이 문서는 Intel Configuration version 3을 구현합니다.

.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later

.. _v4l2-meta-fmt-d4xx:

*******************************
V4L2_META_FMT_D4XX ('D4XX')
*******************************

Intel D4xx UVC Cameras Metadata


Description
===========

Intel D4xx (D435, D455 and others) cameras include per-frame metadata in their UVC
payload headers, following the Microsoft(R) UVC extension proposal [1_]. That
means, that the private D4XX metadata, following the standard UVC header, is
organised in blocks. D4XX cameras implement several standard block types,
proposed by Microsoft, and several proprietary ones. Supported standard metadata
types are MetadataId_CaptureStats (ID 3), MetadataId_CameraExtrinsics (ID 4),
and MetadataId_CameraIntrinsics (ID 5). For their description see [1_]. This
document describes proprietary metadata types, used by D4xx cameras.

V4L2_META_FMT_D4XX buffers follow the metadata buffer layout of
V4L2_META_FMT_UVC with the only difference, that it also includes proprietary
payload header data. D4xx cameras use bulk transfers and only send one payload
per frame, therefore their headers cannot be larger than 255 bytes.

This document implements Intel Configuration version 3 [9_].

Below are proprietary Microsoft style metadata types, used by D4xx cameras,

Depth Control, Capture Timing, Configuration 블록

32-143
Depth Control 블록
항목설명
`Version`/`Flags`구조 버전 1~3과 유효 필드를 나타내는 bitmask입니다. 새 필드가 생기면 버전이 증가합니다.
`Gain`프레임 캡처에 사용한 내부 단위 gain이며 `V4L2_CID_GAIN`과 같습니다.
`Exposure`프레임 캡처에 사용한 노출 시간, 단위는 마이크로초입니다.
`Laser power`깊이 측정용 laser LED 출력 0~360입니다.
`AE mode`0은 수동, 1은 자동 노출입니다.
`Exposure priority`0은 일정한 프레임률을 뜻합니다.
`AE ROI left/right/top/bottom`자동 노출 관심 영역의 네 경계입니다. 픽셀 단위이며 각 값은 0과 해당 최대 폭 또는 높이 사이입니다.
`Preset`사용자가 바꾸지 않았다면 기본값 0인 preset selector입니다.
v1 `Laser mode` / v3 `Emitter mode`0은 꺼짐, 1은 켜짐입니다. v3에서는 32비트 laser mode가 8비트 emitter mode로 바뀝니다.
v3 `RFU byte`미래 사용을 위해 남긴 8비트 예비 필드입니다.
v3 `LED Power`F416 SKU의 LED 출력 0~360을 담는 16비트 값입니다.

ID `0x80000000`, 모든 프로토콜 버전 크기 60바이트이며 크기에는 ID가 포함됩니다.

Capture Timing 블록
항목설명
`Version`/`Flags`구조 버전과 유효 필드 bitmask입니다. 원문의 version 설명에는 `xxx` 자리표시자가 남아 있습니다.
`Frame counter`단조 증가하는 프레임 카운터입니다.
`Optical time`프레임 시작부터 중간 지점까지의 시간, 마이크로초입니다.
`Readout time`프레임을 읽어내는 데 든 시간, 마이크로초입니다.
`Exposure time`프레임 노출 시간, 마이크로초입니다.
`Frame interval``1000000 / framerate`로 계산한 마이크로초 간격입니다.
`Pipe latency`프레임 시작부터 데이터가 USB 버퍼에 들어갈 때까지의 마이크로초입니다.

ID `0x80000001`, 모든 프로토콜 버전 크기 40바이트입니다.

Configuration 블록
항목설명
`Version`/`Flags`구조 버전과 유효 필드 bitmask입니다. 원문의 version 설명에는 `xxx`가 남아 있습니다.
`Hardware type`카메라 하드웨어 버전입니다.
`SKU ID`8비트 카메라 하드웨어 구성 bitfield입니다.
`Cookie`내부 동기화 값입니다.
`Format`영상 스트리밍 인터페이스별 이미지 형식 코드입니다.
`Width`/`Height`픽셀 단위의 요청 영상 폭과 높이입니다.
`Framerate`초당 요청 프레임 수입니다.
`Trigger`byte 0의 bit 0은 depth/RGB 동기화, bit 1은 외부 trigger입니다.
v3 `Calibration count`구성 flag로 유효성을 표시하는 calibration counter입니다.
v3 `GPIO input data`GPIO readout이며 firmware 5.12.7.0부터 지원합니다.
v3 `Sub-preset info`sub-preset 선택 정보입니다.
v3 `reserved`미래 사용을 위한 RFU byte입니다.

ID `0x80000002`, 크기는 v1에서 36바이트, v3에서 40바이트입니다.

where all fields are in little endian order:

.. tabularcolumns:: |p{5.0cm}|p{12.5cm}|


.. flat-table:: D4xx metadata
    :widths: 1 2
    :header-rows:  1
    :stub-columns: 0

    * - **Field**
      - **Description**
    * - :cspan:`1` *Depth Control*
    * - __u32 ID
      - 0x80000000
    * - __u32 Size
      - Size in bytes, include ID (all protocol versions: 60)
    * - __u32 Version
      - Version of this structure. The documentation herein covers versions 1,
        2 and 3. The version number will be incremented when new fields are
        added.
    * - __u32 Flags
      - A bitmask of flags: see [2_] below
    * - __u32 Gain
      - Gain value in internal units, same as the V4L2_CID_GAIN control, used to
	capture the frame
    * - __u32 Exposure
      - Exposure time (in microseconds) used to capture the frame
    * - __u32 Laser power
      - Power of the laser LED 0-360, used for depth measurement
    * - __u32 AE mode
      - 0: manual; 1: automatic exposure
    * - __u32 Exposure priority
      - Exposure priority value: 0 - constant frame rate
    * - __u32 AE ROI left
      - Left border of the AE Region of Interest (all ROI values are in pixels
	and lie between 0 and maximum width or height respectively)
    * - __u32 AE ROI right
      - Right border of the AE Region of Interest
    * - __u32 AE ROI top
      - Top border of the AE Region of Interest
    * - __u32 AE ROI bottom
      - Bottom border of the AE Region of Interest
    * - __u32 Preset
      - Preset selector value, default: 0, unless changed by the user
    * - __u8 Emitter mode (v3 only) (__u32 Laser mode for v1) [8_]
      - 0: off, 1: on, same as __u32 Laser mode for v1
    * - __u8 RFU byte (v3 only)
      - Spare byte for future use
    * - __u16 LED Power (v3 only)
      - Led power value 0-360 (F416 SKU)
    * - :cspan:`1` *Capture Timing*
    * - __u32 ID
      - 0x80000001
    * - __u32 Size
      - Size in bytes, include ID (all protocol versions: 40)
    * - __u32 Version
      - Version of this structure. The documentation herein corresponds to
        version xxx. The version number will be incremented when new fields are
        added.
    * - __u32 Flags
      - A bitmask of flags: see [3_] below
    * - __u32 Frame counter
      - Monotonically increasing counter
    * - __u32 Optical time
      - Time in microseconds from the beginning of a frame till its middle
    * - __u32 Readout time
      - Time, used to read out a frame in microseconds
    * - __u32 Exposure time
      - Frame exposure time in microseconds
    * - __u32 Frame interval
      - In microseconds = 1000000 / framerate
    * - __u32 Pipe latency
      - Time in microseconds from start of frame to data in USB buffer
    * - :cspan:`1` *Configuration*
    * - __u32 ID
      - 0x80000002
    * - __u32 Size
      - Size in bytes, include ID (v1:36, v3:40)
    * - __u32 Version
      - Version of this structure. The documentation herein corresponds to
        version xxx. The version number will be incremented when new fields are
        added.
    * - __u32 Flags
      - A bitmask of flags: see [4_] below
    * - __u8 Hardware type
      - Camera hardware version [5_]
    * - __u8 SKU ID
      - Camera hardware configuration [6_]
    * - __u32 Cookie
      - Internal synchronisation
    * - __u16 Format
      - Image format code [7_]
    * - __u16 Width
      - Width in pixels
    * - __u16 Height
      - Height in pixels
    * - __u16 Framerate
      - Requested frame rate per second
    * - __u16 Trigger
      - Byte 0: bit 0: depth and RGB are synchronised, bit 1: external trigger
    * - __u16 Calibration count (v3 only)
      - Calibration counter, see [4_] below
    * - __u8 GPIO input data (v3 only)
      - GPIO readout, see [4_] below (Supported from FW 5.12.7.0)
    * - __u32 Sub-preset info (v3 only)
      - Sub-preset choice information, see [4_] below
    * - __u8 reserved (v3 only)
      - RFU byte.

.. _1:

필드 유효성 bitmask

144-188
Depth Control flags
항목설명
`0x00000001`Gain
`0x00000002`Exposure
`0x00000004`Laser power
`0x00000008`AE mode
`0x00000010`Exposure priority
`0x00000020`AE ROI
`0x00000040`Preset
`0x00000080`Emitter mode
`0x00000100`LED Power

설정된 bit가 해당 필드의 값이 유효함을 뜻합니다.

Capture Timing flags
항목설명
`0x00000001`Frame counter
`0x00000002`Optical time
`0x00000004`Readout time
`0x00000008`Exposure time
`0x00000010`Frame interval
`0x00000020`Pipe latency

각 시간 필드의 유효성을 나타냅니다.

Configuration flags
항목설명
`0x00000001`Hardware type
`0x00000002`SKU ID
`0x00000004`Cookie
`0x00000008`Format
`0x00000010`Width
`0x00000020`Height
`0x00000040`Framerate
`0x00000080`Trigger
`0x00000100`Calibration count
`0x00000200`GPIO Input Data
`0x00000400`Sub-preset Info

구성 블록의 선택 필드를 표시합니다.

[1] https://docs.microsoft.com/en-us/windows-hardware/drivers/stream/uvc-extensions-1-5

.. _2:

[2] Depth Control flags specify which fields are valid: ::

  0x00000001 Gain
  0x00000002 Exposure
  0x00000004 Laser power
  0x00000008 AE mode
  0x00000010 Exposure priority
  0x00000020 AE ROI
  0x00000040 Preset
  0x00000080 Emitter mode
  0x00000100 LED Power

.. _3:

[3] Capture Timing flags specify which fields are valid: ::

  0x00000001 Frame counter
  0x00000002 Optical time
  0x00000004 Readout time
  0x00000008 Exposure time
  0x00000010 Frame interval
  0x00000020 Pipe latency

.. _4:

[4] Configuration flags specify which fields are valid: ::

  0x00000001 Hardware type
  0x00000002 SKU ID
  0x00000004 Cookie
  0x00000008 Format
  0x00000010 Width
  0x00000020 Height
  0x00000040 Framerate
  0x00000080 Trigger
  0x00000100 Cal count
  0x00000200 GPIO Input Data
  0x00000400 Sub-preset Info

.. _5:

카메라 구성 bit와 스트림 형식 코드

189-234
카메라 모델
항목설명
0DS5
1IVCAM2

Hardware type 값입니다.

8비트 SKU ID
항목설명
bits [1:0] depthCamera00: depth 없음, 01: standard depth, 10: wide depth, 11: reserved
bit [2] depthIsActivelaser projector가 있음을 나타냅니다.
bit [3]RGB 센서 존재 여부입니다.
bit [4]IMU(Inertial Measurement Unit) 존재 여부입니다.
bit [5] projectorType0: HPTG, 1: Princeton
bit [6]0: projector, 1: LED
bit [7]reserved

카메라 하드웨어 구성을 bit별로 해석합니다.

영상 스트리밍 형식 코드
항목설명
Depth 1Z16
Depth 2Z
Left sensor 1Y8
Left sensor 2UYVY
Left sensor 3R8L8
Left sensor 4Calibration
Left sensor 5W10
Fish Eye sensor 1RAW8

각 센서 인터페이스에서 쓰는 번호입니다.

[5] Camera model: ::

  0 DS5
  1 IVCAM2

.. _6:

[6] 8-bit camera hardware configuration bitfield: ::

  [1:0] depthCamera
	00: no depth
	01: standard depth
	10: wide depth
	11: reserved
  [2]   depthIsActive - has a laser projector
  [3]   RGB presence
  [4]   Inertial Measurement Unit (IMU) presence
  [5]   projectorType
	0: HPTG
	1: Princeton
  [6]   0: a projector, 1: an LED
  [7]   reserved

.. _7:

[7] Image format codes per video streaming interface:

Depth: ::

  1 Z16
  2 Z

Left sensor: ::

  1 Y8
  2 UYVY
  3 R8L8
  4 Calibration
  5 W10

Fish Eye sensor: ::

  1 RAW8

.. _8:

버전 3 emitter 필드와 출처

235-252

버전 3은 카메라 projector 기술이 laser 하나로 한정되지 않으므로 `Laser mode`를 `Emitter mode`로 이름 바꿨습니다. 별도의 `Laser Power` 필드가 이미 있어 추가 emitter의 출력을 `LED Power`로 구분합니다.

v1에서 v3로의 32비트 필드 분할
항목설명
1`__u8 Emitter mode`
2`__u8 RFU byte`
3`__u16 LED Power`

바이트 크기 합은 같아 데이터 배치의 하위 호환성을 유지합니다.

버전 1, 2, 3은 같은 데이터 형식에서 서로 하위 호환되며 모두 지원됩니다. 실제로 어떤 속성이 유효한지는 Depth Control flags를 확인해야 합니다. 메타데이터 정의의 참조 구현 출처는 LibRealSense SDK의 `src/metadata.h`입니다.

[8] The "Laser mode" has been replaced in version 3 by three different fields.
"Laser" has been renamed to "Emitter" as there are multiple technologies for
camera projectors. As we have another field for "Laser Power" we introduced
"LED Power" for extra emitter.

The "Laser mode" __u32 fields has been split into: ::
   1 __u8 Emitter mode
   2 __u8 RFU byte
   3 __u16 LED Power

This is a change between versions 1 and 3. All versions 1, 2 and 3 are backward
compatible with the same data format and they are supported. See [2_] for which
attributes are valid.

.. _9:

[9] LibRealSense SDK metadata source:
https://github.com/IntelRealSense/librealsense/blob/master/src/metadata.h