- let res = detect::detect_format(name, &mut br);
- if res.is_none() {
- println!("cannot detect format for {}", name);
+ let (is_raw, start, end) = detect_tags(&mut br);
+
+ 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 full_reg = FullRegister::new();
+ let mut demuxer = DemuxerObject::create(&mut br, &full_reg, name, is_raw);
+ if demuxer.is_none() {
+ println!("No demuxer found!");