From 490117068ea52d31514bd7b8b43e369d74e346c4 Mon Sep 17 00:00:00 2001 From: Kostya Shishkov Date: Mon, 18 Aug 2025 18:44:25 +0200 Subject: [PATCH] nihav_rad: switch to ByteIO --- nihav-rad/src/codecs/bink2.rs | 3 +-- nihav-rad/src/codecs/binkvid.rs | 3 +-- nihav-rad/src/codecs/smacker.rs | 3 +-- nihav-rad/src/demuxers/bink.rs | 11 +++++------ nihav-rad/src/demuxers/smacker.rs | 9 ++++----- nihav-rad/src/muxers/bink.rs | 6 +++--- 6 files changed, 15 insertions(+), 20 deletions(-) diff --git a/nihav-rad/src/codecs/bink2.rs b/nihav-rad/src/codecs/bink2.rs index b8c7162..69d3c46 100644 --- a/nihav-rad/src/codecs/bink2.rs +++ b/nihav-rad/src/codecs/bink2.rs @@ -1894,8 +1894,7 @@ impl NADecoder for Bink2Decoder { let edata = info.get_extradata().unwrap(); validate!(edata.len() >= 8); - let mut mr = MemoryReader::new_read(&edata); - let mut br = ByteReader::new(&mut mr); + let mut br = MemoryReader::new_read(&edata); let magic = br.read_u32be()?; let flags = br.read_u32le()?; diff --git a/nihav-rad/src/codecs/binkvid.rs b/nihav-rad/src/codecs/binkvid.rs index f4fece8..2694b8d 100644 --- a/nihav-rad/src/codecs/binkvid.rs +++ b/nihav-rad/src/codecs/binkvid.rs @@ -1110,8 +1110,7 @@ impl NADecoder for BinkDecoder { let edata = info.get_extradata().unwrap(); validate!(edata.len() >= 8); - let mut mr = MemoryReader::new_read(&edata); - let mut br = ByteReader::new(&mut mr); + let mut br = MemoryReader::new_read(&edata); let magic = br.read_u32be()?; let flags = br.read_u32le()?; diff --git a/nihav-rad/src/codecs/smacker.rs b/nihav-rad/src/codecs/smacker.rs index 2697efe..90b3f8b 100644 --- a/nihav-rad/src/codecs/smacker.rs +++ b/nihav-rad/src/codecs/smacker.rs @@ -408,8 +408,7 @@ impl NADecoder for SmackerVideoDecoder { self.stride = w; self.frame.resize(w * h, 0); - let mut mr = MemoryReader::new_read(&edata); - let mut br = ByteReader::new(&mut mr); + let mut br = MemoryReader::new_read(&edata); let magic = br.read_tag()?; self.flags = br.read_u32le()?; let mmap_size = br.read_u32le()?; diff --git a/nihav-rad/src/demuxers/bink.rs b/nihav-rad/src/demuxers/bink.rs index cf576f3..6bccda5 100644 --- a/nihav-rad/src/demuxers/bink.rs +++ b/nihav-rad/src/demuxers/bink.rs @@ -1,5 +1,5 @@ use nihav_core::demuxers::*; -use nihav_core::io::byteio::ByteReader; +use nihav_core::io::byteio::ByteIO; struct AudioTrack { id: usize, @@ -28,7 +28,7 @@ impl AudioTrack { } struct BinkDemuxer<'a> { - src: &'a mut ByteReader<'a>, + src: &'a mut dyn ByteIO, cur_frame: usize, frames: usize, video_id: usize, @@ -173,7 +173,7 @@ impl<'a> NAOptionHandler for BinkDemuxer<'a> { } impl<'a> BinkDemuxer<'a> { - fn new(io: &'a mut ByteReader<'a>) -> Self { + fn new(io: &'a mut dyn ByteIO) -> Self { Self { src: io, cur_frame: 0, @@ -192,7 +192,7 @@ impl<'a> BinkDemuxer<'a> { pub struct BinkDemuxerCreator { } impl DemuxerCreator for BinkDemuxerCreator { - fn new_demuxer<'a>(&self, br: &'a mut ByteReader<'a>) -> Box + 'a> { + fn new_demuxer<'a>(&self, br: &'a mut dyn ByteIO) -> Box + 'a> { Box::new(BinkDemuxer::new(br)) } fn get_name(&self) -> &'static str { "bink" } @@ -211,8 +211,7 @@ mod test { // let mut file = File::open("assets/RAD/Snd0a110c51.dee").unwrap(); // let mut file = File::open("assets/RAD/NEW.BIK").unwrap(); // let mut file = File::open("assets/RAD/ge_video_86l.bk2").unwrap(); - let mut fr = FileReader::new_read(&mut file); - let mut br = ByteReader::new(&mut fr); + let mut br = FileReader::new_read(&mut file); let mut dmx = BinkDemuxer::new(&mut br); let mut sm = StreamManager::new(); let mut si = SeekIndex::new(); diff --git a/nihav-rad/src/demuxers/smacker.rs b/nihav-rad/src/demuxers/smacker.rs index f164349..367e4f8 100644 --- a/nihav-rad/src/demuxers/smacker.rs +++ b/nihav-rad/src/demuxers/smacker.rs @@ -66,7 +66,7 @@ impl AudioTrack { } struct SmackerVideoDemuxer<'a> { - src: &'a mut ByteReader<'a>, + src: &'a mut dyn ByteIO, frames: usize, pts_inc: u64, cur_pts: u64, @@ -274,7 +274,7 @@ impl<'a> NAOptionHandler for SmackerVideoDemuxer<'a> { } impl<'a> SmackerVideoDemuxer<'a> { - fn new(io: &'a mut ByteReader<'a>) -> Self { + fn new(io: &'a mut dyn ByteIO) -> Self { SmackerVideoDemuxer { src: io, frames: 0, @@ -298,7 +298,7 @@ impl<'a> SmackerVideoDemuxer<'a> { pub struct SMKDemuxerCreator { } impl DemuxerCreator for SMKDemuxerCreator { - fn new_demuxer<'a>(&self, br: &'a mut ByteReader<'a>) -> Box + 'a> { + fn new_demuxer<'a>(&self, br: &'a mut dyn ByteIO) -> Box + 'a> { Box::new(SmackerVideoDemuxer::new(br)) } fn get_name(&self) -> &'static str { "smacker" } @@ -316,8 +316,7 @@ mod test { // let mut file = File::open("assets/RAD/ajfstr1.smk").unwrap(); // let mut file = File::open("assets/RAD/credits.smk").unwrap(); // let mut file = File::open("assets/RAD/wetlogo.smk").unwrap(); - let mut fr = FileReader::new_read(&mut file); - let mut br = ByteReader::new(&mut fr); + let mut br = FileReader::new_read(&mut file); let mut dmx = SmackerVideoDemuxer::new(&mut br); let mut sm = StreamManager::new(); let mut si = SeekIndex::new(); diff --git a/nihav-rad/src/muxers/bink.rs b/nihav-rad/src/muxers/bink.rs index adf8af7..eb0f2b1 100644 --- a/nihav-rad/src/muxers/bink.rs +++ b/nihav-rad/src/muxers/bink.rs @@ -4,7 +4,7 @@ use std::collections::VecDeque; const ASSEMBLE_DEPTH: usize = 32; struct BinkMuxer<'a> { - bw: &'a mut ByteWriter<'a>, + bw: &'a mut dyn ByteIO, naudio: usize, maxsize: u32, nframes: usize, @@ -18,7 +18,7 @@ struct BinkMuxer<'a> { } impl<'a> BinkMuxer<'a> { - fn new(bw: &'a mut ByteWriter<'a>) -> Self { + fn new(bw: &'a mut dyn ByteIO) -> Self { Self { bw, naudio: 0, @@ -231,7 +231,7 @@ impl<'a> NAOptionHandler for BinkMuxer<'a> { pub struct BinkMuxerCreator {} impl MuxerCreator for BinkMuxerCreator { - fn new_muxer<'a>(&self, bw: &'a mut ByteWriter<'a>) -> Box + 'a> { + fn new_muxer<'a>(&self, bw: &'a mut dyn ByteIO) -> Box + 'a> { Box::new(BinkMuxer::new(bw)) } fn get_name(&self) -> &'static str { "bink" } -- 2.39.5