Skip to main content

Crate oxideav_core

Crate oxideav_core 

Source
Expand description

Core types and registries for the oxideav framework.

This crate is the dependency-light foundation: primitive types (timestamps, packets, frames, media formats) plus the registries every sibling crate registers itself into. The aggregate RuntimeContext bundles all four registries (codec / container / source / filter) into a single value that consumers pass around.

§Resolution order

Every registry lookup that can have several candidates ranks them by one rule, so the winner depends only on the registered claims and the input — never on hash-map iteration order:

  1. evidence, descending — probe score (ContainerRegistry::probe_input), probe confidence (CodecRegistry::resolve_tag_ref; unprobed claims count as 1.0), or matched prefix length (CodecRegistry::resolve_payload_magic_ref);
  2. resolution priority, ascending — lower is preferred, default DEFAULT_PRIORITY; set with ContainerRegistry::register_probe_with_priority, ContainerRegistry::register_extension_with_priority or CodecInfo::with_resolution_priority;
  3. registration order — earlier wins (extension hints keep their historical most-recent-wins contract at equal priority).

The ranked lists are observable via ContainerRegistry::probe_candidates, ContainerRegistry::extension_candidates, CodecRegistry::resolve_tag_candidates and CodecRegistry::resolve_payload_magic_candidates.

Re-exports§

pub use capabilities::CodecCapabilities;
pub use capabilities::DEFAULT_PRIORITY;
pub use engine::EngineProbeFn;
pub use engine::HwCodecCaps;
pub use engine::HwDeviceInfo;
pub use error::Error;
pub use error::Result;
pub use execution::ExecutionContext;
pub use filter::FilterContext;
pub use filter::PortParams;
pub use filter::PortSpec;
pub use filter::StreamFilter;
pub use format::ChannelLayout;
pub use format::ChannelPosition;
pub use format::MediaType;
pub use format::ParseChannelLayoutError;
pub use format::PixelFormat;
pub use format::SampleFormat;
pub use frame::AudioFrame;
pub use frame::Frame;
pub use frame::VideoFrame;
pub use frame::VideoPlane;
pub use layer::LayerIdentity;
pub use layer::LayerInfo;
pub use limits::DecoderLimits;
pub use metadata::Attachment;
pub use metadata::Chapter;
pub use options::parse_options;
pub use options::CodecOptions;
pub use options::CodecOptionsStruct;
pub use options::OptionField;
pub use options::OptionKind;
pub use options::OptionValue;
pub use packet::Packet;
pub use picture::AttachedPicture;
pub use picture::PictureType;
pub use rational::Rational;
pub use registry::BytesSource;
pub use registry::CodecImplementation;
pub use registry::CodecInfo;
pub use registry::CodecRegistry;
pub use registry::ContainerProbeFn;
pub use registry::ContainerRegistry;
pub use registry::Decoder;
pub use registry::DecoderFactory;
pub use registry::Demuxer;
pub use registry::Encoder;
pub use registry::EncoderFactory;
pub use registry::ExtensionCandidate;
pub use registry::FilterFactory;
pub use registry::FilterRegistry;
pub use registry::FrameSource;
pub use registry::MultiTitleSource;
pub use registry::Muxer;
pub use registry::OpenBytesFn;
pub use registry::OpenDemuxerFn;
pub use registry::OpenFramesFn;
pub use registry::OpenMultiTitleFn;
pub use registry::OpenMuxerFn;
pub use registry::OpenPacketsFn;
pub use registry::PacketSource;
pub use registry::PayloadMagicCandidate;
pub use registry::ProbeCandidate;
pub use registry::ProbeData;
pub use registry::ProbeScore;
pub use registry::ReadSeek;
pub use registry::RuntimeContext;
pub use registry::SourceOutput;
pub use registry::SourceRegistry;
pub use registry::TagCandidate;
pub use registry::WriteSeek;
pub use registry::MAX_PROBE_SCORE;
pub use registry::PROBE_SCORE_EXTENSION;
pub use signal::ColorPrimaries;
pub use signal::ColorRange;
pub use signal::ColorSignal;
pub use signal::MatrixCoefficients;
pub use signal::TransferCharacteristics;
pub use stream::CodecId;
pub use stream::CodecParameters;
pub use stream::CodecResolver;
pub use stream::CodecTag;
pub use stream::Confidence;
pub use stream::NullCodecResolver;
pub use stream::ProbeContext;
pub use stream::ProbeFn;
pub use stream::StreamInfo;
pub use subtitle::CuePosition;
pub use subtitle::Segment;
pub use subtitle::SubtitleCue;
pub use subtitle::SubtitleStyle;
pub use subtitle::TextAlign;
pub use time::rescale;
pub use time::rescale_checked;
pub use time::rescale_rnd;
pub use time::Rounding;
pub use time::TimeBase;
pub use time::Timestamp;
pub use vector::DashPattern;
pub use vector::FillRule;
pub use vector::GradientStop;
pub use vector::Group;
pub use vector::ImageRef;
pub use vector::LineCap;
pub use vector::LineJoin;
pub use vector::LinearGradient;
pub use vector::MaskKind;
pub use vector::Node;
pub use vector::Paint;
pub use vector::Path;
pub use vector::PathCommand;
pub use vector::PathNode;
pub use vector::Point;
pub use vector::RadialGradient;
pub use vector::Rect;
pub use vector::Rgba;
pub use vector::SpreadMethod;
pub use vector::Stroke;
pub use vector::Transform2D;
pub use vector::VectorFrame;
pub use vector::ViewBox;

Modules§

arena
Refcounted arena pool for decoder frame allocations.
bits
Shared bit-level I/O — MSB-first and LSB-first readers and writers.
capabilities
Codec capability description.
engine
Per-codec hardware engine probing.
error
Shared error type for oxideav.
execution
Runtime hints passed from the executor to codecs and filters.
filter
Multi-stream filter model.
format
Media-type and sample/pixel format enumerations.
frame
Uncompressed audio and video frames.
layer
Layer / view identity for multi-layer and multi-view video.
limits
Decoder DoS-protection limits.
metadata
Structured container metadata.
options
Generic, schema-validated option bag for codec (and container) init.
packet
Compressed-data packet passed between demuxer → decoder and encoder → muxer.
picture
Attached picture metadata (cover art, artist photos, etc.).
rational
Rational number used for time bases and frame rates.
registry
Framework registries.
signal
Video colour-signal description: sample range plus the three coding-independent colour code points (colour primaries, transfer characteristics, matrix coefficients) of Rec. ITU-T H.273 | ISO/IEC 23091-2.
stream
Stream metadata shared between containers and codecs.
subtitle
Unified subtitle cue representation.
time
Time base and timestamp types.
vector
Vector graphics frame and primitive types.

Macros§

register
Declare the canonical sibling entry point.