From d073552488de81b4549c36a3f1cdf2cd28a049bd Mon Sep 17 00:00:00 2001 From: Jacob Bandes-Storch Date: Fri, 22 Nov 2024 15:56:04 -0800 Subject: [PATCH 1/4] Update video format strings --- internal/__snapshots__/exportTypeScriptSchemas.test.ts.snap | 5 ++++- internal/schemas.ts | 3 ++- ros_foxglove_msgs/ros1/CompressedVideo.msg | 5 ++++- ros_foxglove_msgs/ros2/CompressedVideo.msg | 5 ++++- schemas/README.md | 5 ++++- schemas/flatbuffer/CompressedVideo.fbs | 5 ++++- schemas/jsonschema/CompressedVideo.json | 2 +- schemas/jsonschema/index.ts | 2 +- schemas/omgidl/foxglove/CompressedVideo.idl | 5 ++++- schemas/proto/foxglove/CompressedVideo.proto | 5 ++++- schemas/ros1/CompressedVideo.msg | 5 ++++- schemas/ros2/CompressedVideo.msg | 5 ++++- schemas/typescript/CompressedVideo.ts | 5 ++++- 13 files changed, 44 insertions(+), 13 deletions(-) diff --git a/internal/__snapshots__/exportTypeScriptSchemas.test.ts.snap b/internal/__snapshots__/exportTypeScriptSchemas.test.ts.snap index bba4d9f..1c58d4e 100644 --- a/internal/__snapshots__/exportTypeScriptSchemas.test.ts.snap +++ b/internal/__snapshots__/exportTypeScriptSchemas.test.ts.snap @@ -210,7 +210,10 @@ export type CompressedVideo = { /** * Video format. * - * Supported values: \`h264\` (Annex B formatted data only) + * Supported values: + * - \`h264\` (Annex B formatted data only) + * - \`h265\` (HEVC; Annex B formatted data only) + * - \`av1\` (Low overhead bitstream format) */ format: string; }; diff --git a/internal/schemas.ts b/internal/schemas.ts index 24ba5cf..6c15521 100644 --- a/internal/schemas.ts +++ b/internal/schemas.ts @@ -816,7 +816,8 @@ const CompressedVideo: FoxgloveMessageSchema = { { name: "format", type: { type: "primitive", name: "string" }, - description: "Video format.\n\nSupported values: `h264` (Annex B formatted data only)", + 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)", }, ], }; diff --git a/ros_foxglove_msgs/ros1/CompressedVideo.msg b/ros_foxglove_msgs/ros1/CompressedVideo.msg index e8d8ec4..78b9563 100644 --- a/ros_foxglove_msgs/ros1/CompressedVideo.msg +++ b/ros_foxglove_msgs/ros1/CompressedVideo.msg @@ -18,5 +18,8 @@ uint8[] data # Video format. # -# Supported values: `h264` (Annex B formatted data only) +# Supported values: +# - `h264` (Annex B formatted data only) +# - `h265` (HEVC; Annex B formatted data only) +# - `av1` (Low overhead bitstream format) string format diff --git a/ros_foxglove_msgs/ros2/CompressedVideo.msg b/ros_foxglove_msgs/ros2/CompressedVideo.msg index bbb48e0..5d640b6 100644 --- a/ros_foxglove_msgs/ros2/CompressedVideo.msg +++ b/ros_foxglove_msgs/ros2/CompressedVideo.msg @@ -18,5 +18,8 @@ uint8[] data # Video format. # -# Supported values: `h264` (Annex B formatted data only) +# Supported values: +# - `h264` (Annex B formatted data only) +# - `h265` (HEVC; Annex B formatted data only) +# - `av1` (Low overhead bitstream format) string format diff --git a/schemas/README.md b/schemas/README.md index 1db6add..3c9fe1d 100644 --- a/schemas/README.md +++ b/schemas/README.md @@ -680,7 +680,10 @@ string Video format. -Supported values: `h264` (Annex B formatted data only) +Supported values: +- `h264` (Annex B formatted data only) +- `h265` (HEVC; Annex B formatted data only) +- `av1` (Low overhead bitstream format) diff --git a/schemas/flatbuffer/CompressedVideo.fbs b/schemas/flatbuffer/CompressedVideo.fbs index 0a9a1a6..5e1706f 100644 --- a/schemas/flatbuffer/CompressedVideo.fbs +++ b/schemas/flatbuffer/CompressedVideo.fbs @@ -21,7 +21,10 @@ table CompressedVideo { /// Video format. /// - /// Supported values: `h264` (Annex B formatted data only) + /// Supported values: + /// - `h264` (Annex B formatted data only) + /// - `h265` (HEVC; Annex B formatted data only) + /// - `av1` (Low overhead bitstream format) format:string (id: 3); } diff --git a/schemas/jsonschema/CompressedVideo.json b/schemas/jsonschema/CompressedVideo.json index 5443f9f..2e312c9 100644 --- a/schemas/jsonschema/CompressedVideo.json +++ b/schemas/jsonschema/CompressedVideo.json @@ -31,7 +31,7 @@ }, "format": { "type": "string", - "description": "Video format.\n\nSupported values: `h264` (Annex B formatted data only)" + "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)" } } } diff --git a/schemas/jsonschema/index.ts b/schemas/jsonschema/index.ts index 1e5f733..08d6f2f 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: `h264` (Annex B formatted data only)" + "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)" } } }; diff --git a/schemas/omgidl/foxglove/CompressedVideo.idl b/schemas/omgidl/foxglove/CompressedVideo.idl index 0853692..c2f6529 100644 --- a/schemas/omgidl/foxglove/CompressedVideo.idl +++ b/schemas/omgidl/foxglove/CompressedVideo.idl @@ -21,7 +21,10 @@ struct CompressedVideo { // Video format. // - // Supported values: `h264` (Annex B formatted data only) + // Supported values: + // - `h264` (Annex B formatted data only) + // - `h265` (HEVC; Annex B formatted data only) + // - `av1` (Low overhead bitstream format) string format; }; diff --git a/schemas/proto/foxglove/CompressedVideo.proto b/schemas/proto/foxglove/CompressedVideo.proto index 37e5ca5..b3e087f 100644 --- a/schemas/proto/foxglove/CompressedVideo.proto +++ b/schemas/proto/foxglove/CompressedVideo.proto @@ -23,6 +23,9 @@ message CompressedVideo { // Video format. // - // Supported values: `h264` (Annex B formatted data only) + // Supported values: + // - `h264` (Annex B formatted data only) + // - `h265` (HEVC; Annex B formatted data only) + // - `av1` (Low overhead bitstream format) string format = 4; } diff --git a/schemas/ros1/CompressedVideo.msg b/schemas/ros1/CompressedVideo.msg index e8d8ec4..78b9563 100644 --- a/schemas/ros1/CompressedVideo.msg +++ b/schemas/ros1/CompressedVideo.msg @@ -18,5 +18,8 @@ uint8[] data # Video format. # -# Supported values: `h264` (Annex B formatted data only) +# Supported values: +# - `h264` (Annex B formatted data only) +# - `h265` (HEVC; Annex B formatted data only) +# - `av1` (Low overhead bitstream format) string format diff --git a/schemas/ros2/CompressedVideo.msg b/schemas/ros2/CompressedVideo.msg index bbb48e0..5d640b6 100644 --- a/schemas/ros2/CompressedVideo.msg +++ b/schemas/ros2/CompressedVideo.msg @@ -18,5 +18,8 @@ uint8[] data # Video format. # -# Supported values: `h264` (Annex B formatted data only) +# Supported values: +# - `h264` (Annex B formatted data only) +# - `h265` (HEVC; Annex B formatted data only) +# - `av1` (Low overhead bitstream format) string format diff --git a/schemas/typescript/CompressedVideo.ts b/schemas/typescript/CompressedVideo.ts index 132a45f..ec22e90 100644 --- a/schemas/typescript/CompressedVideo.ts +++ b/schemas/typescript/CompressedVideo.ts @@ -25,7 +25,10 @@ export type CompressedVideo = { /** * Video format. * - * Supported values: `h264` (Annex B formatted data only) + * Supported values: + * - `h264` (Annex B formatted data only) + * - `h265` (HEVC; Annex B formatted data only) + * - `av1` (Low overhead bitstream format) */ format: string; }; From 3d83b9da65493e59d944bc139975f0bf0b53d503 Mon Sep 17 00:00:00 2001 From: Jacob Bandes-Storch Date: Tue, 26 Nov 2024 11:59:43 -0800 Subject: [PATCH 2/4] 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; }; From 10cca4f202dea69d9c5697a3acb3f6374ce1298e Mon Sep 17 00:00:00 2001 From: Jacob Bandes-Storch Date: Tue, 26 Nov 2024 12:09:40 -0800 Subject: [PATCH 3/4] move data details into data field docs --- .../exportTypeScriptSchemas.test.ts.snap | 10 +++---- internal/schemas.ts | 17 +++++------ ros_foxglove_msgs/ros1/CompressedVideo.msg | 8 +++--- ros_foxglove_msgs/ros2/CompressedVideo.msg | 8 +++--- schemas/README.md | 28 +++++++++---------- schemas/flatbuffer/CompressedVideo.fbs | 8 +++--- schemas/jsonschema/CompressedVideo.json | 4 +-- schemas/jsonschema/index.ts | 4 +-- schemas/omgidl/foxglove/CompressedVideo.idl | 8 +++--- schemas/proto/foxglove/CompressedVideo.proto | 8 +++--- schemas/ros1/CompressedVideo.msg | 8 +++--- schemas/ros2/CompressedVideo.msg | 8 +++--- schemas/typescript/CompressedVideo.ts | 10 +++---- 13 files changed, 63 insertions(+), 66 deletions(-) diff --git a/internal/__snapshots__/exportTypeScriptSchemas.test.ts.snap b/internal/__snapshots__/exportTypeScriptSchemas.test.ts.snap index 9bb2887..3c8929c 100644 --- a/internal/__snapshots__/exportTypeScriptSchemas.test.ts.snap +++ b/internal/__snapshots__/exportTypeScriptSchemas.test.ts.snap @@ -204,13 +204,8 @@ export type CompressedVideo = { * Compressed video frame data. * * For 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. - */ - data: Uint8Array; - - /** - * Video format. * - * Supported formats: + * Specifically, the requirements for different \`format\` values are: * * - \`h264\` * - Use Annex B formatted data @@ -227,6 +222,9 @@ export type CompressedVideo = { * - 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 */ + data: Uint8Array; + + /** Video format. Supported values: \`h264\`, \`h265\`, \`av1\` */ format: string; }; ", diff --git a/internal/schemas.ts b/internal/schemas.ts index 26d4324..ab7f41e 100644 --- a/internal/schemas.ts +++ b/internal/schemas.ts @@ -810,15 +810,11 @@ const CompressedVideo: FoxgloveMessageSchema = { { name: "data", type: { type: "primitive", name: "bytes" }, - 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.", - }, - { - name: "format", - type: { type: "primitive", name: "string" }, - description: `Video format. + description: `Compressed video frame data. -Supported formats: +For 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. + +Specifically, the requirements for different \`format\` values are: - \`h264\` - Use Annex B formatted data @@ -835,6 +831,11 @@ Supported formats: - 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`, }, + { + name: "format", + type: { type: "primitive", name: "string" }, + description: "Video format. Supported values: `h264`, `h265`, `av1`", + }, ], }; diff --git a/ros_foxglove_msgs/ros1/CompressedVideo.msg b/ros_foxglove_msgs/ros1/CompressedVideo.msg index b74f9e2..e946f12 100644 --- a/ros_foxglove_msgs/ros1/CompressedVideo.msg +++ b/ros_foxglove_msgs/ros1/CompressedVideo.msg @@ -14,11 +14,8 @@ string frame_id # Compressed video frame data. # # For 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. -uint8[] data - -# Video format. # -# Supported formats: +# Specifically, the requirements for different `format` values are: # # - `h264` # - Use Annex B formatted data @@ -34,4 +31,7 @@ uint8[] data # - 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 +uint8[] data + +# Video format. Supported values: `h264`, `h265`, `av1` string format diff --git a/ros_foxglove_msgs/ros2/CompressedVideo.msg b/ros_foxglove_msgs/ros2/CompressedVideo.msg index ead0b27..5c52303 100644 --- a/ros_foxglove_msgs/ros2/CompressedVideo.msg +++ b/ros_foxglove_msgs/ros2/CompressedVideo.msg @@ -14,11 +14,8 @@ string frame_id # Compressed video frame data. # # For 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. -uint8[] data - -# Video format. # -# Supported formats: +# Specifically, the requirements for different `format` values are: # # - `h264` # - Use Annex B formatted data @@ -34,4 +31,7 @@ uint8[] data # - 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 +uint8[] data + +# Video format. Supported values: `h264`, `h265`, `av1` string format diff --git a/schemas/README.md b/schemas/README.md index 896c43e..f7ad4a9 100644 --- a/schemas/README.md +++ b/schemas/README.md @@ -667,20 +667,7 @@ Compressed video frame data. For 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. - - - -format - - -string - - - - -Video format. - -Supported formats: +Specifically, the requirements for different `format` values are: - `h264` - Use Annex B formatted data @@ -697,6 +684,19 @@ Supported formats: - 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 + + + + +Video format. Supported values: `h264`, `h265`, `av1` + diff --git a/schemas/flatbuffer/CompressedVideo.fbs b/schemas/flatbuffer/CompressedVideo.fbs index e8159f3..9107ad3 100644 --- a/schemas/flatbuffer/CompressedVideo.fbs +++ b/schemas/flatbuffer/CompressedVideo.fbs @@ -17,11 +17,8 @@ table CompressedVideo { /// Compressed video frame data. /// /// For 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. - data:[uint8] (id: 2); - - /// Video format. /// - /// Supported formats: + /// Specifically, the requirements for different `format` values are: /// /// - `h264` /// - Use Annex B formatted data @@ -37,6 +34,9 @@ table CompressedVideo { /// - 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 + data:[uint8] (id: 2); + + /// Video format. Supported values: `h264`, `h265`, `av1` format:string (id: 3); } diff --git a/schemas/jsonschema/CompressedVideo.json b/schemas/jsonschema/CompressedVideo.json index 19ae78d..f359967 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." + "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" }, "format": { "type": "string", - "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" + "description": "Video format. Supported values: `h264`, `h265`, `av1`" } } } diff --git a/schemas/jsonschema/index.ts b/schemas/jsonschema/index.ts index e7d7b5d..661c8fe 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." + "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" }, "format": { "type": "string", - "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" + "description": "Video format. Supported values: `h264`, `h265`, `av1`" } } }; diff --git a/schemas/omgidl/foxglove/CompressedVideo.idl b/schemas/omgidl/foxglove/CompressedVideo.idl index 66e6a9d..abe67e5 100644 --- a/schemas/omgidl/foxglove/CompressedVideo.idl +++ b/schemas/omgidl/foxglove/CompressedVideo.idl @@ -17,11 +17,8 @@ struct CompressedVideo { // Compressed video frame data. // // For 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. - sequence data; - - // Video format. // - // Supported formats: + // Specifically, the requirements for different `format` values are: // // - `h264` // - Use Annex B formatted data @@ -37,6 +34,9 @@ struct CompressedVideo { // - 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 + sequence data; + + // Video format. Supported values: `h264`, `h265`, `av1` string format; }; diff --git a/schemas/proto/foxglove/CompressedVideo.proto b/schemas/proto/foxglove/CompressedVideo.proto index d939329..ebd5ae6 100644 --- a/schemas/proto/foxglove/CompressedVideo.proto +++ b/schemas/proto/foxglove/CompressedVideo.proto @@ -19,11 +19,8 @@ message CompressedVideo { // Compressed video frame data. // // For 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. - bytes data = 3; - - // Video format. // - // Supported formats: + // Specifically, the requirements for different `format` values are: // // - `h264` // - Use Annex B formatted data @@ -39,5 +36,8 @@ message CompressedVideo { // - 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 + bytes data = 3; + + // Video format. Supported values: `h264`, `h265`, `av1` string format = 4; } diff --git a/schemas/ros1/CompressedVideo.msg b/schemas/ros1/CompressedVideo.msg index b74f9e2..e946f12 100644 --- a/schemas/ros1/CompressedVideo.msg +++ b/schemas/ros1/CompressedVideo.msg @@ -14,11 +14,8 @@ string frame_id # Compressed video frame data. # # For 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. -uint8[] data - -# Video format. # -# Supported formats: +# Specifically, the requirements for different `format` values are: # # - `h264` # - Use Annex B formatted data @@ -34,4 +31,7 @@ uint8[] data # - 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 +uint8[] data + +# Video format. Supported values: `h264`, `h265`, `av1` string format diff --git a/schemas/ros2/CompressedVideo.msg b/schemas/ros2/CompressedVideo.msg index ead0b27..5c52303 100644 --- a/schemas/ros2/CompressedVideo.msg +++ b/schemas/ros2/CompressedVideo.msg @@ -14,11 +14,8 @@ string frame_id # Compressed video frame data. # # For 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. -uint8[] data - -# Video format. # -# Supported formats: +# Specifically, the requirements for different `format` values are: # # - `h264` # - Use Annex B formatted data @@ -34,4 +31,7 @@ uint8[] data # - 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 +uint8[] data + +# Video format. Supported values: `h264`, `h265`, `av1` string format diff --git a/schemas/typescript/CompressedVideo.ts b/schemas/typescript/CompressedVideo.ts index 8296dae..d16b419 100644 --- a/schemas/typescript/CompressedVideo.ts +++ b/schemas/typescript/CompressedVideo.ts @@ -19,13 +19,8 @@ export type CompressedVideo = { * Compressed video frame data. * * For 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. - */ - data: Uint8Array; - - /** - * Video format. * - * Supported formats: + * Specifically, the requirements for different `format` values are: * * - `h264` * - Use Annex B formatted data @@ -42,5 +37,8 @@ export type CompressedVideo = { * - 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 */ + data: Uint8Array; + + /** Video format. Supported values: `h264`, `h265`, `av1` */ format: string; }; From d39a81f9aaa759c39368de86006a9e6d66299631 Mon Sep 17 00:00:00 2001 From: Jacob Bandes-Storch Date: Tue, 26 Nov 2024 12:12:15 -0800 Subject: [PATCH 4/4] add note about support --- .../__snapshots__/exportTypeScriptSchemas.test.ts.snap | 8 +++++++- internal/schemas.ts | 3 ++- ros_foxglove_msgs/ros1/CompressedVideo.msg | 6 +++++- ros_foxglove_msgs/ros2/CompressedVideo.msg | 6 +++++- schemas/README.md | 6 +++++- schemas/flatbuffer/CompressedVideo.fbs | 6 +++++- schemas/jsonschema/CompressedVideo.json | 2 +- schemas/jsonschema/index.ts | 2 +- schemas/omgidl/foxglove/CompressedVideo.idl | 6 +++++- schemas/proto/foxglove/CompressedVideo.proto | 6 +++++- schemas/ros1/CompressedVideo.msg | 6 +++++- schemas/ros2/CompressedVideo.msg | 6 +++++- schemas/typescript/CompressedVideo.ts | 8 +++++++- 13 files changed, 58 insertions(+), 13 deletions(-) diff --git a/internal/__snapshots__/exportTypeScriptSchemas.test.ts.snap b/internal/__snapshots__/exportTypeScriptSchemas.test.ts.snap index 3c8929c..7c49d57 100644 --- a/internal/__snapshots__/exportTypeScriptSchemas.test.ts.snap +++ b/internal/__snapshots__/exportTypeScriptSchemas.test.ts.snap @@ -224,7 +224,13 @@ export type CompressedVideo = { */ data: Uint8Array; - /** Video format. Supported values: \`h264\`, \`h265\`, \`av1\` */ + /** + * Video format. + * + * Supported values: \`h264\`, \`h265\`, \`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). + */ format: string; }; ", diff --git a/internal/schemas.ts b/internal/schemas.ts index ab7f41e..88fb2d2 100644 --- a/internal/schemas.ts +++ b/internal/schemas.ts @@ -834,7 +834,8 @@ Specifically, the requirements for different \`format\` values are: { name: "format", type: { type: "primitive", name: "string" }, - description: "Video format. Supported values: `h264`, `h265`, `av1`", + 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).", }, ], }; diff --git a/ros_foxglove_msgs/ros1/CompressedVideo.msg b/ros_foxglove_msgs/ros1/CompressedVideo.msg index e946f12..1534dea 100644 --- a/ros_foxglove_msgs/ros1/CompressedVideo.msg +++ b/ros_foxglove_msgs/ros1/CompressedVideo.msg @@ -33,5 +33,9 @@ string frame_id # - Each message containing a key frame must also include a Sequence Header OBU uint8[] data -# Video format. Supported values: `h264`, `h265`, `av1` +# Video format. +# +# Supported values: `h264`, `h265`, `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). string format diff --git a/ros_foxglove_msgs/ros2/CompressedVideo.msg b/ros_foxglove_msgs/ros2/CompressedVideo.msg index 5c52303..ad42f00 100644 --- a/ros_foxglove_msgs/ros2/CompressedVideo.msg +++ b/ros_foxglove_msgs/ros2/CompressedVideo.msg @@ -33,5 +33,9 @@ string frame_id # - Each message containing a key frame must also include a Sequence Header OBU uint8[] data -# Video format. Supported values: `h264`, `h265`, `av1` +# Video format. +# +# Supported values: `h264`, `h265`, `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). string format diff --git a/schemas/README.md b/schemas/README.md index f7ad4a9..72e3de2 100644 --- a/schemas/README.md +++ b/schemas/README.md @@ -695,7 +695,11 @@ string -Video format. Supported values: `h264`, `h265`, `av1` +Video format. + +Supported values: `h264`, `h265`, `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). diff --git a/schemas/flatbuffer/CompressedVideo.fbs b/schemas/flatbuffer/CompressedVideo.fbs index 9107ad3..6ffebc5 100644 --- a/schemas/flatbuffer/CompressedVideo.fbs +++ b/schemas/flatbuffer/CompressedVideo.fbs @@ -36,7 +36,11 @@ table CompressedVideo { /// - Each message containing a key frame must also include a Sequence Header OBU data:[uint8] (id: 2); - /// Video format. Supported values: `h264`, `h265`, `av1` + /// Video format. + /// + /// Supported values: `h264`, `h265`, `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). format:string (id: 3); } diff --git a/schemas/jsonschema/CompressedVideo.json b/schemas/jsonschema/CompressedVideo.json index f359967..88f5d1c 100644 --- a/schemas/jsonschema/CompressedVideo.json +++ b/schemas/jsonschema/CompressedVideo.json @@ -31,7 +31,7 @@ }, "format": { "type": "string", - "description": "Video format. Supported values: `h264`, `h265`, `av1`" + "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)." } } } diff --git a/schemas/jsonschema/index.ts b/schemas/jsonschema/index.ts index 661c8fe..99d0db7 100644 --- a/schemas/jsonschema/index.ts +++ b/schemas/jsonschema/index.ts @@ -364,7 +364,7 @@ export const CompressedVideo = { }, "format": { "type": "string", - "description": "Video format. Supported values: `h264`, `h265`, `av1`" + "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)." } } }; diff --git a/schemas/omgidl/foxglove/CompressedVideo.idl b/schemas/omgidl/foxglove/CompressedVideo.idl index abe67e5..a2e664b 100644 --- a/schemas/omgidl/foxglove/CompressedVideo.idl +++ b/schemas/omgidl/foxglove/CompressedVideo.idl @@ -36,7 +36,11 @@ struct CompressedVideo { // - Each message containing a key frame must also include a Sequence Header OBU sequence data; - // Video format. Supported values: `h264`, `h265`, `av1` + // Video format. + // + // Supported values: `h264`, `h265`, `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). string format; }; diff --git a/schemas/proto/foxglove/CompressedVideo.proto b/schemas/proto/foxglove/CompressedVideo.proto index ebd5ae6..74e79e0 100644 --- a/schemas/proto/foxglove/CompressedVideo.proto +++ b/schemas/proto/foxglove/CompressedVideo.proto @@ -38,6 +38,10 @@ message CompressedVideo { // - Each message containing a key frame must also include a Sequence Header OBU bytes data = 3; - // Video format. Supported values: `h264`, `h265`, `av1` + // Video format. + // + // Supported values: `h264`, `h265`, `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). string format = 4; } diff --git a/schemas/ros1/CompressedVideo.msg b/schemas/ros1/CompressedVideo.msg index e946f12..1534dea 100644 --- a/schemas/ros1/CompressedVideo.msg +++ b/schemas/ros1/CompressedVideo.msg @@ -33,5 +33,9 @@ string frame_id # - Each message containing a key frame must also include a Sequence Header OBU uint8[] data -# Video format. Supported values: `h264`, `h265`, `av1` +# Video format. +# +# Supported values: `h264`, `h265`, `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). string format diff --git a/schemas/ros2/CompressedVideo.msg b/schemas/ros2/CompressedVideo.msg index 5c52303..ad42f00 100644 --- a/schemas/ros2/CompressedVideo.msg +++ b/schemas/ros2/CompressedVideo.msg @@ -33,5 +33,9 @@ string frame_id # - Each message containing a key frame must also include a Sequence Header OBU uint8[] data -# Video format. Supported values: `h264`, `h265`, `av1` +# Video format. +# +# Supported values: `h264`, `h265`, `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). string format diff --git a/schemas/typescript/CompressedVideo.ts b/schemas/typescript/CompressedVideo.ts index d16b419..9be37fb 100644 --- a/schemas/typescript/CompressedVideo.ts +++ b/schemas/typescript/CompressedVideo.ts @@ -39,6 +39,12 @@ export type CompressedVideo = { */ data: Uint8Array; - /** Video format. Supported values: `h264`, `h265`, `av1` */ + /** + * Video format. + * + * Supported values: `h264`, `h265`, `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). + */ format: string; };