aboutsummaryrefslogtreecommitdiff
path: root/transcoder/src/image.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2023-09-25 17:05:49 +0200
committermetamuffin <metamuffin@disroot.org>2023-09-25 17:05:49 +0200
commit31e89068a863375fced493716decde663b1fc4bd (patch)
tree494fc98d548c1940bfacbd347e312cbaad5d3706 /transcoder/src/image.rs
parentd6c96ff2b631bba748f550cd136c6776fcb33906 (diff)
downloadjellything-31e89068a863375fced493716decde663b1fc4bd.tar
jellything-31e89068a863375fced493716decde663b1fc4bd.tar.bz2
jellything-31e89068a863375fced493716decde663b1fc4bd.tar.zst
transcoder: set fallback format to avif
Diffstat (limited to 'transcoder/src/image.rs')
-rw-r--r--transcoder/src/image.rs13
1 files changed, 9 insertions, 4 deletions
diff --git a/transcoder/src/image.rs b/transcoder/src/image.rs
index c28ef2b..7ae2976 100644
--- a/transcoder/src/image.rs
+++ b/transcoder/src/image.rs
@@ -1,6 +1,7 @@
+use anyhow::Context;
use jellybase::{cache_file, AssetLocationExt};
use jellycommon::AssetLocation;
-use log::info;
+use log::{debug, info};
use rgb::FromSlice;
use std::{
fs::File,
@@ -22,9 +23,13 @@ pub fn transcode(
.path();
if !path.exists() {
info!("encoding {path:?} (speed={speed}, quality={quality}, width={width})");
- let reader = image::io::Reader::new(BufReader::new(File::open(original_path)?))
- .with_guessed_format()?;
- let original = reader.decode()?.to_rgba8();
+ // TODO shouldn't be neccessary with guessed format.
+ let file = BufReader::new(File::open(&original_path).context("opening source")?);
+ let mut reader = image::io::Reader::new(file);
+ reader.set_format(image::ImageFormat::Avif);
+ let reader = reader.with_guessed_format().context("guessing format")?;
+ debug!("guessed format (or fallback): {:?}", reader.format());
+ let original = reader.decode().context("decoding image")?.to_rgba8();
let image = image::imageops::resize(
&original,
width as u32,