aboutsummaryrefslogtreecommitdiff
path: root/stream
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2024-01-28 03:21:03 +0100
committermetamuffin <metamuffin@disroot.org>2024-01-28 03:21:03 +0100
commitce9eb140ab9243d1c87ace4727a82b7fa50f964b (patch)
treeb64da94ba58f72a2371cdd8644dc48a178b7d260 /stream
parentb514ec8cea2c2143e0bd7a0eb377c96a6f091d0d (diff)
downloadjellything-ce9eb140ab9243d1c87ace4727a82b7fa50f964b.tar
jellything-ce9eb140ab9243d1c87ace4727a82b7fa50f964b.tar.bz2
jellything-ce9eb140ab9243d1c87ace4727a82b7fa50f964b.tar.zst
fix yet another fundamental issue in the ebml reader and seekindex.
Diffstat (limited to 'stream')
-rw-r--r--stream/src/webvtt.rs15
1 files changed, 14 insertions, 1 deletions
diff --git a/stream/src/webvtt.rs b/stream/src/webvtt.rs
index 2de9835..e720800 100644
--- a/stream/src/webvtt.rs
+++ b/stream/src/webvtt.rs
@@ -7,7 +7,9 @@ use anyhow::{anyhow, bail, Context, Result};
use jellybase::CONF;
use jellycommon::{jhls::SubtitleCue, stream::StreamSpec, LocalTrack, Node};
use jellyremuxer::extract::extract_track;
-use jellytranscoder::subtitles::{parse_ass_blocks, parse_webvtt_blocks, write_webvtt};
+use jellytranscoder::subtitles::{
+ parse_ass_blocks, parse_pgs_blocks, parse_webvtt_blocks, write_webvtt,
+};
use tokio::io::{AsyncWriteExt, DuplexStream};
pub async fn vtt_stream(
@@ -48,6 +50,17 @@ pub async fn vtt_stream(
let subtitles = parse_webvtt_blocks(webvtt_blocks).context("parsing subtitles")?;
write(subtitles)?;
}
+ "S_HDMV/PGS" => {
+ let webvtt_blocks = tokio::task::spawn_blocking(move || {
+ extract_track(CONF.media_path.clone(), local_track)
+ })
+ .await??;
+
+ let subtitles = parse_pgs_blocks(webvtt_blocks).context("parsing subtitles")?;
+ write(subtitles)?;
+ }
+ "S_HDMV/TEXTST" => bail!("no HDMV/PGSs yet"),
+ "S_ARISUB" => bail!("no arisub yet"),
"S_TEXT/UTF8" => bail!("no subrip yet"),
"S_VOBSUB" => bail!("no vobsub yet"),
"S_TEXT/ASS" => {