From 044c7e1c75145f1ec9d002b4f6fc4433ff7f9540 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Sat, 13 Sep 2025 16:08:42 +0200 Subject: start remuxer crate rewrite; added matroska demuxer and format detection --- remuxer/src/demuxers/mod.rs | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 remuxer/src/demuxers/mod.rs (limited to 'remuxer/src/demuxers/mod.rs') diff --git a/remuxer/src/demuxers/mod.rs b/remuxer/src/demuxers/mod.rs new file mode 100644 index 0000000..e47e3d7 --- /dev/null +++ b/remuxer/src/demuxers/mod.rs @@ -0,0 +1,29 @@ +/* + This file is part of jellything (https://codeberg.org/metamuffin/jellything) + which is licensed under the GNU Affero General Public License (version 3); see /COPYING. + Copyright (C) 2025 metamuffin +*/ + +pub mod matroska; + +use anyhow::Result; +use std::io::{Read, Seek}; +use winter_matroska::{Attachments, Chapters, Cluster, Cues, Info, Tags, Tracks}; + +pub trait ReadSeek: Read + Seek {} +impl ReadSeek for T {} + +pub trait DemuxerNew: Demuxer + Sized { + fn new(reader: Box) -> Self; +} +pub trait Demuxer { + fn info(&mut self) -> Result; + fn tracks(&mut self) -> Result; + fn chapters(&mut self) -> Result; + fn attachments(&mut self) -> Result; + fn tags(&mut self) -> Result; + fn cues(&mut self) -> Result; + + fn seek_cluster(&mut self, position: Option) -> Result<()>; + fn read_cluster(&mut self) -> Result>; +} -- cgit v1.2.3-70-g09d2