|
4 | 4 | - Must comply with the https://mcap.dev/spec[MCAP format specification] version `0x30` |
5 | 5 | - Must allow other non-OSI data to be present in the MCAP file |
6 | 6 | - Message records must be written into `chunk records` for indexed files |
| 7 | +- Only OSI top-level messages containing a timestamp field are permitted to be directly stored in MCAP channels |
7 | 8 |
|
8 | 9 | == Schema |
9 | 10 | - `name` field: Full message type name, including package (e.g., `osi3.SensorData`) |
|
12 | 13 |
|
13 | 14 | == Channel |
14 | 15 | - `message_encoding` field: Must be "protobuf" |
15 | | -- `metadata` field: Should include a brief description of data origin and purpose |
| 16 | +- `metadata` field: |
| 17 | + - Must include an `osi_version` key, specifying the OSI SemVer version of the message contained within the channel |
| 18 | + - Should include a `description` key explaining the data's origin and purpose |
16 | 19 |
|
17 | 20 | == Message |
18 | 21 | - `publish_time` field: |
19 | 22 | - Must reflect the timestamp of the stored OSI top-level message if it contains a timestamp field |
20 | | - - Should represent a plausible value to express message order in relation to timestamps of other top-level messages if the message doesn't contain a timestamp (e.g. SensorViewConfiguration) |
21 | 23 | - Must be in nanoseconds |
22 | 24 | - `log_time` field: Must reflect the time when the message was enqueued for MCAP file addition |
23 | 25 | - Must reflect the time when the top-level OSI message was enqueued for addition to the MCAP file |
|
26 | 28 |
|
27 | 29 | == Metadata |
28 | 30 | - Must include metadata with the name `versions` containing at least the following key-value pairs: |
29 | | - * `osi`: SemVer version of OSI specification |
| 31 | + * `osi`: SemVer version of the minimum required OSI version |
30 | 32 | * `protobuf`: SemVer version of protobuf library |
31 | 33 | - Must include metadata with the name `creation_date` containing at least the following key-value pairs: |
32 | 34 | * `timestamp`: ISO 8601 formatted creation time |
|
35 | 37 | - Additional custom metadata may be added |
36 | 38 |
|
37 | 39 | == Compression |
38 | | -- OSI-compliant tooling must support compression types: `none`, `lz4`, and `zstd` |
39 | | -- Recommended compression in use should be either `lz4` or `zstd` |
| 40 | +- OSI-compliant tooling must support compression types: `none`, `lz4`, and `zstd` |
0 commit comments