aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKostya Shishkov <kostya.shishkov@gmail.com>2018-02-24 15:03:18 +0100
committerKostya Shishkov <kostya.shishkov@gmail.com>2018-02-24 18:35:29 +0100
commit8a5cb596b2717eb85c0601867f713c3df9bb3383 (patch)
tree68d59643b1f662897cdf4030be4be8eea8cecdcc
parent2bfdf3292154cddce4ac732c2761bca8ca63a45c (diff)
downloadnihav-8a5cb596b2717eb85c0601867f713c3df9bb3383.tar.gz
realmedia: output completed frame in mode 0
-rw-r--r--src/demuxers/realmedia.rs9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/demuxers/realmedia.rs b/src/demuxers/realmedia.rs
index f8d5a3e..28e20dc 100644
--- a/src/demuxers/realmedia.rs
+++ b/src/demuxers/realmedia.rs
@@ -230,7 +230,14 @@ println!(" mode 0 pkt {}/{} off {}/{} seq {}", packet_num, num_pkts, off, frame_
} else {
vstr.add_slice(packet_num as usize, self.slice_buf.as_slice());
}
- continue;
+ if (packet_num as usize) < num_pkts {
+ continue;
+ }
+ //todo: check if full frame is received
+ let (tb_num, tb_den) = stream.get_timebase();
+ let ts = NATimeInfo::new(Some(ts as u64), None, None, tb_num, tb_den);
+ let pkt = NAPacket::new(stream, ts, keyframe, vstr.get_frame_data());
+ Ok(pkt)
},
1 => { // whole frame
let seq_no = self.src.read_byte()?;