Add encoded SHM passthrough support

This commit is contained in:
2026-03-27 10:43:34 +08:00
parent 0c9f0a944f
commit bb3ace43b7
8 changed files with 480 additions and 98 deletions
+27
View File
@@ -51,6 +51,19 @@ enum class DepthUnit : std::uint8_t {
Meter = 2,
};
enum class EncodedCodec : std::uint8_t {
Unknown = 0,
H264 = 1,
H265 = 2,
};
enum class EncodedBitstreamFormat : std::uint8_t {
Unknown = 0,
AnnexB = 1,
};
constexpr std::uint16_t kEncodedFlagKeyframe = 0x0001u;
enum class ModuleStatus : std::int32_t {
Online = 0xa1,
Offline = 0xa0,
@@ -163,22 +176,36 @@ struct ControlResponseMessage {
struct ValidatedShmView {
FrameMetadata metadata;
DepthUnit depth_unit{DepthUnit::Unknown};
EncodedCodec encoded_codec{EncodedCodec::Unknown};
EncodedBitstreamFormat encoded_bitstream_format{EncodedBitstreamFormat::Unknown};
std::uint16_t encoded_flags{0};
std::uint16_t encoded_frame_rate_num{0};
std::uint16_t encoded_frame_rate_den{0};
std::uint64_t encoded_stream_pts_ns{0};
std::span<const std::uint8_t> payload;
std::span<const std::uint8_t> left;
std::optional<FrameInfo> depth_info{};
std::span<const std::uint8_t> depth{};
std::optional<FrameInfo> confidence_info{};
std::span<const std::uint8_t> confidence{};
std::span<const std::uint8_t> encoded_access_unit{};
};
struct CoherentSnapshot {
FrameMetadata metadata;
DepthUnit depth_unit{DepthUnit::Unknown};
EncodedCodec encoded_codec{EncodedCodec::Unknown};
EncodedBitstreamFormat encoded_bitstream_format{EncodedBitstreamFormat::Unknown};
std::uint16_t encoded_flags{0};
std::uint16_t encoded_frame_rate_num{0};
std::uint16_t encoded_frame_rate_den{0};
std::uint64_t encoded_stream_pts_ns{0};
std::span<const std::uint8_t> left;
std::optional<FrameInfo> depth_info{};
std::span<const std::uint8_t> depth{};
std::optional<FrameInfo> confidence_info{};
std::span<const std::uint8_t> confidence{};
std::span<const std::uint8_t> encoded_access_unit{};
std::size_t bytes_copied;
};