aboutsummaryrefslogtreecommitdiff
path: root/common/src/config.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2023-10-02 19:46:08 +0200
committermetamuffin <metamuffin@disroot.org>2023-10-02 19:46:08 +0200
commit839c1e1490e7cd856e6ada1dcfd82f3d4505c89c (patch)
tree2e3e929a8154f1239641da564ee05abf84bce19c /common/src/config.rs
parent15d1f6516e31d20ab69569b7d6b6589f4d8f4f7b (diff)
downloadjellything-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.rs66
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(),
+ },
+ ]
+ }
}