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 options;
19pub mod packet;
20pub mod picture;
21pub mod rational;
22pub mod registry;
23pub mod stream;
24pub mod subtitle;
25pub mod time;
26
27pub use capabilities::{CodecCapabilities, CodecPreferences, DEFAULT_PRIORITY};
28pub use error::{Error, Result};
29pub use execution::ExecutionContext;
30pub use filter::{FilterContext, PortParams, PortSpec, StreamFilter};
31pub use format::{
32    ChannelLayout, ChannelPosition, MediaType, ParseChannelLayoutError, PixelFormat, SampleFormat,
33};
34pub use frame::{AudioFrame, Frame, VideoFrame, VideoPlane};
35pub use limits::DecoderLimits;
36pub use options::{
37    parse_options, CodecOptions, CodecOptionsStruct, OptionField, OptionKind, OptionValue,
38};
39pub use packet::Packet;
40pub use picture::{AttachedPicture, PictureType};
41pub use rational::Rational;
42pub use registry::{
43    CodecImplementation, CodecInfo, CodecRegistry, ContainerProbeFn, ContainerRegistry, Decoder,
44    DecoderFactory, Demuxer, Encoder, EncoderFactory, FilterFactory, FilterRegistry, Muxer,
45    OpenDemuxerFn, OpenMuxerFn, OpenSourceFn, ProbeData, ProbeScore, ReadSeek, RuntimeContext,
46    SourceRegistry, WriteSeek, MAX_PROBE_SCORE, PROBE_SCORE_EXTENSION,
47};
48pub use stream::{
49    CodecId, CodecParameters, CodecResolver, CodecTag, Confidence, NullCodecResolver, ProbeContext,
50    ProbeFn, StreamInfo,
51};
52pub use subtitle::{CuePosition, Segment, SubtitleCue, SubtitleStyle, TextAlign};
53pub use time::{TimeBase, Timestamp};