Skip to main content

oxideav_core/
lib.rs

1//! Core types and registries for the oxideav framework.
2//!
3//! This crate is the dependency-light foundation: primitive types
4//! (timestamps, packets, frames, media formats) plus the registries
5//! every sibling crate registers itself into. The aggregate
6//! [`RuntimeContext`] bundles all four registries (codec / container /
7//! source / filter) into a single value that consumers pass around.
8
9pub mod arena;
10pub mod bits;
11pub mod capabilities;
12pub mod error;
13pub mod execution;
14pub mod filter;
15pub mod format;
16pub mod frame;
17pub mod limits;
18pub mod metadata;
19pub mod options;
20pub mod packet;
21pub mod picture;
22pub mod rational;
23pub mod registry;
24pub mod stream;
25pub mod subtitle;
26pub mod time;
27pub mod vector;
28
29pub use capabilities::{CodecCapabilities, DEFAULT_PRIORITY};
30pub use error::{Error, Result};
31pub use execution::ExecutionContext;
32pub use filter::{FilterContext, PortParams, PortSpec, StreamFilter};
33pub use format::{
34    ChannelLayout, ChannelPosition, MediaType, ParseChannelLayoutError, PixelFormat, SampleFormat,
35};
36pub use frame::{AudioFrame, Frame, VideoFrame, VideoPlane};
37pub use limits::DecoderLimits;
38pub use metadata::{Attachment, Chapter};
39pub use options::{
40    parse_options, CodecOptions, CodecOptionsStruct, OptionField, OptionKind, OptionValue,
41};
42pub use packet::Packet;
43pub use picture::{AttachedPicture, PictureType};
44pub use rational::Rational;
45pub use registry::{
46    BytesSource, CodecImplementation, CodecInfo, CodecRegistry, ContainerProbeFn,
47    ContainerRegistry, Decoder, DecoderFactory, Demuxer, Encoder, EncoderFactory, FilterFactory,
48    FilterRegistry, FrameSource, Muxer, OpenBytesFn, OpenDemuxerFn, OpenFramesFn, OpenMuxerFn,
49    OpenPacketsFn, PacketSource, ProbeData, ProbeScore, ReadSeek, Registrar, RuntimeContext,
50    SourceOutput, SourceRegistry, WriteSeek, MAX_PROBE_SCORE, PROBE_SCORE_EXTENSION, REGISTRARS,
51};
52pub use stream::{
53    CodecId, CodecParameters, CodecResolver, CodecTag, Confidence, NullCodecResolver, ProbeContext,
54    ProbeFn, StreamInfo,
55};
56pub use subtitle::{CuePosition, Segment, SubtitleCue, SubtitleStyle, TextAlign};
57pub use time::{TimeBase, Timestamp};
58pub use vector::{
59    DashPattern, FillRule, GradientStop, Group, ImageRef, LineCap, LineJoin, LinearGradient,
60    MaskKind, Node, Paint, Path, PathCommand, PathNode, Point, RadialGradient, Rect, Rgba,
61    SpreadMethod, Stroke, Transform2D, VectorFrame, ViewBox,
62};