MayaFlux 1.0.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
MayaFlux::IO Namespace Reference

Namespaces

namespace  Detail
 

Classes

class  AssimpModelWriter
 ModelWriter implementation backed by Assimp::Exporter. More...
 
class  AudioEncodeContext
 RAII owner of one audio stream's encoder, resampler, and sample FIFO. More...
 
class  AudioStreamContext
 RAII owner of one audio stream's codec and resampler state. More...
 
struct  CameraConfig
 Configuration for opening a camera device via FFmpeg. More...
 
struct  CameraMode
 A requested capture mode offered by a source, for a chooser. More...
 
class  CameraSource
 Abstract interface for a live camera backend hosted by IOManager. More...
 
class  CompositeReader
 Typed FileReader boundary for schema-bearing Composite data. More...
 
class  CompositeWriter
 Typed writer contract for schema-bearing Composite files. More...
 
class  DelimitedTextReader
 Incremental CSV and TSV reader producing CompositeArray values. More...
 
class  DelimitedTextWriter
 Streaming CSV and TSV writer for Composite arrays. More...
 
class  EXRWriter
 ImageWriter implementation backed by tinyexr. More...
 
class  FFmpegCameraReader
 Platform-specific FFmpeg input format string for camera devices. More...
 
class  FFmpegDemuxContext
 RAII owner of a single AVFormatContext and associated demux state. More...
 
class  FFmpegMuxContext
 RAII owner of a single AVFormatContext on the write path. More...
 
struct  FileMetadata
 Generic metadata structure for any file type. More...
 
class  FileReader
 Abstract interface for reading various file formats into containers. More...
 
class  FileReaderRegistry
 Registry for file reader implementations. More...
 
struct  FileRegion
 Generic region descriptor for any file type. More...
 
class  FileWriter
 Abstract base class for file writing operations. More...
 
class  ImageReader
 File reader for image formats (PNG, JPG, BMP, TGA, etc.) More...
 
struct  ImageWriteOptions
 Configuration for image writing. More...
 
class  ImageWriter
 Abstract base for image format writers. More...
 
class  IOManager
 Optional orchestration layer for IO reader lifetime and IOService dispatch. More...
 
class  JSONSerializer
 Converts arbitrary C++ types to/from JSON strings and disk files. More...
 
class  ModelReader
 Assimp-backed loader for 3D model files. More...
 
struct  ModelWriteOptions
 Configuration for model writing. More...
 
class  ModelWriter
 Abstract base for 3D model format writers. More...
 
class  RelaxationGridCapture
 Records time-sampled cell state from a RelaxationGridBuffer into an Alembic archive. More...
 
struct  Serializer
 Extension point for JSONSerializer. More...
 
struct  Serializer< T >
 JSONSerializer extension for GLM vector and matrix types. More...
 
class  SoundFileReader
 FFmpeg-based audio file reader for MayaFlux. More...
 
class  SoundFileWriter
 Asynchronous audio file encoder with a lock-free work queue. More...
 
struct  SpatialAttribute
 One named, scoped channel of already-typed values. More...
 
class  SpatialCache
 Alembic-backed writer for time-sampled spatial entity state: particle systems, point clouds, inferred topology, and any other positions-plus-named-attributes-over-time source. More...
 
class  SpatialCapture
 Records time-sampled spatial data from one or more sources into a single Alembic archive. More...
 
struct  SpatialCaptureSource
 One named stream a SpatialCapture (or save_spatial_snapshot) writes into a SpatialCache each tick. More...
 
class  SpatialReader
 Reads back the time-sampled streams a SpatialCache wrote, in the same SpatialSample format it writes. More...
 
struct  SpatialSample
 One sample's worth of data for one named stream. More...
 
class  STBImageWriter
 ImageWriter implementation backed by stb_image_write. More...
 
class  TextFileWriter
 Simple text file writer for logs and text data. More...
 
class  VDBWriter
 VolumeWriter implementation backed by tinyvdb. More...
 
class  VideoEncodeContext
 RAII owner of one video stream's encoder and pixel-format converter on the write path. More...
 
class  VideoFileReader
 Streaming FFmpeg-based video file reader with background decode. More...
 
class  VideoFileWriter
 Asynchronous video file encoder with a lock-free work queue. More...
 
struct  VideoLoadConfig
 
class  VideoStreamContext
 RAII owner of one video stream's codec and pixel-format scaler state. More...
 
class  VolumeCapture
 Records a numbered .vdb sequence from a running volume. More...
 
class  VolumeReader
 tinyvdb-backed loader for volumetric grid files. More...
 
struct  VolumeReadOptions
 Configuration for volume reading. More...
 
