diff --git a/src/bin/loop_server.rs b/src/bin/loop_server.rs index df62043..0967182 100644 --- a/src/bin/loop_server.rs +++ b/src/bin/loop_server.rs @@ -92,7 +92,7 @@ fn create_loop() -> WebmServer { // TODO: this is incorrect, condition needs to also affirm we're the first video block of the cluster chunk.mark_keyframe(true); } - chunk.extend_timespan(cluster_timecode + (block.timecode as u64)); + chunk.observe_simpleblock_timecode(block.timecode); } encode_webm_element(&SimpleBlock(*block), &mut buffer).unwrap(); }, diff --git a/src/chunk.rs b/src/chunk.rs index 5a0dc2d..20b29cf 100644 --- a/src/chunk.rs +++ b/src/chunk.rs @@ -47,10 +47,11 @@ impl> Chunk { *bytes_used = cursor.position() as u8; } } - pub fn extend_timespan(&mut self, timecode: u64) { + pub fn observe_simpleblock_timecode(&mut self, timecode: i16) { if let &mut Chunk::ClusterHead {start, ref mut end, ..} = self { - if timecode > start { - *end = timecode; + let absolute_timecode = start + (timecode as u64); + if absolute_timecode > start { + *end = absolute_timecode; } } }