diff options
| author | metamuffin <metamuffin@disroot.org> | 2026-03-07 02:58:52 +0100 |
|---|---|---|
| committer | metamuffin <metamuffin@disroot.org> | 2026-03-07 02:58:52 +0100 |
| commit | d3ed810656a563fc733771e760b2abbb05bd98cb (patch) | |
| tree | 806040a97d38f5514990069de14f47f8ffff997a /transcoder | |
| parent | b306e65ddf91c97f5bf6f751122c7b87db233443 (diff) | |
| download | jellything-d3ed810656a563fc733771e760b2abbb05bd98cb.tar jellything-d3ed810656a563fc733771e760b2abbb05bd98cb.tar.bz2 jellything-d3ed810656a563fc733771e760b2abbb05bd98cb.tar.zst | |
several mp4 fixes
Diffstat (limited to 'transcoder')
| -rw-r--r-- | transcoder/src/fragment.rs | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/transcoder/src/fragment.rs b/transcoder/src/fragment.rs index 58c8459..c34e8ee 100644 --- a/transcoder/src/fragment.rs +++ b/transcoder/src/fragment.rs @@ -62,6 +62,8 @@ pub fn transcode( input_key: &str, input_format: &StreamFormatInfo, output_format: &StreamFormatInfo, + index: usize, + end_pts: u64, segment: impl FnOnce() -> Result<Segment>, ) -> Result<Segment> { let command = transcode_command(kind, &input_format, output_format, false, config).unwrap(); @@ -86,7 +88,7 @@ pub fn transcode( let mut stdout = proc.stdout.take().unwrap(); let mut buf = Vec::new(); - write_init_frag(ContainerFormat::Matroska, &mut buf, input)?; + write_init_frag(ContainerFormat::Matroska, &mut buf, input, index, end_pts)?; spawn(move || { stdin.write_all(&buf).unwrap(); @@ -106,6 +108,7 @@ pub fn transcode( let info = demuxer.info()?; let tracks = demuxer.tracks()?; + let tags = demuxer.tags()?; let mut clusters = Vec::new(); while let Some((_, cluster)) = demuxer.read_cluster()? { clusters.push(cluster); @@ -122,6 +125,7 @@ pub fn transcode( Ok(Segment { info, tracks, + tags: tags.into_iter().collect(), clusters, ..Default::default() }) |