/* 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>; }