diff options
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() }) |