From f7e3841426ed4661ede6ccfff9c306141735d465 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Fri, 26 Sep 2025 14:35:23 +0200 Subject: refactor remuxer trait; add webm support; add back transcoding --- remuxer/src/muxers/mod.rs | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) (limited to 'remuxer/src/muxers/mod.rs') diff --git a/remuxer/src/muxers/mod.rs b/remuxer/src/muxers/mod.rs index 8752373..ae544eb 100644 --- a/remuxer/src/muxers/mod.rs +++ b/remuxer/src/muxers/mod.rs @@ -5,36 +5,32 @@ */ pub mod matroska; +pub mod mpeg4; use crate::{ ContainerFormat, - muxers::matroska::{MatroskaFragmentMuxer, WebmFragmentMuxer}, + muxers::{ + matroska::{MatroskaFragmentMuxer, WebmFragmentMuxer}, + mpeg4::Mpeg4FragmentMuxer, + }, }; use anyhow::Result; use std::io::Write; -use winter_matroska::{Cluster, Info, Tracks}; +use winter_matroska::Segment; pub trait FragmentMuxer { - fn write_fragment( - out: &mut dyn Write, - info: Info, - tracks: Tracks, - cluster: Cluster, - ) -> Result<()>; + fn write_fragment(out: &mut dyn Write, segment: Segment) -> Result<()>; } pub fn write_fragment( container: ContainerFormat, out: &mut dyn Write, - info: Info, - tracks: Tracks, - cluster: Cluster, + segment: Segment, ) -> Result<()> { match container { - ContainerFormat::Matroska => { - MatroskaFragmentMuxer::write_fragment(out, info, tracks, cluster) - } - ContainerFormat::Webm => WebmFragmentMuxer::write_fragment(out, info, tracks, cluster), + ContainerFormat::Matroska => MatroskaFragmentMuxer::write_fragment(out, segment), + ContainerFormat::Webm => WebmFragmentMuxer::write_fragment(out, segment), + ContainerFormat::Mpeg4 => Mpeg4FragmentMuxer::write_fragment(out, segment), _ => unimplemented!(), } } -- cgit v1.2.3-70-g09d2