- self.vid_id = strmgr.add_stream(NAStream::new(StreamType::Video, 0, vinfo, 1, 12)).unwrap();
-
- let srate = read_u16le(&header[804..])? as u32;
+ self.vid_id = strmgr.add_stream(NAStream::new(StreamType::Video, 0, vinfo, 1, 12, nframes as u64)).unwrap();
+
+ let is_ext_audio = (hdr_size & 0xF) == 4;
+ let ext_audio_id = if is_ext_audio {
+ src.read_u16le()?
+ } else { 0 };
+ if is_ext_audio {
+ validate!(ext_audio_id >= 3 && ext_audio_id <= 6);
+ self.is_lhaud = true;
+ }
+ let srate = u32::from(read_u16le(&header[804..])?);