Skip to content
Snippets Groups Projects
Verified Commit 703cf9c0 authored by Dorian Koch's avatar Dorian Koch
Browse files

Make preset parameter optional

parent 57050709
Branches
Tags 240926-1
No related merge requests found
Pipeline #6469 passed
......@@ -22,7 +22,7 @@ struct Args {
/// The preset of the lecture. Can be a toml file or a known course slug.
#[clap(short, long)]
preset: String,
preset: Option<String>,
#[cfg(feature = "mem_limit")]
/// The memory limit for external tools like ffmpeg.
......@@ -55,14 +55,16 @@ fn main() {
// process arguments
let directory = args.directory.canonicalize_utf8().unwrap();
let preset = Preset::find(&args.preset).unwrap();
let course = preset.course;
// let's see if we need to initialise the project
let project_path = directory.join("project.toml");
let mut project = if project_path.exists() {
toml::from_slice(&fs::read(&project_path).unwrap()).unwrap()
} else {
assert!(args.preset.is_some());
let preset = Preset::find(&args.preset.unwrap()).unwrap();
let course = preset.course;
let dirname = directory.file_name().unwrap();
let date =
parse_date(dirname).expect("Directory name is not in the expected format");
......@@ -112,6 +114,8 @@ fn main() {
stereo: args.stereo,
start: None,
end: None,
transcode_lowest: args.transcode.or(preset.transcode),
transcode_highest: args.transcode_start.unwrap_or(preset.transcode_start),
fast: Vec::new(),
questions: Vec::new(),
metadata: None
......@@ -214,10 +218,10 @@ fn main() {
});
// rescale the video
if let Some(lowest_res) = args.transcode.or(preset.transcode) {
if let Some(lowest_res) = project.source.transcode_lowest {
for res in Resolution::STANDARD_RESOLUTIONS.into_iter().rev() {
if res > project.source.metadata.as_ref().unwrap().source_res
|| res > args.transcode_start.unwrap_or(preset.transcode_start)
|| res > project.source.transcode_highest
|| res < lowest_res
{
continue;
......
......@@ -150,6 +150,11 @@ pub struct ProjectSource {
#[serde_as(as = "Option<DisplayFromStr>")]
pub end: Option<Time>,
#[serde_as(as = "Option<DisplayFromStr>")]
pub transcode_lowest: Option<Resolution>,
#[serde_as(as = "DisplayFromStr")]
pub transcode_highest: Resolution,
#[serde(default)]
#[serde_as(as = "Vec<(DisplayFromStr, DisplayFromStr)>")]
pub fast: Vec<(Time, Time)>,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment