83 IOManager(uint64_t sample_rate, uint32_t buffer_size, uint32_t frame_rate,
const std::shared_ptr<Buffers::BufferManager>& buffer_manager);
113 [[nodiscard]] std::shared_ptr<Kakshya::VideoFileContainer> load_video(
const std::string& filepath);
132 const std::string& filepath,
LoadConfig config);
147 [[nodiscard]] std::shared_ptr<Buffers::VideoContainerBuffer>
148 hook_video_container_to_buffer(
149 const std::shared_ptr<Kakshya::VideoFileContainer>& container);
160 [[nodiscard]] std::shared_ptr<Buffers::VideoContainerBuffer>
162 const std::shared_ptr<Kakshya::VideoFileContainer>& container)
const;
179 [[nodiscard]] std::shared_ptr<Kakshya::SoundFileContainer> load_audio(
const std::string& filepath,
LoadConfig config = {});
194 [[nodiscard]] std::vector<std::shared_ptr<Buffers::SoundContainerBuffer>>
195 hook_audio_container_to_buffers(
196 const std::shared_ptr<Kakshya::SoundFileContainer>& container);
207 [[nodiscard]] std::vector<std::shared_ptr<Buffers::SoundContainerBuffer>>
209 const std::shared_ptr<Kakshya::SoundFileContainer>& container)
const;
216 [[nodiscard]] std::shared_ptr<Kakshya::SoundFileContainer>
217 get_extracted_audio(
const std::shared_ptr<Kakshya::VideoFileContainer>& container)
const;
240 [[nodiscard]] std::shared_ptr<Kakshya::CameraContainer>
257 [[nodiscard]] std::shared_ptr<Buffers::VideoContainerBuffer>
258 hook_camera_to_buffer(
const std::shared_ptr<Kakshya::CameraContainer>& container);
267 [[nodiscard]] std::shared_ptr<Buffers::VideoContainerBuffer>
268 get_camera_buffer(
const std::shared_ptr<Kakshya::CameraContainer>& container)
const;
286 [[nodiscard]] uint64_t register_video_reader(std::shared_ptr<VideoFileReader> reader);
297 void release_video_reader(uint64_t reader_id);
313 [[nodiscard]] std::shared_ptr<Buffers::TextureBuffer>
314 load_image(
const std::string& filepath);
327 void dispatch_decode_request(uint64_t reader_id);
333 void dispatch_frame_request(uint64_t reader_id);
335 void configure_frame_processor(
336 const std::shared_ptr<Kakshya::VideoFileContainer>& container);
338 void configure_audio_processor(
339 const std::shared_ptr<Kakshya::SoundFileContainer>& container);
343 std::atomic<uint64_t> m_next_reader_id { 1 };
358 std::shared_ptr<Kakshya::VideoFileContainer>,
359 std::shared_ptr<Buffers::VideoContainerBuffer>>
363 std::shared_ptr<Kakshya::CameraContainer>,
364 std::shared_ptr<Buffers::VideoContainerBuffer>>
368 std::shared_ptr<Kakshya::VideoFileContainer>,
369 std::shared_ptr<Kakshya::SoundFileContainer>>
373 std::shared_ptr<Kakshya::SoundFileContainer>,
374 std::vector<std::shared_ptr<Buffers::SoundContainerBuffer>>>