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

◆ hook_camera_to_buffer()

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

Wire a CameraContainer to the graphics buffer system.

Creates a VideoContainerBuffer via BufferManager with GRAPHICS_BACKEND token, stores it keyed by container pointer, and returns it. Identical to hook_video_container_to_buffer() but accepts CameraContainer.

Parameters
containerOpened CameraContainer from open_camera().
Returns
Created VideoContainerBuffer, or nullptr on failure.

Definition at line 830 of file IOManager.cpp.

832{
833 if (!container) {
835 "hook_camera_to_buffer: null container");
836 return nullptr;
837 }
838
839 auto stream_container = std::dynamic_pointer_cast<Kakshya::StreamContainer>(container);
840 if (!stream_container) {
842 "hook_camera_to_buffer: container is not a StreamContainer");
843 return nullptr;
844 }
845
846 auto video_buffer = m_buffer_manager->create_graphics_buffer<Buffers::VideoContainerBuffer>(
848 stream_container);
849
850 if (!video_buffer) {
852 "hook_camera_to_buffer: failed to create VideoContainerBuffer");
853 return nullptr;
854 }
855
856 {
857 std::unique_lock lock(m_camera_mutex);
858 m_camera_buffers[container] = video_buffer;
859 }
860
862 "Hooked CameraContainer to VideoContainerBuffer ({}x{})",
863 video_buffer->get_width(), video_buffer->get_height());
864
865 return video_buffer;
866}
#define MF_INFO(comp, ctx,...)
#define MF_ERROR(comp, ctx,...)
std::unordered_map< std::shared_ptr< Kakshya::CameraContainer >, std::shared_ptr< Buffers::VideoContainerBuffer > > m_camera_buffers
std::shared_mutex m_camera_mutex
std::shared_ptr< Buffers::BufferManager > m_buffer_manager
@ 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_camera_buffers, m_camera_mutex, MF_ERROR, MF_INFO, and MayaFlux::Journal::Runtime.