From 31e89068a863375fced493716decde663b1fc4bd Mon Sep 17 00:00:00 2001 From: metamuffin Date: Mon, 25 Sep 2023 17:05:49 +0200 Subject: transcoder: set fallback format to avif --- transcoder/src/image.rs | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'transcoder/src') 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, -- cgit v1.2.3-70-g09d2