diff options
author | metamuffin <metamuffin@disroot.org> | 2024-01-28 03:21:03 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2024-01-28 03:21:03 +0100 |
commit | ce9eb140ab9243d1c87ace4727a82b7fa50f964b (patch) | |
tree | b64da94ba58f72a2371cdd8644dc48a178b7d260 /stream | |
parent | b514ec8cea2c2143e0bd7a0eb377c96a6f091d0d (diff) | |
download | jellything-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.rs | 15 |
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" => { |