aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-04-16 21:33:33 +0200
committermetamuffin <metamuffin@disroot.org>2025-04-16 21:33:33 +0200
commit3f04466df27cb032a91e304eca1b3e91aad47cb4 (patch)
treebbb1a378598e9138f3d5ade3d56f9509398dfde1
parent96da47a8bb0a58bc2732c35eef86702f5cd2b5b2 (diff)
downloadjellything-3f04466df27cb032a91e304eca1b3e91aad47cb4.tar
jellything-3f04466df27cb032a91e304eca1b3e91aad47cb4.tar.bz2
jellything-3f04466df27cb032a91e304eca1b3e91aad47cb4.tar.zst
parse supermultivariant query
-rw-r--r--common/src/stream.rs10
-rw-r--r--stream/src/stream_info.rs8
2 files changed, 16 insertions, 2 deletions
diff --git a/common/src/stream.rs b/common/src/stream.rs
index 55f2f49..ca1ec29 100644
--- a/common/src/stream.rs
+++ b/common/src/stream.rs
@@ -54,6 +54,12 @@ pub enum StreamSpec {
container: StreamContainer,
format: FormatNum,
},
+ // Track {
+ // segment: SegmentNum,
+ // track: TrackNum,
+ // container: StreamContainer,
+ // foramt: FormatNum,
+ // },
}
#[derive(Debug, Clone, Deserialize, Serialize)]
@@ -171,6 +177,10 @@ impl StreamSpec {
Ok(Self::Info {
segment: get_num("segment").ok(),
})
+ } else if query.contains_key("hlssupermultivariant") {
+ Ok(Self::HlsSuperMultiVariant {
+ container: get_container().ok().unwrap_or(StreamContainer::Matroska),
+ })
} else if query.contains_key("hlsmultivariant") {
Ok(Self::HlsMultiVariant {
segment: get_num("segment")? as SegmentNum,
diff --git a/stream/src/stream_info.rs b/stream/src/stream_info.rs
index 288ea5c..790d342 100644
--- a/stream/src/stream_info.rs
+++ b/stream/src/stream_info.rs
@@ -1,3 +1,9 @@
+/*
+ This file is part of jellything (https://codeberg.org/metamuffin/jellything)
+ which is licensed under the GNU Affero General Public License (version 3); see /COPYING.
+ Copyright (C) 2025 metamuffin <metamuffin.org>
+*/
+use crate::SMediaInfo;
use anyhow::Result;
use ebml_struct::matroska::TrackEntry;
use jellybase::{
@@ -18,8 +24,6 @@ use tokio::{
task::spawn_blocking,
};
-use crate::SMediaInfo;
-
async fn async_matroska_metadata(path: PathBuf) -> Result<Arc<MatroskaMetadata>> {
Ok(spawn_blocking(move || matroska_metadata(&path)).await??)
}