#![no_std]
#![forbid(unsafe_code)]
extern crate alloc;
whereat::define_at_crate_info!();
mod capabilities;
mod cost;
mod detect;
mod error;
mod extensions;
mod format;
pub mod gainmap;
pub mod helpers;
pub mod icc;
mod info;
mod limits;
mod metadata;
mod negotiate;
mod orientation;
mod output;
mod policy;
mod sink;
mod traits;
pub use extensions::Extensions;
pub use format::{ImageFormat, ImageFormatDefinition, ImageFormatRegistry};
pub use gainmap::{
GainMapChannel, GainMapDirection, GainMapInfo, GainMapParams, GainMapPresence,
ISO_21496_1_PRIMARY_APP2_BODY, ISO_21496_1_URN, Iso21496Format,
};
#[allow(deprecated)]
pub use icc::icc_extract_cicp;
pub use info::{
Cicp, ContentLightLevel, ImageInfo, ImageSequence, MasteringDisplay, Resolution,
ResolutionUnit, SourceColor, Supplements,
};
pub use limits::{LimitExceeded, ResourceLimits, ThreadingPolicy};
pub use metadata::Metadata;
pub use orientation::{Orientation, OrientationHint};
pub use output::{AnimationFrame, OwnedAnimationFrame};
pub use zenpixels::ColorAuthority;
pub use capabilities::UnsupportedOperation;
pub use detect::SourceEncodingDetails;
pub use error::{CodecErrorExt, find_cause};
pub use traits::Unsupported;
pub use almost_enough::StopToken;
pub use enough;
pub use enough::Unstoppable;
pub(crate) use capabilities::{DecodeCapabilities, EncodeCapabilities};
pub(crate) use cost::OutputInfo;
pub(crate) use output::{DecodeOutput, EncodeOutput};
pub(crate) use policy::{DecodePolicy, EncodePolicy};
pub(crate) use sink::DecodeRowSink;
pub mod encode {
pub use crate::traits::{AnimationFrameEncoder, EncodeJob, Encoder, EncoderConfig};
pub use crate::traits::{
BoxedError, DynAnimationFrameEncoder, DynEncodeJob, DynEncoder, DynEncoderConfig,
};
pub use crate::capabilities::EncodeCapabilities;
pub use crate::negotiate::best_encode_format;
pub use crate::output::EncodeOutput;
pub use crate::policy::EncodePolicy;
}
pub mod decode {
pub use crate::traits::{
AnimationFrameDecoder, Decode, DecodeJob, DecoderConfig, StreamingDecode,
};
pub use crate::traits::{
BoxedError, DynAnimationFrameDecoder, DynDecodeJob, DynDecoder, DynDecoderConfig,
DynStreamingDecoder,
};
pub use crate::capabilities::DecodeCapabilities;
pub use crate::cost::OutputInfo;
pub use crate::output::{AnimationFrame, DecodeOutput, OwnedAnimationFrame};
pub use crate::policy::DecodePolicy;
pub use crate::sink::{DecodeRowSink, SinkError};
pub use crate::negotiate::{is_format_available, negotiate_pixel_format};
pub use crate::detect::SourceEncodingDetails;
pub use crate::info::{EmbeddedMetadata, SourceColor};
}