diff options
Diffstat (limited to 'remuxer/src/muxers/mod.rs')
| -rw-r--r-- | remuxer/src/muxers/mod.rs | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/remuxer/src/muxers/mod.rs b/remuxer/src/muxers/mod.rs index d668ab2..3d0a935 100644 --- a/remuxer/src/muxers/mod.rs +++ b/remuxer/src/muxers/mod.rs @@ -19,7 +19,7 @@ use winter_matroska::Segment; pub trait FragmentMuxer { fn write_init(out: &mut Vec<u8>, segment: Segment) -> Result<()>; - fn write_frag(out: &mut Vec<u8>, segment: Segment) -> Result<()>; + fn write_frag(out: &mut Vec<u8>, segment: Segment, index: usize, end_pts: u64) -> Result<()>; } pub fn write_init(container: ContainerFormat, out: &mut Vec<u8>, segment: Segment) -> Result<()> { @@ -30,11 +30,19 @@ pub fn write_init(container: ContainerFormat, out: &mut Vec<u8>, segment: Segmen _ => unimplemented!(), } } -pub fn write_frag(container: ContainerFormat, out: &mut Vec<u8>, segment: Segment) -> Result<()> { +pub fn write_frag( + container: ContainerFormat, + out: &mut Vec<u8>, + segment: Segment, + index: usize, + end_pts: u64, +) -> Result<()> { match container { - ContainerFormat::Matroska => MatroskaFragmentMuxer::write_frag(out, segment), - ContainerFormat::Webm => WebmFragmentMuxer::write_frag(out, segment), - ContainerFormat::MP4 => MP4FragmentMuxer::write_frag(out, segment), + ContainerFormat::Matroska => { + MatroskaFragmentMuxer::write_frag(out, segment, index, end_pts) + } + ContainerFormat::Webm => WebmFragmentMuxer::write_frag(out, segment, index, end_pts), + ContainerFormat::MP4 => MP4FragmentMuxer::write_frag(out, segment, index, end_pts), _ => unimplemented!(), } } @@ -42,16 +50,19 @@ pub fn write_init_frag( container: ContainerFormat, out: &mut Vec<u8>, segment: Segment, + index: usize, + end_pts: u64, ) -> Result<()> { write_init( container, out, Segment { info: segment.info.clone(), + tags: segment.tags.clone(), tracks: segment.tracks.clone(), ..Default::default() }, )?; - write_frag(container, out, segment)?; + write_frag(container, out, segment, index, end_pts)?; Ok(()) } |