From: Kostya Shishkov Date: Sun, 17 Aug 2025 17:22:01 +0000 (+0200) Subject: nihav_itu: switch to ByteIO X-Git-Url: https://git.nihav.org/?a=commitdiff_plain;h=b035b2140a24302a5c82d0db0b3746ec0701e0f4;p=nihav.git nihav_itu: switch to ByteIO --- diff --git a/nihav-itu/src/codecs/h264/decoder_mt.rs b/nihav-itu/src/codecs/h264/decoder_mt.rs index 118ba85..e5a8cb5 100644 --- a/nihav-itu/src/codecs/h264/decoder_mt.rs +++ b/nihav-itu/src/codecs/h264/decoder_mt.rs @@ -729,8 +729,7 @@ impl NADecoderMT for H264MTDecoder { let edata = info.get_extradata().unwrap(); //print!("edata:"); for &el in edata.iter() { print!(" {:02X}", el); } println!(); if edata.len() > 11 && &edata[0..4] == b"avcC" { - let mut mr = MemoryReader::new_read(edata.as_slice()); - let mut br = ByteReader::new(&mut mr); + let mut br = MemoryReader::new_read(edata.as_slice()); br.read_skip(4)?; let version = br.read_byte()?; @@ -834,8 +833,7 @@ impl NADecoderMT for H264MTDecoder { let src = pkt.get_buffer(); - let mut mr = MemoryReader::new_read(&src); - let mut br = ByteReader::new(&mut mr); + let mut br = MemoryReader::new_read(&src); let mut nal_buf = Vec::with_capacity(src.len()); if self.nal_len > 0 { diff --git a/nihav-itu/src/codecs/h264/decoder_st.rs b/nihav-itu/src/codecs/h264/decoder_st.rs index c82d62e..ce36d2a 100644 --- a/nihav-itu/src/codecs/h264/decoder_st.rs +++ b/nihav-itu/src/codecs/h264/decoder_st.rs @@ -726,8 +726,7 @@ impl NADecoder for H264Decoder { let edata = info.get_extradata().unwrap(); //print!("edata:"); for &el in edata.iter() { print!(" {:02X}", el); } println!(); if edata.len() > 11 && &edata[0..4] == b"avcC" { - let mut mr = MemoryReader::new_read(edata.as_slice()); - let mut br = ByteReader::new(&mut mr); + let mut br = MemoryReader::new_read(edata.as_slice()); let mut nal_buf = Vec::new(); br.read_skip(4)?; @@ -814,8 +813,7 @@ impl NADecoder for H264Decoder { fn decode(&mut self, supp: &mut NADecoderSupport, pkt: &NAPacket) -> DecoderResult { let src = pkt.get_buffer(); - let mut mr = MemoryReader::new_read(&src); - let mut br = ByteReader::new(&mut mr); + let mut br = MemoryReader::new_read(&src); let mut nal_buf = Vec::with_capacity(src.len()); if self.nal_len > 0 { let mut skip_decoding = false; diff --git a/nihav-itu/src/codecs/h264/test/raw_demux.rs b/nihav-itu/src/codecs/h264/test/raw_demux.rs index 857016d..ba6ff6e 100644 --- a/nihav-itu/src/codecs/h264/test/raw_demux.rs +++ b/nihav-itu/src/codecs/h264/test/raw_demux.rs @@ -4,12 +4,12 @@ use nihav_core::demuxers::*; use nihav_core::formats::YUV420_FORMAT; struct RawH264Demuxer<'a> { - src: &'a mut ByteReader<'a>, + src: &'a mut dyn ByteIO, cur_frame: u64, frame_buf: Vec, } -fn read_nal(src: &mut ByteReader, dst: &mut Vec) -> DemuxerResult<()> { +fn read_nal(src: &mut dyn ByteIO, dst: &mut Vec) -> DemuxerResult<()> { dst.clear(); loop { let b = src.read_byte()?; @@ -64,7 +64,7 @@ impl<'a> DemuxCore<'a> for RawH264Demuxer<'a> { let mut nal_buf = Vec::with_capacity(65536); loop { - read_nal(src, &mut nal_buf)?; + read_nal(*src, &mut nal_buf)?; if !nal_buf.is_empty() { let nal_type = nal_buf[0] & 0x1F; match nal_type { @@ -137,7 +137,7 @@ impl<'a> DemuxCore<'a> for RawH264Demuxer<'a> { let mut nal_buf = Vec::with_capacity(65536); let mut is_eof = false; while !is_eof { - match read_nal(&mut self.src, &mut nal_buf) { + match read_nal(self.src, &mut nal_buf) { Ok(()) => {}, Err(DemuxerError::IOError) => { is_eof = true; }, Err(err) => return Err(err), @@ -186,7 +186,7 @@ impl<'a> NAOptionHandler for RawH264Demuxer<'a> { } impl<'a> RawH264Demuxer<'a> { - fn new(io: &'a mut ByteReader<'a>) -> Self { + fn new(io: &'a mut dyn ByteIO) -> Self { RawH264Demuxer { src: io, cur_frame: 0, @@ -198,7 +198,7 @@ impl<'a> RawH264Demuxer<'a> { pub struct RawH264DemuxerCreator { } impl DemuxerCreator for RawH264DemuxerCreator { - 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(RawH264Demuxer::new(br)) } fn get_name(&self) -> &'static str { "rawh264" }