diff options
author | metamuffin <metamuffin@disroot.org> | 2025-04-18 23:33:29 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-04-18 23:33:29 +0200 |
commit | a123a1997f3ab527ab83b44ca18bec94883f46d0 (patch) | |
tree | 761c4f0e8e9bbb7834e59af3d6904dee39932923 /transcoder/src/image.rs | |
parent | 5b6fd021cc84ae7f5e1719ff398ff4627493a13c (diff) | |
download | jellything-a123a1997f3ab527ab83b44ca18bec94883f46d0.tar jellything-a123a1997f3ab527ab83b44ca18bec94883f46d0.tar.bz2 jellything-a123a1997f3ab527ab83b44ca18bec94883f46d0.tar.zst |
use impl Hash for cache key instead of string
Diffstat (limited to 'transcoder/src/image.rs')
-rw-r--r-- | transcoder/src/image.rs | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/transcoder/src/image.rs b/transcoder/src/image.rs index 28b253a..c6e1367 100644 --- a/transcoder/src/image.rs +++ b/transcoder/src/image.rs @@ -12,25 +12,23 @@ use rgb::FromSlice; use std::{ fs::File, io::{BufReader, Read, Seek, SeekFrom}, - path::PathBuf, + path::Path, }; use tokio::io::AsyncWriteExt; pub async fn transcode( - path: PathBuf, + path: &Path, quality: f32, speed: u8, width: usize, ) -> anyhow::Result<CachePath> { async_cache_file( - &[ - "image-tc", - path.clone().as_os_str().to_str().unwrap(), - &format!("{width} {quality} {speed}"), - ], - move |mut output| async move { + "image-tc", + (path, width, quality as i32, speed), + |mut output| async move { let _permit = LOCAL_IMAGE_TRANSCODING_TASKS.acquire().await?; info!("encoding {path:?} (speed={speed}, quality={quality}, width={width})"); + let path = path.to_owned(); let encoded = tokio::task::spawn_blocking(move || { let mut file = BufReader::new(File::open(&path).context("opening source")?); |