struct  VolumeWriteOptions
 Configuration for volume writing. More...
 
class  VolumeWriter
 Abstract base for volumetric format writers. More...
 
class  WriterRegistry
 Singleton registry dispatching single-shot writes by file extension. More...
 

Typedefs

using FileReaderFactory = std::function< std::unique_ptr< FileReader >()>
 
using ImageData = Kakshya::ImageData
 
using ImageWriterFactory = WriterFactory< ImageWriter >
 
using ImageWriterRegistry = WriterRegistry< ImageWriter >
 Singleton registry dispatching image writes by file extension.
 
using ModelWriterFactory = WriterFactory< ModelWriter >
 
using ModelWriterRegistry = WriterRegistry< ModelWriter >
 Singleton registry dispatching model writes by file extension.
 
using TextureResolver = std::function< std::shared_ptr< Core::VKImage >(const std::string &)>
 Callable that maps a raw material texture path to a GPU image.
 
using VideoLoadResult = std::pair< std::shared_ptr< Kakshya::VideoFileContainer >, std::shared_ptr< Kakshya::SoundFileContainer > >
 Result of load_video(path, config): the video container, then its audio.
 
using VolumeWriteHook = std::function< bool(Kakshya::VolumeData &&, const std::string &, const VolumeWriteOptions &)>
 Where a captured frame goes.
 
using VolumeWriterFactory = WriterFactory< VolumeWriter >
 
using VolumeWriterRegistry = WriterRegistry< VolumeWriter >
 Singleton registry dispatching volume writes by file extension.
 
template<typename Writer >
using WriterFactory = std::function< std::unique_ptr< Writer >()>
 

Enumerations

enum class  AudioReadOptions : uint32_t {
  NONE = 0 , NORMALIZE = 1 << 0 , CONVERT_TO_MONO = 1 << 2 , DEINTERLEAVE = 1 << 3 ,
  ALL = 0xFFFFFFFF
}
 Audio-specific reading options. More...
 
enum class  FileReadOptions : uint32_t {
  NONE = 0 , EXTRACT_METADATA = 1 << 0 , EXTRACT_REGIONS = 1 << 1 , LAZY_LOAD = 1 << 2 ,
  STREAMING = 1 << 3 , HIGH_PRECISION = 1 << 4 , VERIFY_INTEGRITY = 1 << 5 , DECOMPRESS = 1 << 6 ,
  PARSE_STRUCTURE = 1 << 7 , ALL = 0xFFFFFFFF
}
 Generic options for file reading behavior. More...
 
enum class  FileWriteOptions : uint32_t {
  NONE = 0 , APPEND = 1 << 0 , CREATE = 1 << 1 , TRUNCATE = 1 << 2 ,
  SYNC = 1 << 3 , BUFFER = 1 << 4 , ALL = 0xFFFFFFFF
}
 
enum class  Keys : int16_t {
  Space = 32 , Apostrophe = 39 , Comma = 44 , Minus = 45 ,
  Period = 46 , Slash = 47 , N0 = 48 , N1 ,
  N2 , N3 , N4 , N5 ,
  N6 , N7 , N8 , N9 ,
  Semicolon = 59 , Equal = 61 , A = 65 , B ,
  C , D , E , F ,
  G , H , I , J ,
  K , L , M , N ,
  O , P , Q , R ,
  S , T , U , V ,
  W , X , Y , Z ,
  LeftBracket = 91 , Backslash = 92 , RightBracket = 93 , GraveAccent = 96 ,
  Escape = 256 , Enter = 257 , Tab = 258 , Backspace = 259 ,
  Insert = 260 , Delete = 261 , Right = 262 , Left = 263 ,
  Down = 264 , Up = 265 , PageUp = 266 , PageDown = 267 ,
  Home = 268 , End = 269 , CapsLock = 280 , ScrollLock = 281 ,
  NumLock = 282 , PrintScreen = 283 , Pause = 284 , F1 = 290 ,
  F2 , F3 , F4 , F5 ,
  F6 , F7 , F8 , F9 ,
  F10 , F11 , F12 , F13 ,
  F14 , F15 , F16 , F17 ,
  F18 , F19 , F20 , F21 ,
  F22 , F23 , F24 , F25 ,
  KP0 = 320 , KP1 , KP2 , KP3 ,
  KP4 , KP5 , KP6 , KP7 ,
  KP8 , KP9 , KPDecimal = 330 , KPDivide = 331 ,
  KPMultiply = 332 , KPSubtract = 333 , KPAdd = 334 , KPEnter = 335 ,
  KPEqual = 336 , LShift = 340 , LCtrl = 341 , LAlt = 342 ,
  LSuper = 343 , RShift = 344 , RCtrl = 345 , RAlt = 346 ,
  RSuper = 347 , Menu = 348 , Unknown = -1
}
 
