diff options
author | metamuffin <metamuffin@disroot.org> | 2023-10-02 19:46:08 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2023-10-02 19:46:08 +0200 |
commit | 839c1e1490e7cd856e6ada1dcfd82f3d4505c89c (patch) | |
tree | 2e3e929a8154f1239641da564ee05abf84bce19c /common/src/config.rs | |
parent | 15d1f6516e31d20ab69569b7d6b6589f4d8f4f7b (diff) | |
download | jellything-839c1e1490e7cd856e6ada1dcfd82f3d4505c89c.tar jellything-839c1e1490e7cd856e6ada1dcfd82f3d4505c89c.tar.bz2 jellything-839c1e1490e7cd856e6ada1dcfd82f3d4505c89c.tar.zst |
transcoding profiles
Diffstat (limited to 'common/src/config.rs')
-rw-r--r-- | common/src/config.rs | 66 |
1 files changed, 56 insertions, 10 deletions
diff --git a/common/src/config.rs b/common/src/config.rs index aded4ff..e30e70b 100644 --- a/common/src/config.rs +++ b/common/src/config.rs @@ -4,7 +4,7 @@ Copyright (C) 2023 metamuffin <metamuffin.org> */ -use crate::user::PermissionSet; +use crate::{user::PermissionSet, EncodingProfile}; use serde::{Deserialize, Serialize}; use std::{collections::HashMap, path::PathBuf}; @@ -19,6 +19,7 @@ pub struct GlobalConfig { #[serde(default = "default::temp_path")] pub temp_path: PathBuf, #[serde(default = "default::cache_path")] pub cache_path: PathBuf, #[serde(default = "default::admin_username")] pub admin_username: String, + #[serde(default = "default::transcoding_profiles")] pub transcoding_profiles: Vec<EncodingProfile>, #[serde(default = "default::max_in_memory_cache_size")] pub max_in_memory_cache_size: usize, pub admin_password: String, #[serde(default)] pub cookie_key: Option<String>, @@ -28,16 +29,61 @@ pub struct GlobalConfig { #[serde(default)] pub default_permission_set: PermissionSet, } -#[rustfmt::skip] mod default { + use crate::EncodingProfile; use std::path::PathBuf; - pub fn admin_username() -> String { "admin".into() } - pub fn login_expire() -> i64 { 60*60*24 } - pub fn asset_path() -> PathBuf { "data/assets".into() } - pub fn database_path() -> PathBuf { "data/database".into() } - pub fn library_path() -> PathBuf { "data/library".into() } - pub fn cache_path() -> PathBuf { "data/cache".into() } - pub fn temp_path() -> PathBuf { "/tmp".into() } - pub fn max_in_memory_cache_size() -> usize { 50_000_000 } + pub fn admin_username() -> String { + "admin".into() + } + pub fn login_expire() -> i64 { + 60 * 60 * 24 + } + pub fn asset_path() -> PathBuf { + "data/assets".into() + } + pub fn database_path() -> PathBuf { + "data/database".into() + } + pub fn library_path() -> PathBuf { + "data/library".into() + } + pub fn cache_path() -> PathBuf { + "data/cache".into() + } + pub fn temp_path() -> PathBuf { + "/tmp".into() + } + pub fn max_in_memory_cache_size() -> usize { + 50_000_000 + } + pub fn transcoding_profiles() -> Vec<EncodingProfile> { + vec![ + EncodingProfile::Video { + codec: "libsvtav1".to_string(), + preset: 8, + bitrate: 2_000_000, + width: 1920, + }, + EncodingProfile::Video { + codec: "libsvtav1".to_string(), + preset: 8, + bitrate: 1_500_000, + width: 1280, + }, + EncodingProfile::Audio { + codec: "libopus".to_string(), + bitrate: 128_000, + sample_rate: None, + }, + EncodingProfile::Audio { + codec: "libopus".to_string(), + bitrate: 64_000, + sample_rate: None, + }, + EncodingProfile::Subtitles { + codec: "webvtt".to_string(), + }, + ] + } } |