MayaFlux 0.2.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ hook_video_container_to_buffer()

std::shared_ptr< Buffers::VideoContainerBuffer > MayaFlux::IO::IOManager::hook_video_container_to_buffer ( const std::shared_ptr< Kakshya::VideoFileContainer > &  container)

Wire a VideoFileContainer to the graphics buffer system.

Creates a VideoContainerBuffer via BufferManager with GRAPHICS_BACKEND token, stores it keyed by container pointer, and returns it.

Parameters
containerLoaded VideoFileContainer to wire.
Returns
Created VideoContainerBuffer, or nullptr on failure.

Definition at line 375 of file IOManager.cpp.

377{
378 if (!container) {
380 "hook_video_container_to_buffer: null container");
381 return nullptr;
382 }
383
384 auto stream_container = std::dynamic_pointer_cast<Kakshya::StreamContainer>(container);
385
386 if (!stream_container) {
388 "hook_video_container_to_buffer: container is not a VideoStreamContainer");
389 return nullptr;
390 }
391
392 auto video_buffer = m_buffer_manager->create_graphics_buffer<Buffers::VideoContainerBuffer>(
394 stream_container);
395
396 {
397 std::unique_lock lock(m_buffers_mutex);
398 m_video_buffers[container] = video_buffer;
399 }
400
402 "Hooked VideoFileContainer to VideoContainerBuffer ({}x{})",
403 video_buffer->get_width(), video_buffer->get_height());
404
405 return video_buffer;
406}
#define MF_INFO(comp, ctx,...)
#define MF_ERROR(comp, ctx,...)
std::shared_mutex m_buffers_mutex
std::shared_ptr< Buffers::BufferManager > m_buffer_manager
std::unordered_map< std::shared_ptr< Kakshya::VideoFileContainer >, std::shared_ptr< Buffers::VideoContainerBuffer > > m_video_buffers
@ GRAPHICS_BACKEND
Standard graphics processing backend configuration.
@ BufferManagement
Buffer Management (Buffers::BufferManager, creating buffers)
@ Runtime
General runtime operations (default fallback)
@ API
MayaFlux/API Wrapper and convenience functions.

References MayaFlux::Journal::API, MayaFlux::Journal::BufferManagement, MayaFlux::Buffers::GRAPHICS_BACKEND, m_buffer_manager, m_buffers_mutex, m_video_buffers, MF_ERROR, MF_INFO, and MayaFlux::Journal::Runtime.