enum class  MouseButtons : int8_t {
  Left = 0 , Right = 1 , Middle = 2 , Button4 = 3 ,
  Button5 = 4 , Button6 = 5 , Button7 = 6 , Button8 = 7 ,
  Unknown = -1
}
 Enumeration for mouse buttons. More...
 
enum class  SpatialScope : uint8_t { Constant , Uniform , Varying }
 How many elements one attribute contributes per sample. More...
 
enum class  VideoReadOptions : uint32_t { NONE = 0 , EXTRACT_AUDIO = 1 << 0 , ALL = 0xFFFFFFFF }
 Video-specific reading options. More...
 

Functions

auto all_key_names () noexcept
 Returns a container of all key names.
 
std::vector< std::string > all_key_names_lowercase () noexcept
 Returns a vector of all key names in lowercase.
 
auto all_keys () noexcept
 Returns a container of all Keys enum values.
 
std::optional< Kakshya::MeshData > download_compute_mesh (const std::shared_ptr< Buffers::ComputeMeshBuffer > &buffer)
 Download a ComputeMeshBuffer's current live geometry to CPU.
 
std::optional< ImageData > download_image (const std::shared_ptr< Core::VKImage > &image)
 Download pixel data from a GPU-resident VKImage into host ImageData.
 
std::optional< ImageData > download_texture_buffer (const std::shared_ptr< Buffers::TextureBuffer > &buffer)
 Download a TextureBuffer's GPU texture into host ImageData.
 
std::optional< Kakshya::VolumeData > download_volume (const std::shared_ptr< Buffers::VolumeGridBuffer > &volume, const std::vector< std::string > &field_names={})
 Download named fields from a GPU-resident volume into host VolumeData.
 
std::optional< Keys > from_char (char c) noexcept
 Converts a character to the corresponding Keys enum value.
 
std::optional< Keys > from_string (std::string_view str) noexcept
 Converts a string to the corresponding Keys enum value.
 
bool is_function_key (Keys key) noexcept
 Checks if a key is a function key (e.g., F1-F25).
 
bool is_keypad_key (Keys key) noexcept
 Checks if a key is a keypad key.
 
bool is_modifier (Keys key) noexcept
 Checks if a key is a modifier key (e.g., Shift, Ctrl, Alt).
 
bool is_printable (Keys key) noexcept
 Checks if a key is a printable character.
 
size_t key_count () noexcept
 Returns the total number of keys.
 
SpatialCaptureSource make_network_geometry_source (std::string stream_name, std::shared_ptr< Buffers::NetworkGeometryBuffer > buffer)
 Build a SpatialCaptureSource that packs a NetworkGeometryBuffer's driving network through write_network_geometry_buffer_sample() each tick.
 
AudioReadOptions operator& (AudioReadOptions a, AudioReadOptions b)
 
FileReadOptions operator& (FileReadOptions a, FileReadOptions b)
 
FileWriteOptions operator& (FileWriteOptions a, FileWriteOptions b)
 
VideoReadOptions operator& (VideoReadOptions a, VideoReadOptions b)
 
AudioReadOptions operator| (AudioReadOptions a, AudioReadOptions b)
 
FileReadOptions operator| (FileReadOptions a, FileReadOptions b)
 
FileWriteOptions operator| (FileWriteOptions a, FileWriteOptions b)
 
VideoReadOptions operator| (VideoReadOptions a, VideoReadOptions b)
 
bool relaxation_grid_positions (const std::shared_ptr< Buffers::RelaxationGridBuffer > &grid, float extent, std::vector< glm::vec3 > &positions, std::vector< uint64_t > &ids)
 Generate the fixed grid positions and cell ids a RelaxationGridBuffer's cells occupy, for feeding SpatialCache::write() with PrimitiveTopology::POINT_LIST.
 
std::string resolve_sequence_path (std::string_view pattern, uint64_t frame)
 Substitute a frame index into a numbered output pattern.
 
std::string resolve_write_path (const std::string &filepath, std::string_view default_directory=Config::OUT_DIR)
 Resolve a writable path against the configured output directory.
 
bool save_image (const std::shared_ptr< Core::VKImage > &image, const std::string &filepath, const ImageWriteOptions &options={})
 Save a VKImage directly to disk via the ImageWriter registry.
 
bool save_mesh (const std::shared_ptr< Buffers::ComputeMeshBuffer > &buffer, const std::string &filepath, const ModelWriteOptions &options={})
 Save a ComputeMeshBuffer's current live geometry to disk.
 
