use hang::container::Timestamp;
#[derive(Default)]
pub struct MinFrameDuration {
last_timestamp: Option<Timestamp>,
min_duration: Option<Timestamp>,
}
impl MinFrameDuration {
pub fn new() -> Self {
Self::default()
}
pub fn observe(&mut self, ts: Timestamp) -> Option<moq_lite::Time> {
let last = self.last_timestamp.replace(ts)?;
let duration = ts.checked_sub(last).ok()?;
if duration >= self.min_duration.unwrap_or(Timestamp::MAX) {
return None;
}
self.min_duration = Some(duration);
duration.convert().ok()
}
}