Skip to main content

Module processors

Module processors 

Source
Expand description

Content-processor implementations that derive searchability at ingest. The model-free TextProcessor lives in this file (it is the framework reference); the heavier ImageProcessor (EXIF time/place → the timeline/map facets) and WavProcessor (STFT spectral summary) live in processors as their own units (§11: split as the library grows). Content processors — ingest derives searchability. Each processor turns an asset’s bytes into the derived, searchable representations + descriptor facets (+ flags) that fold into its container, so the original becomes findable by meaning.

The framework itself — the Processor trait, ProcessorOutput, and the model-free TextProcessor — lives in the parent module. This submodule holds the heavier, self-contained processors and the dispatcher that picks one by media type:

  • ImageProcessor — EXIF/PNG metadata → timeline + map facets (model-free).
  • WavProcessor — WAV → duration + dominant-frequency, via the project’s STFT.

Plug-in points (honest gaps, not stubs): what an image depicts / OCR needs a vision model, and a transcript needs an ASR model. Both are new Processor implementations to register here when the qualia-vision / qualia-audio model engines exist — the dispatcher already routes by media type, so they slot in without touching callers.

Re-exports§

pub use audio::AudioSpectralSummary;
pub use audio::WavProcessor;
pub use image::ImageMetadata;
pub use image::ImageProcessor;

Modules§

audio
WavProcessor — derive searchability from an audio file by composing the project’s own DSP (crate::audio), not a bolt-on library.
image
ImageProcessor — derive searchability from a photo’s own embedded metadata (EXIF / PNG chunks). Model-free and deterministic: it reads what the camera already wrote into the file.

Functions§

processor_for
Pick the processor that best handles media_type, or None if no registered processor claims it (the caller can fall back to storing the asset with no derived facets). Order matters only where handles overlaps; here the media-type families are disjoint.
supported_media_types
The media types a registered processor can derive searchability from — for callers that want to advertise what ingest understands.