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 754 of file IOManager.cpp.

756{
757 if (!container) {
759 "hook_video_container_to_buffer: null container");
760 return nullptr;
761 }
762
763 auto stream_container = std::dynamic_pointer_cast<Kakshya::StreamContainer>(container);
764
765 if (!stream_container) {
767 "hook_video_container_to_buffer: container is not a VideoStreamContainer");
768 return nullptr;
769 }
770
771 auto video_buffer = m_buffer_manager->create_graphics_buffer<Buffers::VideoContainerBuffer>(
773 stream_container);
774
775 {
776 std::unique_lock lock(m_buffers_mutex);
777 m_video_buffers[container] = video_buffer;
778 }
779
781 "Hooked VideoFileContainer to VideoContainerBuffer ({}x{})",
782 video_buffer->get_width(), video_buffer->get_height());
783
784 return video_buffer;
785}
#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.