aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKostya Shishkov <kostya.shishkov@gmail.com>2023-05-04 19:14:14 +0200
committerKostya Shishkov <kostya.shishkov@gmail.com>2023-05-18 18:17:39 +0200
commite0d229ca18016f537e9915979c00711a257dba02 (patch)
treee377deeeeea844fbbff304692aded9ca2f023b5f
parent6cd529ccec49f73cd4644bacfdb9e0459e1fd491 (diff)
downloadnihav-e0d229ca18016f537e9915979c00711a257dba02.tar.gz
rmmux: generate monotone timestamps for video stream
-rw-r--r--nihav-realmedia/src/muxers/rmvb/videostream.rs7
1 files changed, 6 insertions, 1 deletions
diff --git a/nihav-realmedia/src/muxers/rmvb/videostream.rs b/nihav-realmedia/src/muxers/rmvb/videostream.rs
index d1aecce..1001c51 100644
--- a/nihav-realmedia/src/muxers/rmvb/videostream.rs
+++ b/nihav-realmedia/src/muxers/rmvb/videostream.rs
@@ -36,6 +36,7 @@ struct VideoStreamWriter {
cur_slice: usize,
seq_no: u8,
time: u32,
+ mi_time: u32,
}
impl RMStreamWriter for VideoStreamWriter {
@@ -86,6 +87,9 @@ impl RMStreamWriter for VideoStreamWriter {
self.buf.resize(src.len(), 0);
self.buf.copy_from_slice(&src);
self.time = ms;
+ if ms > 0 {
+ self.mi_time = ms.max(self.mi_time + 1);
+ }
}
true
} else {
@@ -140,7 +144,7 @@ impl RMStreamWriter for VideoStreamWriter {
self.cur_slice = 0;
self.seq_no = self.seq_no.wrapping_add(1);
}
- Some((ret, self.time, first))
+ Some((ret, self.mi_time, first))
} else {
None
}
@@ -164,6 +168,7 @@ pub fn create_video_stream(stream: &NAStream) -> MuxerResult<Box<dyn RMStreamWri
cur_slice: 0,
seq_no: 0,
time: 0,
+ mi_time: 0,
}));
}
}