MayaFlux 0.4.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 506 of file IOManager.cpp.

508{
509 if (!container) {
511 "hook_video_container_to_buffer: null container");
512 return nullptr;
513 }
514
515 auto stream_container = std::dynamic_pointer_cast<Kakshya::StreamContainer>(container);
516
517 if (!stream_container) {
519 "hook_video_container_to_buffer: container is not a VideoStreamContainer");
520 return nullptr;
521 }
522
523 auto video_buffer = m_buffer_manager->create_graphics_buffer<Buffers::VideoContainerBuffer>(
525 stream_container);
526
527 {
528 std::unique_lock lock(m_buffers_mutex);
529 m_video_buffers[container] = video_buffer;
530 }
531
533 "Hooked VideoFileContainer to VideoContainerBuffer ({}x{})",
534 video_buffer->get_width(), video_buffer->get_height());
535
536 return video_buffer;
537}
#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.