X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=nihav-realmedia%2Fsrc%2Fdemuxers%2Frealmedia.rs;h=6335c6d9b426730ef7c84d6e20621ad3b5c0faad;hb=e614e5e611a4ae6769a0da7cbccec5842b3dbd0f;hp=14183c9cc4ac54fca43069cf4b3a10d7c9b5cbed;hpb=0d9dc164b091428c4d23637c4996c430bbc09f2c;p=nihav.git diff --git a/nihav-realmedia/src/demuxers/realmedia.rs b/nihav-realmedia/src/demuxers/realmedia.rs index 14183c9..6335c6d 100644 --- a/nihav-realmedia/src/demuxers/realmedia.rs +++ b/nihav-realmedia/src/demuxers/realmedia.rs @@ -510,7 +510,11 @@ println!("unknown MLTI substream {:08X} / {:08X}", tag, tag2); }; let cname = find_codec_name(RM_AUDIO_CODEC_REGISTER, ainfo.fcc); let blk_size = if ainfo.fcc != mktag!(b"sipr") { - ainfo.granularity as usize + if let Some(ref iinfo) = ainfo.ileave_info { + iinfo.block_size as usize + } else { + ainfo.granularity as usize + } } else { validate!(ainfo.flavor <= 3); RM_SIPRO_BLOCK_SIZES[ainfo.flavor as usize] @@ -1247,7 +1251,8 @@ impl<'a> DemuxCore<'a> for RealAudioDemuxer<'a> { fn get_frame(&mut self, strmgr: &mut StreamManager) -> DemuxerResult { if !self.queued_pkts.is_empty() { - let pkt = self.queued_pkts.pop().unwrap(); + let mut pkt = self.queued_pkts.pop().unwrap(); + pkt.ts.pts = None; return Ok(pkt); } if (self.data_end != 0) && (self.src.tell() >= self.data_end) { @@ -1257,10 +1262,13 @@ impl<'a> DemuxCore<'a> for RealAudioDemuxer<'a> { let stream = streamres.unwrap(); if let Some(ref mut astr) = self.stream { loop { - let ret = astr.read_apackets(&mut self.queued_pkts, self.src, stream.clone(), 0, false, self.blk_size); + let mut ret = astr.read_apackets(&mut self.queued_pkts, self.src, stream.clone(), 0, false, self.blk_size); if let Err(DemuxerError::TryAgain) = ret { continue; } + if let Ok(ref mut pkt) = ret { + pkt.ts.pts = None; + } return ret; } }