diff options
Diffstat (limited to 'remuxer/src/metadata.rs')
-rw-r--r-- | remuxer/src/metadata.rs | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/remuxer/src/metadata.rs b/remuxer/src/metadata.rs index c8a5f8f..4a496fe 100644 --- a/remuxer/src/metadata.rs +++ b/remuxer/src/metadata.rs @@ -33,20 +33,17 @@ pub struct MatroskaMetadata { pub infojson: Option<Vec<u8>>, } pub fn checked_matroska_metadata(path: &Path) -> Result<Arc<Option<MatroskaMetadata>>> { - cache_memory( - &["mkmeta-check-v1", path.to_string_lossy().as_ref()], - || { - let mut magic = [0; 4]; - File::open(path)?.read_exact(&mut magic).ok(); - if !matches!(magic, [0x1A, 0x45, 0xDF, 0xA3]) { - return Ok(None); - } - Ok(Some((*matroska_metadata(path)?).clone())) - }, - ) + cache_memory("mkmeta-check-v1", path, || { + let mut magic = [0; 4]; + File::open(path)?.read_exact(&mut magic).ok(); + if !matches!(magic, [0x1A, 0x45, 0xDF, 0xA3]) { + return Ok(None); + } + Ok(Some((*matroska_metadata(path)?).clone())) + }) } pub fn matroska_metadata(path: &Path) -> Result<Arc<MatroskaMetadata>> { - cache_memory(&["mkmeta-v3", path.to_string_lossy().as_ref()], || { + cache_memory("mkmeta-v3", path, || { info!("reading {path:?}"); let mut file = BufReader::new(File::open(path)?); let mut file = file.by_ref().take(u64::MAX); @@ -86,7 +83,8 @@ pub fn matroska_metadata(path: &Path) -> Result<Arc<MatroskaMetadata>> { | "cover.avif" => { cover = Some( AssetInner::Cache(cache_file( - &["att-cover", path.to_string_lossy().as_ref()], + "att-cover", + path, move |mut file| { file.write_all(&f.data)?; Ok(()) |