180 return { OpType::CAPTURE, std::move(capture) };
193 const std::shared_ptr<Buffers::BufferManager>& buffer_manager,
194 uint32_t input_channel,
196 uint32_t cycle_count = 0);
206 const std::shared_ptr<Buffers::BufferManager>& buffer_manager,
207 uint32_t input_channel);
216 const std::shared_ptr<IO::IOManager>& io_manager,
219 uint32_t cycle_count = 1,
220 std::optional<Portal::Graphics::RenderConfig> render = std::nullopt);
227 const std::shared_ptr<IO::IOManager>& io_manager,
229 std::optional<Portal::Graphics::RenderConfig> render = std::nullopt);
240 const std::shared_ptr<IO::IOManager>& io_manager,
241 const std::string& filepath,
242 uint32_t channel = 0,
243 uint32_t cycle_count = 0);
250 const std::shared_ptr<IO::IOManager>& io_manager,
251 const std::string& filepath,
253 uint32_t cycle_count = 1,
254 std::optional<Portal::Graphics::RenderConfig> render = std::nullopt);
264 const std::shared_ptr<IO::IOManager>& io_manager,
265 const std::string& filepath,
266 uint32_t channel = 0);
273 const std::shared_ptr<IO::IOManager>& io_manager,
274 const std::string& filepath,
276 std::optional<Portal::Graphics::RenderConfig> render = std::nullopt);
287 const std::shared_ptr<IO::IOManager>& io_manager,
288 const std::string& filepath,
289 std::shared_ptr<Kakshya::DynamicSoundStream> target_stream,
290 uint32_t cycle_count = 0);
297 const std::shared_ptr<IO::IOManager>& io_manager,
298 const std::string& filepath,
299 std::shared_ptr<Kakshya::DynamicVideoStream> target_stream,
301 uint32_t cycle_count = 0,
302 std::optional<Portal::Graphics::RenderConfig> render = std::nullopt);
319 const std::shared_ptr<IO::IOManager>& io_manager,
321 uint64_t ring_frames = 0,
322 std::optional<Portal::Graphics::RenderConfig> live = std::nullopt,
323 std::optional<Portal::Graphics::RenderConfig> display = std::nullopt);
341 const std::shared_ptr<IO::IOManager>& io_manager,
342 const std::shared_ptr<Kakshya::VideoStreamContainer>& container,
343 uint64_t ring_frames = 0,
344 std::optional<Portal::Graphics::RenderConfig> live = std::nullopt,
345 std::optional<Portal::Graphics::RenderConfig> display = std::nullopt);
360 const std::shared_ptr<IO::IOManager>& io_manager,
361 const std::string& filepath,
363 uint64_t ring_frames = 0,
364 std::optional<Portal::Graphics::RenderConfig> live = std::nullopt,
365 std::optional<Portal::Graphics::RenderConfig> display = std::nullopt);
376 return m_target_graphics_stream;
401 static BufferOperation route_to_buffer(std::shared_ptr<Buffers::AudioBuffer> target);
404 static BufferOperation route_to_buffer(std::shared_ptr<Buffers::VKBuffer> target);
417 std::shared_ptr<Buffers::TextureArrayBuffer> target, uint32_t layer = 0);
430 std::shared_ptr<Buffers::TextureArrayBuffer> target,
431 std::vector<std::shared_ptr<Core::VKImage>> images);
446 static BufferOperation route_to_container(std::shared_ptr<Kakshya::DynamicSoundStream> target, uint32_t channel = 0);
458 std::shared_ptr<Kakshya::DynamicVideoStream> target,
459 std::optional<Portal::Graphics::RenderConfig> render = std::nullopt);
469 static BufferOperation load_from_container(std::shared_ptr<Kakshya::DynamicSoundStream> source,
470 std::shared_ptr<Buffers::AudioBuffer> target,
471 uint64_t start_frame = 0,
472 uint32_t length = 0);
476 std::shared_ptr<Kakshya::DynamicVideoStream> source,
477 std::shared_ptr<Buffers::VKBuffer> target,
478 uint64_t start_frame = 0,
479 uint32_t length = 0);
510 std::shared_ptr<Buffers::AudioBuffer>
buffer,
515 std::shared_ptr<Buffers::VKBuffer>
buffer,
525 static BufferOperation fuse_data(std::vector<std::shared_ptr<Buffers::AudioBuffer>> sources,
527 std::shared_ptr<Buffers::AudioBuffer> target);
531 std::vector<std::shared_ptr<Buffers::VKBuffer>> sources,
533 std::shared_ptr<Buffers::VKBuffer> target);
542 static BufferOperation fuse_containers(std::vector<std::shared_ptr<Kakshya::DynamicSoundStream>> sources,
544 std::shared_ptr<Kakshya::DynamicSoundStream> target);
548 std::vector<std::shared_ptr<Kakshya::DynamicVideoStream>> sources,
550 std::shared_ptr<Kakshya::DynamicVideoStream> target);
561 std::shared_ptr<Buffers::VKBuffer>
buffer,
562 std::optional<Portal::Graphics::RenderConfig> render = std::nullopt);
611 inline const std::string&
get_tag()
const {
return m_tag; }
619 m_execution_phase = ExecutionPhase::CAPTURE;
658 uint32_t m_modify_cycle_count {};
659 bool m_is_streaming {};
670 std::optional<Portal::Graphics::RenderConfig>
m_render;
671 bool m_display_attached {};
672 uint32_t m_target_audio_channel {};
673 uint32_t m_target_layer {};
680 uint64_t m_start_frame {};
681 uint32_t m_load_length {};
692 uint8_t m_priority = 128;
694 uint32_t m_cycle_interval = 1;