aboutsummaryrefslogtreecommitdiff
path: root/stream
diff options
context:
space:
mode:
Diffstat (limited to 'stream')
-rw-r--r--stream/src/stream_info.rs12
1 files changed, 6 insertions, 6 deletions
diff --git a/stream/src/stream_info.rs b/stream/src/stream_info.rs
index a8b6989..43c536a 100644
--- a/stream/src/stream_info.rs
+++ b/stream/src/stream_info.rs
@@ -57,12 +57,7 @@ pub(crate) async fn stream_info(info: Arc<SMediaInfo>) -> Result<(InternalStream
let segment = StreamSegmentInfo {
name: None,
- duration: metadata[0]
- .info
- .as_ref()
- .unwrap()
- .duration
- .unwrap_or_default(),
+ duration: media_duration(&metadata[0]),
tracks,
};
Ok((
@@ -162,3 +157,8 @@ pub(crate) async fn write_stream_info(info: Arc<SMediaInfo>, mut b: DuplexStream
spawn(async move { b.write_all(&serde_json::to_vec(&info)?).await });
Ok(())
}
+
+fn media_duration(m: &MatroskaMetadata) -> f64 {
+ let info = m.info.as_ref().unwrap();
+ (info.duration.unwrap_or_default() * info.timestamp_scale as f64) / 1_000_000_000.
+}