aboutsummaryrefslogtreecommitdiff
path: root/stream/src
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2026-03-07 04:02:48 +0100
committermetamuffin <metamuffin@disroot.org>2026-03-07 04:02:48 +0100
commit4ce6d64648634bd8d22e8ed0676e0e5b22947dc3 (patch)
treec1df9c9f623603651157006b9fd249de6d63fc7b /stream/src
parentd3ed810656a563fc733771e760b2abbb05bd98cb (diff)
downloadjellything-4ce6d64648634bd8d22e8ed0676e0e5b22947dc3.tar
jellything-4ce6d64648634bd8d22e8ed0676e0e5b22947dc3.tar.bz2
jellything-4ce6d64648634bd8d22e8ed0676e0e5b22947dc3.tar.zst
new media path format
Diffstat (limited to 'stream/src')
-rw-r--r--stream/src/dash.rs8
-rw-r--r--stream/src/hls.rs17
2 files changed, 11 insertions, 14 deletions
diff --git a/stream/src/dash.rs b/stream/src/dash.rs
index 6060501..9e66a0f 100644
--- a/stream/src/dash.rs
+++ b/stream/src/dash.rs
@@ -164,9 +164,11 @@ fn write_segment_template(
out,
"<SegmentTemplate \
timescale=\"1000\" \
- initialization=\"stream?fragmentinit&amp;t={as_id}&amp;c={container}&amp;f=$RepresentationID$\" \
- media=\"stream?fragment&amp;t={as_id}&amp;c={container}&amp;f=$RepresentationID$&amp;i=$Number$\" \
- startNumber=\"0\">"
+ initialization=\"{as_id}/$RepresentationID$/init.{}\" \
+ media=\"{as_id}/$RepresentationID$/frag$Number$.{}\" \
+ startNumber=\"0\">",
+ container.file_ext(TrackKind::Video),
+ container.file_ext(TrackKind::Video)
)?;
writeln!(out, "{}", Timeline(&frags))?;
writeln!(out, "</SegmentTemplate>")?;
diff --git a/stream/src/hls.rs b/stream/src/hls.rs
index 70a0d3c..759b196 100644
--- a/stream/src/hls.rs
+++ b/stream/src/hls.rs
@@ -23,12 +23,12 @@ pub fn hls_multivariant_stream(info: &SMediaInfo) -> Result<Box<dyn Read + Send
for (i, t) in info.tracks.iter().enumerate() {
for (j, f) in t.formats.iter().enumerate() {
let uri = format!(
- "stream{}",
+ "{}",
StreamSpec::HlsVariant {
track: i,
format: j
}
- .to_query()
+ .to_path()
);
let r#type = match t.kind {
TrackKind::Video => "VIDEO",
@@ -50,7 +50,7 @@ pub fn hls_multivariant_stream(info: &SMediaInfo) -> Result<Box<dyn Read + Send
pub fn hls_variant_stream(
info: &SMediaInfo,
track: TrackNum,
- format: FormatNum,
+ _format: FormatNum,
) -> Result<Box<dyn Read + Send + Sync>> {
let frags = fragment_index(&info, track)?;
let (_, info) = stream_info(&info)?;
@@ -61,19 +61,14 @@ pub fn hls_variant_stream(
writeln!(out, "#EXT-X-TARGETDURATION:{}", info.duration)?;
writeln!(out, "#EXT-X-VERSION:4")?;
writeln!(out, "#EXT-X-MEDIA-SEQUENCE:0")?;
+ writeln!(out, "#EXT-X-MAP:URI=\"init.webm\"")?;
for (index, Range { start, end }) in frags.iter().enumerate() {
writeln!(out, "#EXTINF:{:},", end - start)?;
writeln!(
out,
- "stream{}",
- StreamSpec::Fragment {
- track,
- index,
- container: StreamContainer::MP4,
- format,
- }
- .to_query()
+ "frag{index}.{}",
+ StreamContainer::WebM.file_ext(TrackKind::Video),
)?;
}