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    BytesSource, CodecImplementation, CodecInfo, CodecRegistry, ContainerProbeFn,
44    ContainerRegistry, Decoder, DecoderFactory, Demuxer, Encoder, EncoderFactory, FilterFactory,
45    FilterRegistry, FrameSource, Muxer, OpenBytesFn, OpenDemuxerFn, OpenFramesFn, OpenMuxerFn,
46    OpenPacketsFn, PacketSource, ProbeData, ProbeScore, ReadSeek, RuntimeContext, SourceOutput,
47    SourceRegistry, WriteSeek, MAX_PROBE_SCORE, PROBE_SCORE_EXTENSION,
48};
49pub use stream::{
50    CodecId, CodecParameters, CodecResolver, CodecTag, Confidence, NullCodecResolver, ProbeContext,
51    ProbeFn, StreamInfo,
52};
53pub use subtitle::{CuePosition, Segment, SubtitleCue, SubtitleStyle, TextAlign};
54pub use time::{TimeBase, Timestamp};