X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=src%2Fdemuxers%2Frealmedia.rs;h=2702b9b1203e94e040f2f43da3c3bc323d89e450;hb=5b744f82bb80a19d86211aac8dfdda060cc93f4b;hp=44151923f3a677f3d0998dedbfea3cca430eecd2;hpb=c7cf8c496a68d9edd3685e25c0c902d81ed6b6d8;p=nihav.git diff --git a/src/demuxers/realmedia.rs b/src/demuxers/realmedia.rs index 4415192..2702b9b 100644 --- a/src/demuxers/realmedia.rs +++ b/src/demuxers/realmedia.rs @@ -375,7 +375,11 @@ impl<'a> DemuxCore<'a> for RealMediaDemuxer<'a> { //println!(" mode 2 pkt {}/{} tail {}/{} seq {}", packet_num, num_pkts, tail_size, frame_size, seq_no); self.slice_buf.resize(tail_size as usize, 0); self.src.read_buf(self.slice_buf.as_mut_slice())?; - vstr.add_slice(packet_num as usize, self.slice_buf.as_slice()); + if packet_num == 1 && frame_size == tail_size { + vstr.start_slice(num_pkts, frame_size as usize, self.slice_buf.as_slice()); + } else { + vstr.add_slice(packet_num as usize, self.slice_buf.as_slice()); + } while self.src.tell() < pos + (payload_size as u64) { let res = read_multiple_frame(self.src, stream.clone(), false, false);