X-Git-Url: https://git.nihav.org/?p=nihav.git;a=blobdiff_plain;f=nihav-realmedia%2Fsrc%2Fcodecs%2Frv60.rs;h=753b8050178d1d2ae8fbe844fda8f90967783363;hp=bf89a5151361423cddb78f8b979c18417a7aec14;hb=6e24ec0bcf9d521c66551eebd198400c5342b0be;hpb=d8ee06da85fe5e695f4eeaf3db72c99e1ac506d2 diff --git a/nihav-realmedia/src/codecs/rv60.rs b/nihav-realmedia/src/codecs/rv60.rs index bf89a51..753b805 100644 --- a/nihav-realmedia/src/codecs/rv60.rs +++ b/nihav-realmedia/src/codecs/rv60.rs @@ -1431,6 +1431,22 @@ println!("???"); let hdr = FrameHeader::read(&mut br)?; let mut slices: Vec = Vec::new(); hdr.parse_slice_sizes(&mut br, &mut slices)?; + match hdr.ftype { + FrameType::P => { + if self.ipbs.get_lastref().is_none() { + return Err(DecoderError::MissingReference); + } + }, + FrameType::B => { + if self.ipbs.get_lastref().is_none() { + return Err(DecoderError::MissingReference); + } + if self.ipbs.get_nextref().is_none() { + return Err(DecoderError::MissingReference); + } + }, + _ => {}, + }; let tmp_vinfo = NAVideoInfo::new(hdr.width, hdr.height, false, YUV420_FORMAT); let ret = supp.pool_u8.get_free();