From 587bf2943c315f4c1752c4acb37c9c42e43513fd Mon Sep 17 00:00:00 2001 From: Sam Nosenzo Date: Thu, 28 Sep 2023 15:55:19 -0400 Subject: [PATCH 1/5] - update video schema docs --- internal/schemas.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/schemas.ts b/internal/schemas.ts index 446eeca..90d640c 100644 --- a/internal/schemas.ts +++ b/internal/schemas.ts @@ -798,7 +798,7 @@ const CompressedVideo: FoxgloveMessageSchema = { { name: "timestamp", type: { type: "primitive", name: "time" }, - description: "Timestamp of image", + description: "Timestamp of video frame", }, { name: "frame_id", @@ -810,7 +810,7 @@ const CompressedVideo: FoxgloveMessageSchema = { name: "data", type: { type: "primitive", name: "bytes" }, description: - "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).", + "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: It is strongly recommended to _not_ write B frames/slices to the H264 stream and instead solely use I and P frames because this more closely mirrors live data sources.", }, { name: "format", From 6ce6563ce7160b4b9b9344fd4da89bcb961bcdb3 Mon Sep 17 00:00:00 2001 From: Sam Nosenzo Date: Thu, 28 Sep 2023 16:01:01 -0400 Subject: [PATCH 2/5] - update snapshot --- internal/__snapshots__/exportTypeScriptSchemas.test.ts.snap | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/__snapshots__/exportTypeScriptSchemas.test.ts.snap b/internal/__snapshots__/exportTypeScriptSchemas.test.ts.snap index 6ef1c5e..691fd95 100644 --- a/internal/__snapshots__/exportTypeScriptSchemas.test.ts.snap +++ b/internal/__snapshots__/exportTypeScriptSchemas.test.ts.snap @@ -187,13 +187,13 @@ import { Time } from "./Time"; /** A single frame of a compressed video bitstream */ export type CompressedVideo = { - /** Timestamp of image */ + /** Timestamp of video frame */ timestamp: Time; /** Frame of reference for the image. The origin of the frame is the optical center of the camera. +x points to the right in the image, +y points down, and +z points into the plane of the image. */ frame_id: string; - /** 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). */ + /** 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: It is strongly recommended to _not_ write B frames/slices to the H264 stream and instead solely use I and P frames because this more closely mirrors live data sources. */ data: Uint8Array; /** From 138d85a84dc2b3586032c73996f31b5efd50ca24 Mon Sep 17 00:00:00 2001 From: Sam Nosenzo Date: Thu, 28 Sep 2023 17:08:52 -0400 Subject: [PATCH 3/5] feedback --- internal/__snapshots__/exportTypeScriptSchemas.test.ts.snap | 4 ++-- internal/schemas.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/internal/__snapshots__/exportTypeScriptSchemas.test.ts.snap b/internal/__snapshots__/exportTypeScriptSchemas.test.ts.snap index 691fd95..21fc06a 100644 --- a/internal/__snapshots__/exportTypeScriptSchemas.test.ts.snap +++ b/internal/__snapshots__/exportTypeScriptSchemas.test.ts.snap @@ -190,10 +190,10 @@ export type CompressedVideo = { /** Timestamp of video frame */ timestamp: Time; - /** Frame of reference for the image. The origin of the frame is the optical center of the camera. +x points to the right in the image, +y points down, and +z points into the plane of the image. */ + /** Frame of reference for the video. The origin of the frame is the optical center of the camera. +x points to the right in the video, +y points down, and +z points into the plane of the video. */ frame_id: string; - /** 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: It is strongly recommended to _not_ write B frames/slices to the H264 stream and instead solely use I and P frames because this more closely mirrors live data sources. */ + /** 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). B frames should be avoided because of their inconsistency with recordings directly written from live sources. */ data: Uint8Array; /** diff --git a/internal/schemas.ts b/internal/schemas.ts index 90d640c..d5410ee 100644 --- a/internal/schemas.ts +++ b/internal/schemas.ts @@ -804,13 +804,13 @@ const CompressedVideo: FoxgloveMessageSchema = { name: "frame_id", type: { type: "primitive", name: "string" }, description: - "Frame of reference for the image. The origin of the frame is the optical center of the camera. +x points to the right in the image, +y points down, and +z points into the plane of the image.", + "Frame of reference for the video. The origin of the frame is the optical center of the camera. +x points to the right in the video, +y points down, and +z points into the plane of the video.", }, { name: "data", type: { type: "primitive", name: "bytes" }, description: - "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: It is strongly recommended to _not_ write B frames/slices to the H264 stream and instead solely use I and P frames because this more closely mirrors live data sources.", + "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). B frames should be avoided because of their inconsistency with recordings directly written from live sources.", }, { name: "format", From d61585f142d1504e87e732ff83ca571d619dcce0 Mon Sep 17 00:00:00 2001 From: Sam Nosenzo Date: Thu, 28 Sep 2023 17:11:08 -0400 Subject: [PATCH 4/5] update generated files --- 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 | 6 +++--- schemas/jsonschema/index.ts | 6 +++--- 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 | 6 +++--- 11 files changed, 33 insertions(+), 33 deletions(-) diff --git a/ros_foxglove_msgs/ros1/CompressedVideo.msg b/ros_foxglove_msgs/ros1/CompressedVideo.msg index 991c967..7319ad3 100644 --- a/ros_foxglove_msgs/ros1/CompressedVideo.msg +++ b/ros_foxglove_msgs/ros1/CompressedVideo.msg @@ -3,13 +3,13 @@ # Generated by https://github.com/foxglove/schemas -# Timestamp of image +# Timestamp of video frame time timestamp -# Frame of reference for the image. The origin of the frame is the optical center of the camera. +x points to the right in the image, +y points down, and +z points into the plane of the image. +# Frame of reference for the video. The origin of the frame is the optical center of the camera. +x points to the right in the video, +y points down, and +z points into the plane of the video. 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). +# 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). B frames should be avoided because of their inconsistency with recordings directly written from live sources. uint8[] data # Video format diff --git a/ros_foxglove_msgs/ros2/CompressedVideo.msg b/ros_foxglove_msgs/ros2/CompressedVideo.msg index 03379ff..dba6432 100644 --- a/ros_foxglove_msgs/ros2/CompressedVideo.msg +++ b/ros_foxglove_msgs/ros2/CompressedVideo.msg @@ -3,13 +3,13 @@ # Generated by https://github.com/foxglove/schemas -# Timestamp of image +# Timestamp of video frame builtin_interfaces/Time timestamp -# Frame of reference for the image. The origin of the frame is the optical center of the camera. +x points to the right in the image, +y points down, and +z points into the plane of the image. +# Frame of reference for the video. The origin of the frame is the optical center of the camera. +x points to the right in the video, +y points down, and +z points into the plane of the video. 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). +# 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). B frames should be avoided because of their inconsistency with recordings directly written from live sources. uint8[] data # Video format diff --git a/schemas/README.md b/schemas/README.md index 05ba776..ad13482 100644 --- a/schemas/README.md +++ b/schemas/README.md @@ -634,7 +634,7 @@ time -Timestamp of image +Timestamp of video frame @@ -647,7 +647,7 @@ string -Frame of reference for the image. The origin of the frame is the optical center of the camera. +x points to the right in the image, +y points down, and +z points into the plane of the image. +Frame of reference for the video. The origin of the frame is the optical center of the camera. +x points to the right in the video, +y points down, and +z points into the plane of the video. @@ -660,7 +660,7 @@ bytes -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). +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). B frames should be avoided because of their inconsistency with recordings directly written from live sources. diff --git a/schemas/flatbuffer/CompressedVideo.fbs b/schemas/flatbuffer/CompressedVideo.fbs index de3a482..26284a4 100644 --- a/schemas/flatbuffer/CompressedVideo.fbs +++ b/schemas/flatbuffer/CompressedVideo.fbs @@ -6,13 +6,13 @@ namespace foxglove; /// A single frame of a compressed video bitstream table CompressedVideo { - /// Timestamp of image + /// Timestamp of video frame timestamp:Time; - /// Frame of reference for the image. The origin of the frame is the optical center of the camera. +x points to the right in the image, +y points down, and +z points into the plane of the image. + /// Frame of reference for the video. The origin of the frame is the optical center of the camera. +x points to the right in the video, +y points down, and +z points into the plane of the video. frame_id:string; - /// 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). + /// 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). B frames should be avoided because of their inconsistency with recordings directly written from live sources. data:[uint8]; /// Video format diff --git a/schemas/jsonschema/CompressedVideo.json b/schemas/jsonschema/CompressedVideo.json index 21f167b..8303675 100644 --- a/schemas/jsonschema/CompressedVideo.json +++ b/schemas/jsonschema/CompressedVideo.json @@ -18,16 +18,16 @@ "maximum": 999999999 } }, - "description": "Timestamp of image" + "description": "Timestamp of video frame" }, "frame_id": { "type": "string", - "description": "Frame of reference for the image. The origin of the frame is the optical center of the camera. +x points to the right in the image, +y points down, and +z points into the plane of the image." + "description": "Frame of reference for the video. The origin of the frame is the optical center of the camera. +x points to the right in the video, +y points down, and +z points into the plane of the video." }, "data": { "type": "string", "contentEncoding": "base64", - "description": "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)." + "description": "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). B frames should be avoided because of their inconsistency with recordings directly written from live sources." }, "format": { "type": "string", diff --git a/schemas/jsonschema/index.ts b/schemas/jsonschema/index.ts index c168153..07f775c 100644 --- a/schemas/jsonschema/index.ts +++ b/schemas/jsonschema/index.ts @@ -351,16 +351,16 @@ export const CompressedVideo = { "maximum": 999999999 } }, - "description": "Timestamp of image" + "description": "Timestamp of video frame" }, "frame_id": { "type": "string", - "description": "Frame of reference for the image. The origin of the frame is the optical center of the camera. +x points to the right in the image, +y points down, and +z points into the plane of the image." + "description": "Frame of reference for the video. The origin of the frame is the optical center of the camera. +x points to the right in the video, +y points down, and +z points into the plane of the video." }, "data": { "type": "string", "contentEncoding": "base64", - "description": "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)." + "description": "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). B frames should be avoided because of their inconsistency with recordings directly written from live sources." }, "format": { "type": "string", diff --git a/schemas/omgidl/foxglove/CompressedVideo.idl b/schemas/omgidl/foxglove/CompressedVideo.idl index 3b39e1c..b0456c1 100644 --- a/schemas/omgidl/foxglove/CompressedVideo.idl +++ b/schemas/omgidl/foxglove/CompressedVideo.idl @@ -6,13 +6,13 @@ module foxglove { // A single frame of a compressed video bitstream struct CompressedVideo { - // Timestamp of image + // Timestamp of video frame Time timestamp; - // Frame of reference for the image. The origin of the frame is the optical center of the camera. +x points to the right in the image, +y points down, and +z points into the plane of the image. + // Frame of reference for the video. The origin of the frame is the optical center of the camera. +x points to the right in the video, +y points down, and +z points into the plane of the video. 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). + // 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). B frames should be avoided because of their inconsistency with recordings directly written from live sources. sequence data; // Video format diff --git a/schemas/proto/foxglove/CompressedVideo.proto b/schemas/proto/foxglove/CompressedVideo.proto index 9d61961..f45be7a 100644 --- a/schemas/proto/foxglove/CompressedVideo.proto +++ b/schemas/proto/foxglove/CompressedVideo.proto @@ -8,13 +8,13 @@ package foxglove; // A single frame of a compressed video bitstream message CompressedVideo { - // Timestamp of image + // Timestamp of video frame google.protobuf.Timestamp timestamp = 1; - // Frame of reference for the image. The origin of the frame is the optical center of the camera. +x points to the right in the image, +y points down, and +z points into the plane of the image. + // Frame of reference for the video. The origin of the frame is the optical center of the camera. +x points to the right in the video, +y points down, and +z points into the plane of the video. string frame_id = 2; - // 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). + // 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). B frames should be avoided because of their inconsistency with recordings directly written from live sources. bytes data = 3; // Video format diff --git a/schemas/ros1/CompressedVideo.msg b/schemas/ros1/CompressedVideo.msg index 991c967..7319ad3 100644 --- a/schemas/ros1/CompressedVideo.msg +++ b/schemas/ros1/CompressedVideo.msg @@ -3,13 +3,13 @@ # Generated by https://github.com/foxglove/schemas -# Timestamp of image +# Timestamp of video frame time timestamp -# Frame of reference for the image. The origin of the frame is the optical center of the camera. +x points to the right in the image, +y points down, and +z points into the plane of the image. +# Frame of reference for the video. The origin of the frame is the optical center of the camera. +x points to the right in the video, +y points down, and +z points into the plane of the video. 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). +# 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). B frames should be avoided because of their inconsistency with recordings directly written from live sources. uint8[] data # Video format diff --git a/schemas/ros2/CompressedVideo.msg b/schemas/ros2/CompressedVideo.msg index 03379ff..dba6432 100644 --- a/schemas/ros2/CompressedVideo.msg +++ b/schemas/ros2/CompressedVideo.msg @@ -3,13 +3,13 @@ # Generated by https://github.com/foxglove/schemas -# Timestamp of image +# Timestamp of video frame builtin_interfaces/Time timestamp -# Frame of reference for the image. The origin of the frame is the optical center of the camera. +x points to the right in the image, +y points down, and +z points into the plane of the image. +# Frame of reference for the video. The origin of the frame is the optical center of the camera. +x points to the right in the video, +y points down, and +z points into the plane of the video. 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). +# 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). B frames should be avoided because of their inconsistency with recordings directly written from live sources. uint8[] data # Video format diff --git a/schemas/typescript/CompressedVideo.ts b/schemas/typescript/CompressedVideo.ts index 8e7032f..cedb898 100644 --- a/schemas/typescript/CompressedVideo.ts +++ b/schemas/typescript/CompressedVideo.ts @@ -5,13 +5,13 @@ import { Time } from "./Time"; /** A single frame of a compressed video bitstream */ export type CompressedVideo = { - /** Timestamp of image */ + /** Timestamp of video frame */ timestamp: Time; - /** Frame of reference for the image. The origin of the frame is the optical center of the camera. +x points to the right in the image, +y points down, and +z points into the plane of the image. */ + /** Frame of reference for the video. The origin of the frame is the optical center of the camera. +x points to the right in the video, +y points down, and +z points into the plane of the video. */ frame_id: string; - /** 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). */ + /** 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). B frames should be avoided because of their inconsistency with recordings directly written from live sources. */ data: Uint8Array; /** From 914da78d8a5d3bb2a864c5f76fc55a76dbf8cf91 Mon Sep 17 00:00:00 2001 From: Sam Nosenzo Date: Fri, 29 Sep 2023 09:39:31 -0400 Subject: [PATCH 5/5] update B frame note from feedback --- internal/__snapshots__/exportTypeScriptSchemas.test.ts.snap | 2 +- internal/schemas.ts | 2 +- ros_foxglove_msgs/ros1/CompressedVideo.msg | 2 +- ros_foxglove_msgs/ros2/CompressedVideo.msg | 2 +- schemas/README.md | 2 +- schemas/flatbuffer/CompressedVideo.fbs | 2 +- schemas/jsonschema/CompressedVideo.json | 2 +- schemas/jsonschema/index.ts | 2 +- schemas/omgidl/foxglove/CompressedVideo.idl | 2 +- schemas/proto/foxglove/CompressedVideo.proto | 2 +- schemas/ros1/CompressedVideo.msg | 2 +- schemas/ros2/CompressedVideo.msg | 2 +- schemas/typescript/CompressedVideo.ts | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) diff --git a/internal/__snapshots__/exportTypeScriptSchemas.test.ts.snap b/internal/__snapshots__/exportTypeScriptSchemas.test.ts.snap index 21fc06a..3f652d4 100644 --- a/internal/__snapshots__/exportTypeScriptSchemas.test.ts.snap +++ b/internal/__snapshots__/exportTypeScriptSchemas.test.ts.snap @@ -193,7 +193,7 @@ export type CompressedVideo = { /** Frame of reference for the video. The origin of the frame is the optical center of the camera. +x points to the right in the video, +y points down, and +z points into the plane of the video. */ frame_id: string; - /** 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). B frames should be avoided because of their inconsistency with recordings directly written from live sources. */ + /** 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 Studio does not support video streams that include B frames because they require lookahead. */ data: Uint8Array; /** diff --git a/internal/schemas.ts b/internal/schemas.ts index d5410ee..5e2d689 100644 --- a/internal/schemas.ts +++ b/internal/schemas.ts @@ -810,7 +810,7 @@ const CompressedVideo: FoxgloveMessageSchema = { name: "data", type: { type: "primitive", name: "bytes" }, description: - "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). B frames should be avoided because of their inconsistency with recordings directly written from live sources.", + "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 Studio does not support video streams that include B frames because they require lookahead.", }, { name: "format", diff --git a/ros_foxglove_msgs/ros1/CompressedVideo.msg b/ros_foxglove_msgs/ros1/CompressedVideo.msg index 7319ad3..d764f43 100644 --- a/ros_foxglove_msgs/ros1/CompressedVideo.msg +++ b/ros_foxglove_msgs/ros1/CompressedVideo.msg @@ -9,7 +9,7 @@ time timestamp # Frame of reference for the video. The origin of the frame is the optical center of the camera. +x points to the right in the video, +y points down, and +z points into the plane of the video. 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). B frames should be avoided because of their inconsistency with recordings directly written from live sources. +# 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 Studio does not support video streams that include B frames because they require lookahead. uint8[] data # Video format diff --git a/ros_foxglove_msgs/ros2/CompressedVideo.msg b/ros_foxglove_msgs/ros2/CompressedVideo.msg index dba6432..6eea099 100644 --- a/ros_foxglove_msgs/ros2/CompressedVideo.msg +++ b/ros_foxglove_msgs/ros2/CompressedVideo.msg @@ -9,7 +9,7 @@ builtin_interfaces/Time timestamp # Frame of reference for the video. The origin of the frame is the optical center of the camera. +x points to the right in the video, +y points down, and +z points into the plane of the video. 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). B frames should be avoided because of their inconsistency with recordings directly written from live sources. +# 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 Studio does not support video streams that include B frames because they require lookahead. uint8[] data # Video format diff --git a/schemas/README.md b/schemas/README.md index ad13482..c9b8da9 100644 --- a/schemas/README.md +++ b/schemas/README.md @@ -660,7 +660,7 @@ bytes -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). B frames should be avoided because of their inconsistency with recordings directly written from live sources. +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 Studio does not support video streams that include B frames because they require lookahead. diff --git a/schemas/flatbuffer/CompressedVideo.fbs b/schemas/flatbuffer/CompressedVideo.fbs index 26284a4..714be1a 100644 --- a/schemas/flatbuffer/CompressedVideo.fbs +++ b/schemas/flatbuffer/CompressedVideo.fbs @@ -12,7 +12,7 @@ table CompressedVideo { /// Frame of reference for the video. The origin of the frame is the optical center of the camera. +x points to the right in the video, +y points down, and +z points into the plane of the video. frame_id:string; - /// 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). B frames should be avoided because of their inconsistency with recordings directly written from live sources. + /// 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 Studio does not support video streams that include B frames because they require lookahead. data:[uint8]; /// Video format diff --git a/schemas/jsonschema/CompressedVideo.json b/schemas/jsonschema/CompressedVideo.json index 8303675..e33cc95 100644 --- a/schemas/jsonschema/CompressedVideo.json +++ b/schemas/jsonschema/CompressedVideo.json @@ -27,7 +27,7 @@ "data": { "type": "string", "contentEncoding": "base64", - "description": "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). B frames should be avoided because of their inconsistency with recordings directly written from live sources." + "description": "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 Studio does not support video streams that include B frames because they require lookahead." }, "format": { "type": "string", diff --git a/schemas/jsonschema/index.ts b/schemas/jsonschema/index.ts index 07f775c..47dcd8b 100644 --- a/schemas/jsonschema/index.ts +++ b/schemas/jsonschema/index.ts @@ -360,7 +360,7 @@ export const CompressedVideo = { "data": { "type": "string", "contentEncoding": "base64", - "description": "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). B frames should be avoided because of their inconsistency with recordings directly written from live sources." + "description": "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 Studio does not support video streams that include B frames because they require lookahead." }, "format": { "type": "string", diff --git a/schemas/omgidl/foxglove/CompressedVideo.idl b/schemas/omgidl/foxglove/CompressedVideo.idl index b0456c1..fcaf97b 100644 --- a/schemas/omgidl/foxglove/CompressedVideo.idl +++ b/schemas/omgidl/foxglove/CompressedVideo.idl @@ -12,7 +12,7 @@ struct CompressedVideo { // Frame of reference for the video. The origin of the frame is the optical center of the camera. +x points to the right in the video, +y points down, and +z points into the plane of the video. 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). B frames should be avoided because of their inconsistency with recordings directly written from live sources. + // 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 Studio does not support video streams that include B frames because they require lookahead. sequence data; // Video format diff --git a/schemas/proto/foxglove/CompressedVideo.proto b/schemas/proto/foxglove/CompressedVideo.proto index f45be7a..f411a49 100644 --- a/schemas/proto/foxglove/CompressedVideo.proto +++ b/schemas/proto/foxglove/CompressedVideo.proto @@ -14,7 +14,7 @@ message CompressedVideo { // Frame of reference for the video. The origin of the frame is the optical center of the camera. +x points to the right in the video, +y points down, and +z points into the plane of the video. string frame_id = 2; - // 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). B frames should be avoided because of their inconsistency with recordings directly written from live sources. + // 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 Studio does not support video streams that include B frames because they require lookahead. bytes data = 3; // Video format diff --git a/schemas/ros1/CompressedVideo.msg b/schemas/ros1/CompressedVideo.msg index 7319ad3..d764f43 100644 --- a/schemas/ros1/CompressedVideo.msg +++ b/schemas/ros1/CompressedVideo.msg @@ -9,7 +9,7 @@ time timestamp # Frame of reference for the video. The origin of the frame is the optical center of the camera. +x points to the right in the video, +y points down, and +z points into the plane of the video. 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). B frames should be avoided because of their inconsistency with recordings directly written from live sources. +# 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 Studio does not support video streams that include B frames because they require lookahead. uint8[] data # Video format diff --git a/schemas/ros2/CompressedVideo.msg b/schemas/ros2/CompressedVideo.msg index dba6432..6eea099 100644 --- a/schemas/ros2/CompressedVideo.msg +++ b/schemas/ros2/CompressedVideo.msg @@ -9,7 +9,7 @@ builtin_interfaces/Time timestamp # Frame of reference for the video. The origin of the frame is the optical center of the camera. +x points to the right in the video, +y points down, and +z points into the plane of the video. 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). B frames should be avoided because of their inconsistency with recordings directly written from live sources. +# 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 Studio does not support video streams that include B frames because they require lookahead. uint8[] data # Video format diff --git a/schemas/typescript/CompressedVideo.ts b/schemas/typescript/CompressedVideo.ts index cedb898..21e1542 100644 --- a/schemas/typescript/CompressedVideo.ts +++ b/schemas/typescript/CompressedVideo.ts @@ -11,7 +11,7 @@ export type CompressedVideo = { /** Frame of reference for the video. The origin of the frame is the optical center of the camera. +x points to the right in the video, +y points down, and +z points into the plane of the video. */ frame_id: string; - /** 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). B frames should be avoided because of their inconsistency with recordings directly written from live sources. */ + /** 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 Studio does not support video streams that include B frames because they require lookahead. */ data: Uint8Array; /**