- file.seek(SeekFrom::Start(0)).unwrap();
- let mut file = BufReader::new(file);
- let mut fr = FileReader::new_read(&mut file);
- let mut br = ByteReader::new(&mut fr);
- let res = create_demuxer(dmx_fact, &mut br);
- if res.is_err() {
- println!("cannot create demuxer");
+ let mut nfr: Box<dyn ByteIO>;
+ if start != 0 || end.is_some() {
+ //println!(" limiting range to {:X}-{:X}", start, end.unwrap_or(0));
+ let file = fr.finish();
+ nfr = Box::new(BoundedFileReader::new_read(file, start, end).unwrap());
+ } else {
+ nfr = Box::new(fr);
+ }
+ let mut br = ByteReader::new(nfr.as_mut());
+ let dmx = DemuxerObject::create(&mut br, &self.full_reg, name, is_raw);
+ if dmx.is_none() {
+ println!("No demuxer found!");