|
MayaFlux 1.0.0
Digital-First Multimedia Processing Framework
|
Abstract interface for a live camera backend hosted by IOManager. More...
#include <CameraSource.hpp>
Inheritance diagram for MayaFlux::IO::CameraSource:
Collaboration diagram for MayaFlux::IO::CameraSource:Public Member Functions | |
| virtual void | close ()=0 |
| Release device, decode, and scratch resources. | |
| virtual std::shared_ptr< Kakshya::CameraContainer > | create_container () const =0 |
| Create a CameraContainer sized to the negotiated device resolution. | |
| virtual std::vector< CameraConfig > | enumerate_configs () const =0 |
| Discover ready-to-open camera configurations without starting capture. | |
| virtual double | frame_rate () const =0 |
| Negotiated frame rate in fps. | |
| virtual uint32_t | height () const =0 |
| Negotiated output height in pixels. | |
| virtual bool | is_open () const =0 |
| True if the device is open and ready to deliver frames. | |
| virtual const std::string & | last_error () const =0 |
| Last error string, empty if no error. | |
| virtual bool | open (const CameraConfig &config)=0 |
| Open a configuration returned by enumerate_configs(). | |
| virtual std::vector< CameraMode > | preset_modes () const =0 |
| Capture modes this source offers as defaults, ordered from safest to most demanding. | |
| virtual bool | pull_frame (const std::shared_ptr< Kakshya::CameraContainer > &container)=0 |
| Produce one frame into the container. | |
| virtual void | pull_frame_all ()=0 |
| Signal the source to pull one frame. | |
| virtual void | set_container (const std::shared_ptr< Kakshya::CameraContainer > &container)=0 |
| Store a weak reference to the container for IOService dispatch. | |
| virtual void | setup_io_service (uint64_t reader_id)=0 |
| Wire this source into an IOService under the given reader_id. | |
| virtual uint32_t | width () const =0 |
| Negotiated output width in pixels. | |
| virtual | ~CameraSource ()=default |
Abstract interface for a live camera backend hosted by IOManager.
Enumerates configurations, opens a selected device, then provides negotiated parameters, frame delivery, and IOService wiring.
A camera source is a live, unbounded stream: no ring buffer, no seek, no batch decode. One frame is pulled per process cycle, demand-driven by CameraContainer::process_default(), never pushed speculatively ahead of the consumer.
Two integration paths apply to any implementation:
FFmpegCameraReader is the first concrete implementation.
Definition at line 81 of file CameraSource.hpp.