From 3d83b9da65493e59d944bc139975f0bf0b53d503 Mon Sep 17 00:00:00 2001 From: Jacob Bandes-Storch Date: Tue, 26 Nov 2024 11:59:43 -0800 Subject: [PATCH] updates --- .../exportTypeScriptSchemas.test.ts.snap | 20 +++++++++++++++---- internal/schemas.ts | 20 +++++++++++++++++-- ros_foxglove_msgs/ros1/CompressedVideo.msg | 20 +++++++++++++++---- ros_foxglove_msgs/ros2/CompressedVideo.msg | 20 +++++++++++++++---- schemas/README.md | 20 +++++++++++++++---- schemas/flatbuffer/CompressedVideo.fbs | 20 +++++++++++++++---- schemas/jsonschema/CompressedVideo.json | 2 +- schemas/jsonschema/index.ts | 2 +- schemas/omgidl/foxglove/CompressedVideo.idl | 20 +++++++++++++++---- schemas/proto/foxglove/CompressedVideo.proto | 20 +++++++++++++++---- schemas/ros1/CompressedVideo.msg | 20 +++++++++++++++---- schemas/ros2/CompressedVideo.msg | 20 +++++++++++++++---- schemas/typescript/CompressedVideo.ts | 20 +++++++++++++++---- 13 files changed, 180 insertions(+), 44 deletions(-) diff --git a/internal/__snapshots__/exportTypeScriptSchemas.test.ts.snap b/internal/__snapshots__/exportTypeScriptSchemas.test.ts.snap index 1c58d4e..9bb2887 100644 --- a/internal/__snapshots__/exportTypeScriptSchemas.test.ts.snap +++ b/internal/__snapshots__/exportTypeScriptSchemas.test.ts.snap @@ -210,10 +210,22 @@ export type CompressedVideo = { /** * Video format. * - * Supported values: - * - \`h264\` (Annex B formatted data only) - * - \`h265\` (HEVC; Annex B formatted data only) - * - \`av1\` (Low overhead bitstream format) + * Supported formats: + * + * - \`h264\` + * - Use Annex B formatted data + * - Each CompressedVideo message should contain enough NAL units to decode exactly one video frame + * - Each message containing a key frame (IDR) must also include a SPS NAL unit + * + * - \`h265\` (HEVC) + * - Use Annex B formatted data + * - 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 + * + * - \`av1\` + * - Use the "Low overhead bitstream format" (section 5.2) + * - Each CompressedVideo message should contain enough OBUs to decode exactly one video frame + * - Each message containing a key frame must also include a Sequence Header OBU */ format: string; }; diff --git a/internal/schemas.ts b/internal/schemas.ts index 6c15521..26d4324 100644 --- a/internal/schemas.ts +++ b/internal/schemas.ts @@ -816,8 +816,24 @@ const CompressedVideo: FoxgloveMessageSchema = { { name: "format", type: { type: "primitive", name: "string" }, - description: - "Video format.\n\nSupported values:\n- `h264` (Annex B formatted data only)\n- `h265` (HEVC; Annex B formatted data only)\n- `av1` (Low overhead bitstream format)", + description: `Video format. + +Supported formats: + +- \`h264\` + - Use Annex B formatted data + - Each CompressedVideo message should contain enough NAL units to decode exactly one video frame + - Each message containing a key frame (IDR) must also include a SPS NAL unit + +- \`h265\` (HEVC) + - Use Annex B formatted data + - 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 + +- \`av1\` + - Use the "Low overhead bitstream format" (section 5.2) + - Each CompressedVideo message should contain enough OBUs to decode exactly one video frame + - Each message containing a key frame must also include a Sequence Header OBU`, }, ], }; diff --git a/ros_foxglove_msgs/ros1/CompressedVideo.msg b/ros_foxglove_msgs/ros1/CompressedVideo.msg index 78b9563..b74f9e2 100644 --- a/ros_foxglove_msgs/ros1/CompressedVideo.msg +++ b/ros_foxglove_msgs/ros1/CompressedVideo.msg @@ -18,8 +18,20 @@ uint8[] data # Video format. # -# Supported values: -# - `h264` (Annex B formatted data only) -# - `h265` (HEVC; Annex B formatted data only) -# - `av1` (Low overhead bitstream format) +# Supported formats: +# +# - `h264` +# - Use Annex B formatted data +# - Each CompressedVideo message should contain enough NAL units to decode exactly one video frame +# - Each message containing a key frame (IDR) must also include a SPS NAL unit +# +# - `h265` (HEVC) +# - Use Annex B formatted data +# - 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 +# +# - `av1` +# - Use the "Low overhead bitstream format" (section 5.2) +# - Each CompressedVideo message should contain enough OBUs to decode exactly one video frame +# - Each message containing a key frame must also include a Sequence Header OBU string format diff --git a/ros_foxglove_msgs/ros2/CompressedVideo.msg b/ros_foxglove_msgs/ros2/CompressedVideo.msg index 5d640b6..ead0b27 100644 --- a/ros_foxglove_msgs/ros2/CompressedVideo.msg +++ b/ros_foxglove_msgs/ros2/CompressedVideo.msg @@ -18,8 +18,20 @@ uint8[] data # Video format. # -# Supported values: -# - `h264` (Annex B formatted data only) -# - `h265` (HEVC; Annex B formatted data only) -# - `av1` (Low overhead bitstream format) +# Supported formats: +# +# - `h264` +# - Use Annex B formatted data +# - Each CompressedVideo message should contain enough NAL units to decode exactly one video frame +# - Each message containing a key frame (IDR) must also include a SPS NAL unit +# +# - `h265` (HEVC) +# - Use Annex B formatted data +# - 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 +# +# - `av1` +# - Use the "Low overhead bitstream format" (section 5.2) +# - Each CompressedVideo message should contain enough OBUs to decode exactly one video frame +# - Each message containing a key frame must also include a Sequence Header OBU string format diff --git a/schemas/README.md b/schemas/README.md index 3c9fe1d..896c43e 100644 --- a/schemas/README.md +++ b/schemas/README.md @@ -680,10 +680,22 @@ string Video format. -Supported values: -- `h264` (Annex B formatted data only) -- `h265` (HEVC; Annex B formatted data only) -- `av1` (Low overhead bitstream format) +Supported formats: + +- `h264` + - Use Annex B formatted data + - Each CompressedVideo message should contain enough NAL units to decode exactly one video frame + - Each message containing a key frame (IDR) must also include a SPS NAL unit + +- `h265` (HEVC) + - Use Annex B formatted data + - 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 + +- `av1` + - Use the "Low overhead bitstream format" (section 5.2) + - Each CompressedVideo message should contain enough OBUs to decode exactly one video frame + - Each message containing a key frame must also include a Sequence Header OBU diff --git a/schemas/flatbuffer/CompressedVideo.fbs b/schemas/flatbuffer/CompressedVideo.fbs index 5e1706f..e8159f3 100644 --- a/schemas/flatbuffer/CompressedVideo.fbs +++ b/schemas/flatbuffer/CompressedVideo.fbs @@ -21,10 +21,22 @@ table CompressedVideo { /// Video format. /// - /// Supported values: - /// - `h264` (Annex B formatted data only) - /// - `h265` (HEVC; Annex B formatted data only) - /// - `av1` (Low overhead bitstream format) + /// Supported formats: + /// + /// - `h264` + /// - Use Annex B formatted data + /// - Each CompressedVideo message should contain enough NAL units to decode exactly one video frame + /// - Each message containing a key frame (IDR) must also include a SPS NAL unit + /// + /// - `h265` (HEVC) + /// - Use Annex B formatted data + /// - 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 + /// + /// - `av1` + /// - Use the "Low overhead bitstream format" (section 5.2) + /// - Each CompressedVideo message should contain enough OBUs to decode exactly one video frame + /// - Each message containing a key frame must also include a Sequence Header OBU format:string (id: 3); } diff --git a/schemas/jsonschema/CompressedVideo.json b/schemas/jsonschema/CompressedVideo.json index 2e312c9..19ae78d 100644 --- a/schemas/jsonschema/CompressedVideo.json +++ b/schemas/jsonschema/CompressedVideo.json @@ -31,7 +31,7 @@ }, "format": { "type": "string", - "description": "Video format.\n\nSupported values:\n- `h264` (Annex B formatted data only)\n- `h265` (HEVC; Annex B formatted data only)\n- `av1` (Low overhead bitstream format)" + "description": "Video format.\n\nSupported formats:\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" } } } diff --git a/schemas/jsonschema/index.ts b/schemas/jsonschema/index.ts index 08d6f2f..e7d7b5d 100644 --- a/schemas/jsonschema/index.ts +++ b/schemas/jsonschema/index.ts @@ -364,7 +364,7 @@ export const CompressedVideo = { }, "format": { "type": "string", - "description": "Video format.\n\nSupported values:\n- `h264` (Annex B formatted data only)\n- `h265` (HEVC; Annex B formatted data only)\n- `av1` (Low overhead bitstream format)" + "description": "Video format.\n\nSupported formats:\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" } } }; diff --git a/schemas/omgidl/foxglove/CompressedVideo.idl b/schemas/omgidl/foxglove/CompressedVideo.idl index c2f6529..66e6a9d 100644 --- a/schemas/omgidl/foxglove/CompressedVideo.idl +++ b/schemas/omgidl/foxglove/CompressedVideo.idl @@ -21,10 +21,22 @@ struct CompressedVideo { // Video format. // - // Supported values: - // - `h264` (Annex B formatted data only) - // - `h265` (HEVC; Annex B formatted data only) - // - `av1` (Low overhead bitstream format) + // Supported formats: + // + // - `h264` + // - Use Annex B formatted data + // - Each CompressedVideo message should contain enough NAL units to decode exactly one video frame + // - Each message containing a key frame (IDR) must also include a SPS NAL unit + // + // - `h265` (HEVC) + // - Use Annex B formatted data + // - 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 + // + // - `av1` + // - Use the "Low overhead bitstream format" (section 5.2) + // - Each CompressedVideo message should contain enough OBUs to decode exactly one video frame + // - Each message containing a key frame must also include a Sequence Header OBU string format; }; diff --git a/schemas/proto/foxglove/CompressedVideo.proto b/schemas/proto/foxglove/CompressedVideo.proto index b3e087f..d939329 100644 --- a/schemas/proto/foxglove/CompressedVideo.proto +++ b/schemas/proto/foxglove/CompressedVideo.proto @@ -23,9 +23,21 @@ message CompressedVideo { // Video format. // - // Supported values: - // - `h264` (Annex B formatted data only) - // - `h265` (HEVC; Annex B formatted data only) - // - `av1` (Low overhead bitstream format) + // Supported formats: + // + // - `h264` + // - Use Annex B formatted data + // - Each CompressedVideo message should contain enough NAL units to decode exactly one video frame + // - Each message containing a key frame (IDR) must also include a SPS NAL unit + // + // - `h265` (HEVC) + // - Use Annex B formatted data + // - 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 + // + // - `av1` + // - Use the "Low overhead bitstream format" (section 5.2) + // - Each CompressedVideo message should contain enough OBUs to decode exactly one video frame + // - Each message containing a key frame must also include a Sequence Header OBU string format = 4; } diff --git a/schemas/ros1/CompressedVideo.msg b/schemas/ros1/CompressedVideo.msg index 78b9563..b74f9e2 100644 --- a/schemas/ros1/CompressedVideo.msg +++ b/schemas/ros1/CompressedVideo.msg @@ -18,8 +18,20 @@ uint8[] data # Video format. # -# Supported values: -# - `h264` (Annex B formatted data only) -# - `h265` (HEVC; Annex B formatted data only) -# - `av1` (Low overhead bitstream format) +# Supported formats: +# +# - `h264` +# - Use Annex B formatted data +# - Each CompressedVideo message should contain enough NAL units to decode exactly one video frame +# - Each message containing a key frame (IDR) must also include a SPS NAL unit +# +# - `h265` (HEVC) +# - Use Annex B formatted data +# - 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 +# +# - `av1` +# - Use the "Low overhead bitstream format" (section 5.2) +# - Each CompressedVideo message should contain enough OBUs to decode exactly one video frame +# - Each message containing a key frame must also include a Sequence Header OBU string format diff --git a/schemas/ros2/CompressedVideo.msg b/schemas/ros2/CompressedVideo.msg index 5d640b6..ead0b27 100644 --- a/schemas/ros2/CompressedVideo.msg +++ b/schemas/ros2/CompressedVideo.msg @@ -18,8 +18,20 @@ uint8[] data # Video format. # -# Supported values: -# - `h264` (Annex B formatted data only) -# - `h265` (HEVC; Annex B formatted data only) -# - `av1` (Low overhead bitstream format) +# Supported formats: +# +# - `h264` +# - Use Annex B formatted data +# - Each CompressedVideo message should contain enough NAL units to decode exactly one video frame +# - Each message containing a key frame (IDR) must also include a SPS NAL unit +# +# - `h265` (HEVC) +# - Use Annex B formatted data +# - 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 +# +# - `av1` +# - Use the "Low overhead bitstream format" (section 5.2) +# - Each CompressedVideo message should contain enough OBUs to decode exactly one video frame +# - Each message containing a key frame must also include a Sequence Header OBU string format diff --git a/schemas/typescript/CompressedVideo.ts b/schemas/typescript/CompressedVideo.ts index ec22e90..8296dae 100644 --- a/schemas/typescript/CompressedVideo.ts +++ b/schemas/typescript/CompressedVideo.ts @@ -25,10 +25,22 @@ export type CompressedVideo = { /** * Video format. * - * Supported values: - * - `h264` (Annex B formatted data only) - * - `h265` (HEVC; Annex B formatted data only) - * - `av1` (Low overhead bitstream format) + * Supported formats: + * + * - `h264` + * - Use Annex B formatted data + * - Each CompressedVideo message should contain enough NAL units to decode exactly one video frame + * - Each message containing a key frame (IDR) must also include a SPS NAL unit + * + * - `h265` (HEVC) + * - Use Annex B formatted data + * - 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 + * + * - `av1` + * - Use the "Low overhead bitstream format" (section 5.2) + * - Each CompressedVideo message should contain enough OBUs to decode exactly one video frame + * - Each message containing a key frame must also include a Sequence Header OBU */ format: string; };