MayaFlux 0.2.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 451 of file IOManager.cpp.

453{
454 if (!container) {
456 "hook_camera_to_buffer: null container");
457 return nullptr;
458 }
459
460 auto stream_container = std::dynamic_pointer_cast<Kakshya::StreamContainer>(container);
461 if (!stream_container) {
463 "hook_camera_to_buffer: container is not a StreamContainer");
464 return nullptr;
465 }
466
467 auto video_buffer = m_buffer_manager->create_graphics_buffer<Buffers::VideoContainerBuffer>(
469 stream_container);
470
471 if (!video_buffer) {
473 "hook_camera_to_buffer: failed to create VideoContainerBuffer");
474 return nullptr;
475 }
476
477 {
478 std::unique_lock lock(m_camera_mutex);
479 m_camera_buffers[container] = video_buffer;
480 }
481
483 "Hooked CameraContainer to VideoContainerBuffer ({}x{})",
484 video_buffer->get_width(), video_buffer->get_height());
485
486 return video_buffer;
487}
#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.