diff --git a/internal/__snapshots__/exportTypeScriptSchemas.test.ts.snap b/internal/__snapshots__/exportTypeScriptSchemas.test.ts.snap index 7c49d57..7ee534d 100644 --- a/internal/__snapshots__/exportTypeScriptSchemas.test.ts.snap +++ b/internal/__snapshots__/exportTypeScriptSchemas.test.ts.snap @@ -217,6 +217,9 @@ export type CompressedVideo = { * - Each CompressedVideo message should contain enough NAL units to decode exactly one video frame * - Each message containing a key frame (IRAP) must also include relevant VPS/SPS/PPS NAL units * + * - \`vp9\` + * - Each CompressedVideo message should contain exactly one video frame + * * - \`av1\` * - Use the "Low overhead bitstream format" (section 5.2) * - Each CompressedVideo message should contain enough OBUs to decode exactly one video frame @@ -227,9 +230,9 @@ export type CompressedVideo = { /** * Video format. * - * Supported values: \`h264\`, \`h265\`, \`av1\`. + * Supported values: \`h264\`, \`h265\`, \`vp9\`, \`av1\`. * - * Note: compressed video support is subject to hardware limitations and patent licensing, so not all encodings may be supported on all platforms. See more about [H.265 support](https://caniuse.com/hevc) and [AV1 support](https://caniuse.com/av1). + * Note: compressed video support is subject to hardware limitations and patent licensing, so not all encodings may be supported on all platforms. See more about [H.265 support](https://caniuse.com/hevc), [VP9 support](https://caniuse.com/webm), and [AV1 support](https://caniuse.com/av1). */ format: string; }; diff --git a/internal/schemas.ts b/internal/schemas.ts index 88fb2d2..1bf5e5c 100644 --- a/internal/schemas.ts +++ b/internal/schemas.ts @@ -826,6 +826,9 @@ Specifically, the requirements for different \`format\` values are: - Each CompressedVideo message should contain enough NAL units to decode exactly one video frame - Each message containing a key frame (IRAP) must also include relevant VPS/SPS/PPS NAL units +- \`vp9\` + - Each CompressedVideo message should contain exactly one video frame + - \`av1\` - Use the "Low overhead bitstream format" (section 5.2) - Each CompressedVideo message should contain enough OBUs to decode exactly one video frame @@ -835,7 +838,7 @@ Specifically, the requirements for different \`format\` values are: name: "format", type: { type: "primitive", name: "string" }, description: - "Video format.\n\nSupported values: `h264`, `h265`, `av1`.\n\nNote: compressed video support is subject to hardware limitations and patent licensing, so not all encodings may be supported on all platforms. See more about [H.265 support](https://caniuse.com/hevc) and [AV1 support](https://caniuse.com/av1).", + "Video format.\n\nSupported values: `h264`, `h265`, `vp9`, `av1`.\n\nNote: compressed video support is subject to hardware limitations and patent licensing, so not all encodings may be supported on all platforms. See more about [H.265 support](https://caniuse.com/hevc), [VP9 support](https://caniuse.com/webm), and [AV1 support](https://caniuse.com/av1).", }, ], }; diff --git a/package.json b/package.json index 3139dfd..0ef6065 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@foxglove/schemas", - "version": "1.6.5", + "version": "1.6.6", "description": "Foxglove-defined message schemas for ROS, Protobuf, FlatBuffers, OMG IDL, and JSON", "license": "MIT", "repository": { diff --git a/python/foxglove-schemas-flatbuffer/setup.cfg b/python/foxglove-schemas-flatbuffer/setup.cfg index 5630e27..5f325e4 100644 --- a/python/foxglove-schemas-flatbuffer/setup.cfg +++ b/python/foxglove-schemas-flatbuffer/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = foxglove-schemas-flatbuffer -version = 0.2.0 +version = 0.2.1 description = Flatbuffer classes for Foxglove Schemas long_description = file: README.md long_description_content_type = text/markdown diff --git a/python/foxglove-schemas-protobuf/setup.cfg b/python/foxglove-schemas-protobuf/setup.cfg index 59595da..075ee5b 100644 --- a/python/foxglove-schemas-protobuf/setup.cfg +++ b/python/foxglove-schemas-protobuf/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = foxglove-schemas-protobuf -version = 0.2.1 +version = 0.2.2 description = Protobuf classes for Foxglove Schemas long_description = file: README.md long_description_content_type = text/markdown diff --git a/ros_foxglove_msgs/CHANGELOG.rst b/ros_foxglove_msgs/CHANGELOG.rst index 4728778..0f43b28 100644 --- a/ros_foxglove_msgs/CHANGELOG.rst +++ b/ros_foxglove_msgs/CHANGELOG.rst @@ -2,6 +2,13 @@ Changelog for package foxglove_msgs ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +3.0.1 (2024-12-10) +------------------ +* Updating distortion model description +* Update ImageAnnotation schemas' coordinate fields with comment specifying the coordinate space +* Update RawImage schema with endianness +* Update CompressedVideo format strings + 3.0.0 (2023-10-31) ------------------ * Add a frame_id field to LocationFix diff --git a/ros_foxglove_msgs/package.xml b/ros_foxglove_msgs/package.xml index 3657435..68ff371 100644 --- a/ros_foxglove_msgs/package.xml +++ b/ros_foxglove_msgs/package.xml @@ -2,7 +2,7 @@ foxglove_msgs - 3.0.0 + 3.0.1 foxglove_msgs provides visualization messages that are supported by Foxglove. diff --git a/ros_foxglove_msgs/ros1/CompressedVideo.msg b/ros_foxglove_msgs/ros1/CompressedVideo.msg index 1534dea..be579e2 100644 --- a/ros_foxglove_msgs/ros1/CompressedVideo.msg +++ b/ros_foxglove_msgs/ros1/CompressedVideo.msg @@ -27,6 +27,9 @@ string frame_id # - Each CompressedVideo message should contain enough NAL units to decode exactly one video frame # - Each message containing a key frame (IRAP) must also include relevant VPS/SPS/PPS NAL units # +# - `vp9` +# - Each CompressedVideo message should contain exactly one video frame +# # - `av1` # - Use the "Low overhead bitstream format" (section 5.2) # - Each CompressedVideo message should contain enough OBUs to decode exactly one video frame @@ -35,7 +38,7 @@ uint8[] data # Video format. # -# Supported values: `h264`, `h265`, `av1`. +# Supported values: `h264`, `h265`, `vp9`, `av1`. # -# Note: compressed video support is subject to hardware limitations and patent licensing, so not all encodings may be supported on all platforms. See more about [H.265 support](https://caniuse.com/hevc) and [AV1 support](https://caniuse.com/av1). +# Note: compressed video support is subject to hardware limitations and patent licensing, so not all encodings may be supported on all platforms. See more about [H.265 support](https://caniuse.com/hevc), [VP9 support](https://caniuse.com/webm), and [AV1 support](https://caniuse.com/av1). string format diff --git a/ros_foxglove_msgs/ros2/CompressedVideo.msg b/ros_foxglove_msgs/ros2/CompressedVideo.msg index ad42f00..f860dc4 100644 --- a/ros_foxglove_msgs/ros2/CompressedVideo.msg +++ b/ros_foxglove_msgs/ros2/CompressedVideo.msg @@ -27,6 +27,9 @@ string frame_id # - Each CompressedVideo message should contain enough NAL units to decode exactly one video frame # - Each message containing a key frame (IRAP) must also include relevant VPS/SPS/PPS NAL units # +# - `vp9` +# - Each CompressedVideo message should contain exactly one video frame +# # - `av1` # - Use the "Low overhead bitstream format" (section 5.2) # - Each CompressedVideo message should contain enough OBUs to decode exactly one video frame @@ -35,7 +38,7 @@ uint8[] data # Video format. # -# Supported values: `h264`, `h265`, `av1`. +# Supported values: `h264`, `h265`, `vp9`, `av1`. # -# Note: compressed video support is subject to hardware limitations and patent licensing, so not all encodings may be supported on all platforms. See more about [H.265 support](https://caniuse.com/hevc) and [AV1 support](https://caniuse.com/av1). +# Note: compressed video support is subject to hardware limitations and patent licensing, so not all encodings may be supported on all platforms. See more about [H.265 support](https://caniuse.com/hevc), [VP9 support](https://caniuse.com/webm), and [AV1 support](https://caniuse.com/av1). string format diff --git a/schemas/README.md b/schemas/README.md index 72e3de2..3dfd5a6 100644 --- a/schemas/README.md +++ b/schemas/README.md @@ -679,6 +679,9 @@ Specifically, the requirements for different `format` values are: - Each CompressedVideo message should contain enough NAL units to decode exactly one video frame - Each message containing a key frame (IRAP) must also include relevant VPS/SPS/PPS NAL units +- `vp9` + - Each CompressedVideo message should contain exactly one video frame + - `av1` - Use the "Low overhead bitstream format" (section 5.2) - Each CompressedVideo message should contain enough OBUs to decode exactly one video frame @@ -697,9 +700,9 @@ string Video format. -Supported values: `h264`, `h265`, `av1`. +Supported values: `h264`, `h265`, `vp9`, `av1`. -Note: compressed video support is subject to hardware limitations and patent licensing, so not all encodings may be supported on all platforms. See more about [H.265 support](https://caniuse.com/hevc) and [AV1 support](https://caniuse.com/av1). +Note: compressed video support is subject to hardware limitations and patent licensing, so not all encodings may be supported on all platforms. See more about [H.265 support](https://caniuse.com/hevc), [VP9 support](https://caniuse.com/webm), and [AV1 support](https://caniuse.com/av1). diff --git a/schemas/flatbuffer/CompressedVideo.fbs b/schemas/flatbuffer/CompressedVideo.fbs index 6ffebc5..c89a3d5 100644 --- a/schemas/flatbuffer/CompressedVideo.fbs +++ b/schemas/flatbuffer/CompressedVideo.fbs @@ -30,6 +30,9 @@ table CompressedVideo { /// - Each CompressedVideo message should contain enough NAL units to decode exactly one video frame /// - Each message containing a key frame (IRAP) must also include relevant VPS/SPS/PPS NAL units /// + /// - `vp9` + /// - Each CompressedVideo message should contain exactly one video frame + /// /// - `av1` /// - Use the "Low overhead bitstream format" (section 5.2) /// - Each CompressedVideo message should contain enough OBUs to decode exactly one video frame @@ -38,9 +41,9 @@ table CompressedVideo { /// Video format. /// - /// Supported values: `h264`, `h265`, `av1`. + /// Supported values: `h264`, `h265`, `vp9`, `av1`. /// - /// Note: compressed video support is subject to hardware limitations and patent licensing, so not all encodings may be supported on all platforms. See more about [H.265 support](https://caniuse.com/hevc) and [AV1 support](https://caniuse.com/av1). + /// Note: compressed video support is subject to hardware limitations and patent licensing, so not all encodings may be supported on all platforms. See more about [H.265 support](https://caniuse.com/hevc), [VP9 support](https://caniuse.com/webm), and [AV1 support](https://caniuse.com/av1). format:string (id: 3); } diff --git a/schemas/jsonschema/CompressedVideo.json b/schemas/jsonschema/CompressedVideo.json index 88f5d1c..c9a43bf 100644 --- a/schemas/jsonschema/CompressedVideo.json +++ b/schemas/jsonschema/CompressedVideo.json @@ -27,11 +27,11 @@ "data": { "type": "string", "contentEncoding": "base64", - "description": "Compressed video frame data.\n\nFor packet-based video codecs this data must begin and end on packet boundaries (no partial packets), and must contain enough video packets to decode exactly one image (either a keyframe or delta frame). Note: Foxglove does not support video streams that include B frames because they require lookahead.\n\nSpecifically, the requirements for different `format` values are:\n\n- `h264`\n - Use Annex B formatted data\n - Each CompressedVideo message should contain enough NAL units to decode exactly one video frame\n - Each message containing a key frame (IDR) must also include a SPS NAL unit\n\n- `h265` (HEVC)\n - Use Annex B formatted data\n - Each CompressedVideo message should contain enough NAL units to decode exactly one video frame\n - Each message containing a key frame (IRAP) must also include relevant VPS/SPS/PPS NAL units\n\n- `av1`\n - Use the \"Low overhead bitstream format\" (section 5.2)\n - Each CompressedVideo message should contain enough OBUs to decode exactly one video frame\n - Each message containing a key frame must also include a Sequence Header OBU" + "description": "Compressed video frame data.\n\nFor packet-based video codecs this data must begin and end on packet boundaries (no partial packets), and must contain enough video packets to decode exactly one image (either a keyframe or delta frame). Note: Foxglove does not support video streams that include B frames because they require lookahead.\n\nSpecifically, the requirements for different `format` values are:\n\n- `h264`\n - Use Annex B formatted data\n - Each CompressedVideo message should contain enough NAL units to decode exactly one video frame\n - Each message containing a key frame (IDR) must also include a SPS NAL unit\n\n- `h265` (HEVC)\n - Use Annex B formatted data\n - Each CompressedVideo message should contain enough NAL units to decode exactly one video frame\n - Each message containing a key frame (IRAP) must also include relevant VPS/SPS/PPS NAL units\n\n- `vp9`\n - Each CompressedVideo message should contain exactly one video frame\n\n- `av1`\n - Use the \"Low overhead bitstream format\" (section 5.2)\n - Each CompressedVideo message should contain enough OBUs to decode exactly one video frame\n - Each message containing a key frame must also include a Sequence Header OBU" }, "format": { "type": "string", - "description": "Video format.\n\nSupported values: `h264`, `h265`, `av1`.\n\nNote: compressed video support is subject to hardware limitations and patent licensing, so not all encodings may be supported on all platforms. See more about [H.265 support](https://caniuse.com/hevc) and [AV1 support](https://caniuse.com/av1)." + "description": "Video format.\n\nSupported values: `h264`, `h265`, `vp9`, `av1`.\n\nNote: compressed video support is subject to hardware limitations and patent licensing, so not all encodings may be supported on all platforms. See more about [H.265 support](https://caniuse.com/hevc), [VP9 support](https://caniuse.com/webm), and [AV1 support](https://caniuse.com/av1)." } } } diff --git a/schemas/jsonschema/index.ts b/schemas/jsonschema/index.ts index 99d0db7..22da45f 100644 --- a/schemas/jsonschema/index.ts +++ b/schemas/jsonschema/index.ts @@ -360,11 +360,11 @@ export const CompressedVideo = { "data": { "type": "string", "contentEncoding": "base64", - "description": "Compressed video frame data.\n\nFor packet-based video codecs this data must begin and end on packet boundaries (no partial packets), and must contain enough video packets to decode exactly one image (either a keyframe or delta frame). Note: Foxglove does not support video streams that include B frames because they require lookahead.\n\nSpecifically, the requirements for different `format` values are:\n\n- `h264`\n - Use Annex B formatted data\n - Each CompressedVideo message should contain enough NAL units to decode exactly one video frame\n - Each message containing a key frame (IDR) must also include a SPS NAL unit\n\n- `h265` (HEVC)\n - Use Annex B formatted data\n - Each CompressedVideo message should contain enough NAL units to decode exactly one video frame\n - Each message containing a key frame (IRAP) must also include relevant VPS/SPS/PPS NAL units\n\n- `av1`\n - Use the \"Low overhead bitstream format\" (section 5.2)\n - Each CompressedVideo message should contain enough OBUs to decode exactly one video frame\n - Each message containing a key frame must also include a Sequence Header OBU" + "description": "Compressed video frame data.\n\nFor packet-based video codecs this data must begin and end on packet boundaries (no partial packets), and must contain enough video packets to decode exactly one image (either a keyframe or delta frame). Note: Foxglove does not support video streams that include B frames because they require lookahead.\n\nSpecifically, the requirements for different `format` values are:\n\n- `h264`\n - Use Annex B formatted data\n - Each CompressedVideo message should contain enough NAL units to decode exactly one video frame\n - Each message containing a key frame (IDR) must also include a SPS NAL unit\n\n- `h265` (HEVC)\n - Use Annex B formatted data\n - Each CompressedVideo message should contain enough NAL units to decode exactly one video frame\n - Each message containing a key frame (IRAP) must also include relevant VPS/SPS/PPS NAL units\n\n- `vp9`\n - Each CompressedVideo message should contain exactly one video frame\n\n- `av1`\n - Use the \"Low overhead bitstream format\" (section 5.2)\n - Each CompressedVideo message should contain enough OBUs to decode exactly one video frame\n - Each message containing a key frame must also include a Sequence Header OBU" }, "format": { "type": "string", - "description": "Video format.\n\nSupported values: `h264`, `h265`, `av1`.\n\nNote: compressed video support is subject to hardware limitations and patent licensing, so not all encodings may be supported on all platforms. See more about [H.265 support](https://caniuse.com/hevc) and [AV1 support](https://caniuse.com/av1)." + "description": "Video format.\n\nSupported values: `h264`, `h265`, `vp9`, `av1`.\n\nNote: compressed video support is subject to hardware limitations and patent licensing, so not all encodings may be supported on all platforms. See more about [H.265 support](https://caniuse.com/hevc), [VP9 support](https://caniuse.com/webm), and [AV1 support](https://caniuse.com/av1)." } } }; diff --git a/schemas/omgidl/foxglove/CompressedVideo.idl b/schemas/omgidl/foxglove/CompressedVideo.idl index a2e664b..53f4f58 100644 --- a/schemas/omgidl/foxglove/CompressedVideo.idl +++ b/schemas/omgidl/foxglove/CompressedVideo.idl @@ -30,6 +30,9 @@ struct CompressedVideo { // - Each CompressedVideo message should contain enough NAL units to decode exactly one video frame // - Each message containing a key frame (IRAP) must also include relevant VPS/SPS/PPS NAL units // + // - `vp9` + // - Each CompressedVideo message should contain exactly one video frame + // // - `av1` // - Use the "Low overhead bitstream format" (section 5.2) // - Each CompressedVideo message should contain enough OBUs to decode exactly one video frame @@ -38,9 +41,9 @@ struct CompressedVideo { // Video format. // - // Supported values: `h264`, `h265`, `av1`. + // Supported values: `h264`, `h265`, `vp9`, `av1`. // - // Note: compressed video support is subject to hardware limitations and patent licensing, so not all encodings may be supported on all platforms. See more about [H.265 support](https://caniuse.com/hevc) and [AV1 support](https://caniuse.com/av1). + // Note: compressed video support is subject to hardware limitations and patent licensing, so not all encodings may be supported on all platforms. See more about [H.265 support](https://caniuse.com/hevc), [VP9 support](https://caniuse.com/webm), and [AV1 support](https://caniuse.com/av1). string format; }; diff --git a/schemas/proto/foxglove/CompressedVideo.proto b/schemas/proto/foxglove/CompressedVideo.proto index 74e79e0..c4e6904 100644 --- a/schemas/proto/foxglove/CompressedVideo.proto +++ b/schemas/proto/foxglove/CompressedVideo.proto @@ -32,6 +32,9 @@ message CompressedVideo { // - Each CompressedVideo message should contain enough NAL units to decode exactly one video frame // - Each message containing a key frame (IRAP) must also include relevant VPS/SPS/PPS NAL units // + // - `vp9` + // - Each CompressedVideo message should contain exactly one video frame + // // - `av1` // - Use the "Low overhead bitstream format" (section 5.2) // - Each CompressedVideo message should contain enough OBUs to decode exactly one video frame @@ -40,8 +43,8 @@ message CompressedVideo { // Video format. // - // Supported values: `h264`, `h265`, `av1`. + // Supported values: `h264`, `h265`, `vp9`, `av1`. // - // Note: compressed video support is subject to hardware limitations and patent licensing, so not all encodings may be supported on all platforms. See more about [H.265 support](https://caniuse.com/hevc) and [AV1 support](https://caniuse.com/av1). + // Note: compressed video support is subject to hardware limitations and patent licensing, so not all encodings may be supported on all platforms. See more about [H.265 support](https://caniuse.com/hevc), [VP9 support](https://caniuse.com/webm), and [AV1 support](https://caniuse.com/av1). string format = 4; } diff --git a/schemas/ros1/CompressedVideo.msg b/schemas/ros1/CompressedVideo.msg index 1534dea..be579e2 100644 --- a/schemas/ros1/CompressedVideo.msg +++ b/schemas/ros1/CompressedVideo.msg @@ -27,6 +27,9 @@ string frame_id # - Each CompressedVideo message should contain enough NAL units to decode exactly one video frame # - Each message containing a key frame (IRAP) must also include relevant VPS/SPS/PPS NAL units # +# - `vp9` +# - Each CompressedVideo message should contain exactly one video frame +# # - `av1` # - Use the "Low overhead bitstream format" (section 5.2) # - Each CompressedVideo message should contain enough OBUs to decode exactly one video frame @@ -35,7 +38,7 @@ uint8[] data # Video format. # -# Supported values: `h264`, `h265`, `av1`. +# Supported values: `h264`, `h265`, `vp9`, `av1`. # -# Note: compressed video support is subject to hardware limitations and patent licensing, so not all encodings may be supported on all platforms. See more about [H.265 support](https://caniuse.com/hevc) and [AV1 support](https://caniuse.com/av1). +# Note: compressed video support is subject to hardware limitations and patent licensing, so not all encodings may be supported on all platforms. See more about [H.265 support](https://caniuse.com/hevc), [VP9 support](https://caniuse.com/webm), and [AV1 support](https://caniuse.com/av1). string format diff --git a/schemas/ros2/CompressedVideo.msg b/schemas/ros2/CompressedVideo.msg index ad42f00..f860dc4 100644 --- a/schemas/ros2/CompressedVideo.msg +++ b/schemas/ros2/CompressedVideo.msg @@ -27,6 +27,9 @@ string frame_id # - Each CompressedVideo message should contain enough NAL units to decode exactly one video frame # - Each message containing a key frame (IRAP) must also include relevant VPS/SPS/PPS NAL units # +# - `vp9` +# - Each CompressedVideo message should contain exactly one video frame +# # - `av1` # - Use the "Low overhead bitstream format" (section 5.2) # - Each CompressedVideo message should contain enough OBUs to decode exactly one video frame @@ -35,7 +38,7 @@ uint8[] data # Video format. # -# Supported values: `h264`, `h265`, `av1`. +# Supported values: `h264`, `h265`, `vp9`, `av1`. # -# Note: compressed video support is subject to hardware limitations and patent licensing, so not all encodings may be supported on all platforms. See more about [H.265 support](https://caniuse.com/hevc) and [AV1 support](https://caniuse.com/av1). +# Note: compressed video support is subject to hardware limitations and patent licensing, so not all encodings may be supported on all platforms. See more about [H.265 support](https://caniuse.com/hevc), [VP9 support](https://caniuse.com/webm), and [AV1 support](https://caniuse.com/av1). string format diff --git a/schemas/typescript/CompressedVideo.ts b/schemas/typescript/CompressedVideo.ts index 9be37fb..97498dd 100644 --- a/schemas/typescript/CompressedVideo.ts +++ b/schemas/typescript/CompressedVideo.ts @@ -32,6 +32,9 @@ export type CompressedVideo = { * - Each CompressedVideo message should contain enough NAL units to decode exactly one video frame * - Each message containing a key frame (IRAP) must also include relevant VPS/SPS/PPS NAL units * + * - `vp9` + * - Each CompressedVideo message should contain exactly one video frame + * * - `av1` * - Use the "Low overhead bitstream format" (section 5.2) * - Each CompressedVideo message should contain enough OBUs to decode exactly one video frame @@ -42,9 +45,9 @@ export type CompressedVideo = { /** * Video format. * - * Supported values: `h264`, `h265`, `av1`. + * Supported values: `h264`, `h265`, `vp9`, `av1`. * - * Note: compressed video support is subject to hardware limitations and patent licensing, so not all encodings may be supported on all platforms. See more about [H.265 support](https://caniuse.com/hevc) and [AV1 support](https://caniuse.com/av1). + * Note: compressed video support is subject to hardware limitations and patent licensing, so not all encodings may be supported on all platforms. See more about [H.265 support](https://caniuse.com/hevc), [VP9 support](https://caniuse.com/webm), and [AV1 support](https://caniuse.com/av1). */ format: string; };