Skip to main content

mux_media/
lib.rs

1macro_rules! err {
2    ( $($arg:tt)* ) => {
3        crate::MuxError::from(format!($($arg)*))
4    };
5}
6
7macro_rules! some_or {
8    ($x:expr, $or:expr) => {
9        match $x {
10            Some(x) => x,
11            None => $or,
12        }
13    };
14}
15
16mod functions;
17mod i18n;
18/// Field markers for [`Config`] and [`MediaInfo`].
19pub mod markers;
20mod run;
21mod traits;
22mod types;
23
24pub type Error = MuxError;
25pub type Result<T> = std::result::Result<T, MuxError>;
26
27pub use functions::{ensure_long_path_prefix, ensure_trailing_sep, mux};
28pub use i18n::Msg;
29pub use run::run;
30
31pub use traits::{
32    Field, ToJsonArgs, TryFinalizeInit,
33    lazy_fields::{LazyField, LazyPathField},
34};
35
36pub use types::{
37    arc_path_buf::ArcPathBuf,
38    auto_flags::AutoFlags,
39    chapters::Chapters,
40    char_encoding::CharEncoding,
41    cli_arg::CliArg,
42    codec_id::CodecId,
43    config::{Config, ConfigTarget},
44    container::Container,
45    dispositions::{DefaultDispositions, Dispositions, ForcedDispositions, ty::DispositionType},
46    duration::Duration,
47    extension::Extension,
48    globset_pattern::GlobSetPattern,
49    input::{Input, InputFileType, iters::MediaGroupedByStem},
50    lang::{Lang, LangCode},
51    log_level::LogLevel,
52    media_info::{
53        MediaInfo,
54        cache::{CacheMI, CacheMIOfFile, CacheMIOfGroup, CacheState},
55    },
56    media_number::MediaNumber,
57    metadata::{LangMetadata, Metadata, NameMetadata},
58    mux_error::{MuxError, kind::MuxErrorKind},
59    mux_logger::MuxLogger,
60    output::Output,
61    range::RangeUsize,
62    retiming::options::{RetimingOptions, RetimingOptionsParts},
63    stream::{
64        Stream,
65        order::{StreamsOrder, StreamsOrderItem},
66        streams::Streams,
67        ty::StreamType,
68    },
69    target::Target,
70    value::Value,
71};
72
73static VERSION: &str = concat!(env!("CARGO_PKG_NAME"), " v", env!("CARGO_PKG_VERSION"));
74
75use ffmpeg_next as ffmpeg;
76use is_default::IsDefault;
77
78use functions::add_copy_stream;
79use types::{
80    helpers,
81    retiming::{RetimedStream, Retiming, RetimingChapter},
82    stream::supported::StreamsSupported,
83};