X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=nihav-llaudio%2Fsrc%2Fdemuxers%2Fflac.rs;h=055f4fd378eabe7f400090a8592ad08fd547eaeb;hb=8e14efb001fac3fecb0cb56df8705d23fa2231a8;hp=b941bf4b767f284d02a9cb8e60753ef03c4535a3;hpb=757ee9164bd2ab7e1690ae2ea4e5a03f7b37f1b5;p=nihav.git diff --git a/nihav-llaudio/src/demuxers/flac.rs b/nihav-llaudio/src/demuxers/flac.rs index b941bf4..055f4fd 100644 --- a/nihav-llaudio/src/demuxers/flac.rs +++ b/nihav-llaudio/src/demuxers/flac.rs @@ -89,7 +89,7 @@ impl<'a> FLACDemuxer<'a> { 1 => 192, 2..=5 => 576 << (bsz_id - 2), 6 => { - validate!(idx + 1 <= buf.len()); + validate!(idx < buf.len()); u64::from(buf[idx]) + 1 }, 7 => { @@ -99,9 +99,9 @@ impl<'a> FLACDemuxer<'a> { _ => 256 << (bsz_id - 8), }; let pts = u64::from(read_utf8(&buf[4..])?); - + validate!(idx < buf.len()); - + (blksamps, pts) }; @@ -207,8 +207,7 @@ impl<'a> DemuxCore<'a> for FLACDemuxer<'a> { let (buf, pts, duration) = self.read_frame()?; let stream = strmgr.get_stream(0).unwrap(); - let (tb_num, tb_den) = stream.get_timebase(); - let ts = NATimeInfo::new(Some(pts), None, Some(duration), tb_num, tb_den); + let ts = stream.make_ts(Some(pts), None, Some(duration)); let pkt = NAPacket::new(stream, ts, true, buf); Ok(pkt) @@ -286,6 +285,7 @@ mod test { #[test] fn test_flac_demux() { + // sample: https://samples.mplayerhq.hu/A-codecs/lossless/luckynight.flac let mut file = File::open("assets/LLaudio/luckynight.flac").unwrap(); let mut fr = FileReader::new_read(&mut file); let mut br = ByteReader::new(&mut fr);