bool save_mesh (const std::shared_ptr< Buffers::MeshBuffer > &buffer, const std::string &filepath, const ModelWriteOptions &options={})
 Save a MeshBuffer's current mesh data to disk via ModelWriterRegistry.
 
bool save_mesh (const std::shared_ptr< Buffers::MeshNetworkBuffer > &network_buffer, const std::string &filepath, const ModelWriteOptions &options={})
 Save a MeshNetworkBuffer's current slots to disk as one multi-mesh file, one aiMesh per slot.
 
bool save_mesh (const std::shared_ptr< Nodes::GpuSync::MeshWriterNode > &node, const std::string &filepath, const ModelWriteOptions &options={})
 Save a bare MeshWriterNode's current vertices/indices to disk.
 
bool save_mesh (const std::shared_ptr< Nodes::Network::MeshNetwork > &network, const std::string &filepath, const ModelWriteOptions &options={})
 Save a MeshNetwork's current slots to disk as one multi-mesh file.
 
bool save_mesh_snapshot (const std::shared_ptr< Buffers::ComputeMeshBuffer > &buffer, const std::string &path_pattern, const ModelWriteOptions &options={})
 Save a ComputeMeshBuffer with a millisecond epoch timestamp spliced into the path.
 
bool save_mesh_snapshot (const std::shared_ptr< Buffers::MeshBuffer > &buffer, const std::string &path_pattern, const ModelWriteOptions &options={})
 Save with a millisecond epoch timestamp spliced into the path.
 
bool save_mesh_snapshot (const std::shared_ptr< Buffers::MeshNetworkBuffer > &network_buffer, const std::string &path_pattern, const ModelWriteOptions &options={})
 Save a MeshNetworkBuffer with a millisecond epoch timestamp spliced into the path.
 
bool save_mesh_snapshot (const std::shared_ptr< Nodes::GpuSync::MeshWriterNode > &node, const std::string &path_pattern, const ModelWriteOptions &options={})
 Save a bare MeshWriterNode with a millisecond epoch timestamp spliced into the path.
 
bool save_mesh_snapshot (const std::shared_ptr< Nodes::Network::MeshNetwork > &network, const std::string &path_pattern, const ModelWriteOptions &options={})
 Save a MeshNetwork with a millisecond epoch timestamp spliced into the path.
 
bool save_spatial_snapshot (const std::string &path_pattern, const std::vector< SpatialCaptureSource > &sources)
 Open a fresh SpatialCache, write every source once, then close it.
 
bool save_text_buffer (const std::shared_ptr< Buffers::TextBuffer > &buffer, const std::string &filepath, const ImageWriteOptions &options={})
 Save a TextBuffer's rendered glyph texture to disk.
 
bool save_texture_buffer (const std::shared_ptr< Buffers::TextureBuffer > &buffer, const std::string &filepath, const ImageWriteOptions &options={})
 Save a TextureBuffer's current GPU state to disk.
 
bool save_volume (const Kakshya::VolumeData &data, const std::string &filepath, const VolumeWriteOptions &options={})
 Save already-downloaded VolumeData to disk via the registry.
 
bool save_volume (const std::shared_ptr< Buffers::VolumeGridBuffer > &volume, const std::string &filepath, const VolumeWriteOptions &options={}, const std::vector< std::string > &field_names={})
 Save a volume directly to disk via the VolumeWriter registry.
 
std::optional< Portal::Graphics::ImageFormat > to_image_format (int av_pixel_format)
 Map an AVPixelFormat to the Portal ImageFormat backing it.
 
std::string to_lowercase_string (Keys key) noexcept
 Converts a Keys enum value to its lowercase string representation.
 
std::string_view to_string (Keys key) noexcept
 Converts a Keys enum value to its string representation.
 
bool upload_volume (const Kakshya::VolumeData &data, const std::shared_ptr< Buffers::VolumeGridBuffer > &volume)
 Upload every field of a host VolumeData into a GPU-resident volume.
 
bool write_network_geometry_buffer_sample (SpatialCache &cache, const std::string &stream_name, const std::shared_ptr< Buffers::NetworkGeometryBuffer > &buffer)
 Pack a NetworkGeometryBuffer's driving network into one or more SpatialCache streams, choosing CPU or GPU readback depending on whether the network's CPU-side vertex state is still authoritative.
 
bool write_operator_sample (SpatialCache &cache, const std::string &stream_name, const Nodes::Network::GraphicsOperator *op)
 Pack one GraphicsOperator's current vertex state into a SpatialCache stream, as a Points or Curves sample depending on what the operator declares.
 

Variables

static bool g_stb_simd_logged