66 bool append_frame(std::span<const uint8_t>
pixels);
89 bool append_frame(
const std::shared_ptr<Core::VKImage>&
image,
90 const std::shared_ptr<Buffers::VKBuffer>& staging =
nullptr);
107 void enable_circular_buffer(uint64_t capacity);
115 void ensure_capacity(uint64_t frames);
127 [[nodiscard]] std::shared_ptr<DynamicVideoStream> snapshot(uint64_t frames)
const;
134 void clear()
override;
143 void create_default_processor()
override;
150 [[nodiscard]] std::shared_ptr<FrameSeekProcessor> seek_processor();
161 void lag_behind_head(
double frames);
164 uint64_t m_write_head {};
166 std::vector<uint8_t>& flat_bytes();
167 uint8_t* claim_frame_slot();
169 void publish_frame_count();