aboutsummaryrefslogtreecommitdiff
path: root/transcoder
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2026-03-07 02:58:52 +0100
committermetamuffin <metamuffin@disroot.org>2026-03-07 02:58:52 +0100
commitd3ed810656a563fc733771e760b2abbb05bd98cb (patch)
tree806040a97d38f5514990069de14f47f8ffff997a /transcoder
parentb306e65ddf91c97f5bf6f751122c7b87db233443 (diff)
downloadjellything-d3ed810656a563fc733771e760b2abbb05bd98cb.tar
jellything-d3ed810656a563fc733771e760b2abbb05bd98cb.tar.bz2
jellything-d3ed810656a563fc733771e760b2abbb05bd98cb.tar.zst
several mp4 fixes
Diffstat (limited to 'transcoder')
-rw-r--r--transcoder/src/fragment.rs6
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()
})