mux_media/types/
config.rs1pub(crate) mod fields;
2pub(crate) mod new;
3mod to_json_args;
4
5#[allow(unused_imports)]
6use crate::TryFinalizeInit;
7use crate::{
8 AutoFlags, Chapters, Container, DefaultDispositions, ForcedDispositions, Input, IsDefault,
9 LangCode, LangMetadata, LogLevel, NameMetadata, Output, RetimingOptions, Streams, Target,
10};
11use std::collections::HashMap;
12
13#[derive(Clone, Debug, PartialEq)]
20#[non_exhaustive]
21pub struct Config {
22 pub input: Input,
23 pub output: Output,
24 pub locale: LangCode,
25 pub jobs: u8,
26 pub log_level: LogLevel,
27 pub exit_on_err: bool,
28 pub save_config: bool,
29 pub reencode: bool,
30 pub auto_flags: AutoFlags,
31 pub streams: Streams,
32 pub chapters: Chapters,
33 pub defaults: DefaultDispositions,
34 pub forceds: ForcedDispositions,
35 pub names: NameMetadata,
36 pub langs: LangMetadata,
37 pub retiming_options: RetimingOptions,
38 pub targets: Option<HashMap<Target, ConfigTarget>>,
39 pub container: Container,
40 pub is_output_constructed_from_input: bool,
41}
42
43#[derive(Clone, Debug, Default, PartialEq, IsDefault)]
45#[non_exhaustive]
46pub struct ConfigTarget {
47 pub streams: Option<Streams>,
48 pub chapters: Option<Chapters>,
49 pub defaults: Option<DefaultDispositions>,
50 pub forceds: Option<ForcedDispositions>,
51 pub names: Option<NameMetadata>,
52 pub langs: Option<LangMetadata>,
53}
54
55impl Config {
56 const JSON_NAME: &str = "mux-media.json";
57 const JOBS_DEFAULT: u8 = 1;
58}