aboutsummaryrefslogtreecommitdiff
path: root/stream/src
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-12-08 19:53:12 +0100
committermetamuffin <metamuffin@disroot.org>2025-12-08 19:53:12 +0100
commit6edf0fd93abf7e58b4c0974e3d3e54bcf8517946 (patch)
tree32577db9d987897d4037ba9af0084b95b55e145c /stream/src
parente4584a8135584e6591bac7d5397cf227cf3cff92 (diff)
downloadjellything-6edf0fd93abf7e58b4c0974e3d3e54bcf8517946.tar
jellything-6edf0fd93abf7e58b4c0974e3d3e54bcf8517946.tar.bz2
jellything-6edf0fd93abf7e58b4c0974e3d3e54bcf8517946.tar.zst
human-readable cache keys
Diffstat (limited to 'stream/src')
-rw-r--r--stream/src/cues.rs4
-rw-r--r--stream/src/fragment.rs3
-rw-r--r--stream/src/metadata.rs29
3 files changed, 20 insertions, 16 deletions
diff --git a/stream/src/cues.rs b/stream/src/cues.rs
index 9291e18..8aac590 100644
--- a/stream/src/cues.rs
+++ b/stream/src/cues.rs
@@ -5,7 +5,7 @@
*/
use anyhow::{anyhow, Result};
-use jellycache::{cache_memory, CacheKey};
+use jellycache::{cache_memory, HashKey};
use jellyremuxer::demuxers::create_demuxer_autodetect;
use serde::{Deserialize, Serialize};
use std::{collections::BTreeMap, fs::File, path::Path, sync::Arc};
@@ -30,7 +30,7 @@ pub struct StatsAndCues {
pub fn generate_cues(path: &Path) -> Result<Arc<StatsAndCues>> {
cache_memory(
- CacheKey::new_json(("media-generated-cues", path)),
+ &format!("media/generated-cues/{}.json", HashKey(path)),
move || {
let media = File::open(path)?;
let mut media = create_demuxer_autodetect(Box::new(media))?
diff --git a/stream/src/fragment.rs b/stream/src/fragment.rs
index 35a5cd2..ef4f074 100644
--- a/stream/src/fragment.rs
+++ b/stream/src/fragment.rs
@@ -8,6 +8,7 @@ use crate::{
stream_info, SMediaInfo,
};
use anyhow::{anyhow, Result};
+use jellycache::HashKey;
use jellyremuxer::{
demuxers::create_demuxer_autodetect,
matroska::{self, Segment},
@@ -121,7 +122,7 @@ pub fn fragment_stream(
if !format.remux {
segment = transcode(
track.kind,
- &format!("{media_path:?} {track_num} {index}"),
+ &format!("{}-T{track_num}-I{index}", HashKey(media_path)),
format,
segment,
next_kf,
diff --git a/stream/src/metadata.rs b/stream/src/metadata.rs
index fe553e2..30d30e5 100644
--- a/stream/src/metadata.rs
+++ b/stream/src/metadata.rs
@@ -5,22 +5,25 @@
*/
use anyhow::{anyhow, Result};
-use jellycache::{cache_memory, CacheKey};
+use jellycache::{cache_memory, HashKey};
use jellyremuxer::{demuxers::create_demuxer_autodetect, matroska::Segment};
use std::{fs::File, path::Path, sync::Arc};
pub fn read_metadata(path: &Path) -> Result<Arc<Segment>> {
- cache_memory(CacheKey::new_json(("media-metadata", path)), move || {
- let media = File::open(path)?;
- let mut media =
- create_demuxer_autodetect(Box::new(media))?.ok_or(anyhow!("media format unknown"))?;
+ cache_memory(
+ &format!("media/stream-metadata/{}.json", HashKey(path)),
+ move || {
+ let media = File::open(path)?;
+ let mut media = create_demuxer_autodetect(Box::new(media))?
+ .ok_or(anyhow!("media format unknown"))?;
- let info = media.info()?;
- let tracks = media.tracks()?;
- Ok(Segment {
- info,
- tracks,
- ..Default::default()
- })
- })
+ let info = media.info()?;
+ let tracks = media.tracks()?;
+ Ok(Segment {
+ info,
+ tracks,
+ ..Default::default()
+ })
+ },
+ )
}