From ce9eb140ab9243d1c87ace4727a82b7fa50f964b Mon Sep 17 00:00:00 2001 From: metamuffin Date: Sun, 28 Jan 2024 03:21:03 +0100 Subject: fix yet another fundamental issue in the ebml reader and seekindex. --- stream/src/webvtt.rs | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'stream/src') 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" => { -- cgit v1.2.3-70-g09d2