projects
/
nihav.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
introduce stream and container duration
[nihav.git]
/
nihav-core
/
src
/
frame.rs
diff --git
a/nihav-core/src/frame.rs
b/nihav-core/src/frame.rs
index f7a318a98021c69cbb7cd6a05f251490739876c1..8c58e19b66756c2ebbcaf45fb981cc245ac37394 100644
(file)
--- a/
nihav-core/src/frame.rs
+++ b/
nihav-core/src/frame.rs
@@
-979,7
+979,7
@@
impl NATimeInfo {
}
}
}
}
}
}
- fn get_cur_ts(&self) -> u64 { self.pts.unwrap_or
(
self.dts.unwrap_or(0)) }
+ fn get_cur_ts(&self) -> u64 { self.pts.unwrap_or
_else(||
self.dts.unwrap_or(0)) }
fn get_cur_millis(&self) -> u64 {
let ts = self.get_cur_ts();
Self::ts_to_time(ts, 1000, self.tb_num, self.tb_den)
fn get_cur_millis(&self) -> u64 {
let ts = self.get_cur_ts();
Self::ts_to_time(ts, 1000, self.tb_num, self.tb_den)
@@
-1289,6
+1289,8
@@
pub struct NAStream {
pub tb_num: u32,
/// Timebase denominator.
pub tb_den: u32,
pub tb_num: u32,
/// Timebase denominator.
pub tb_den: u32,
+ /// Duration in timebase units (zero if not available).
+ pub duration: u64,
}
/// A specialised reference-counted `NAStream` type.
}
/// A specialised reference-counted `NAStream` type.
@@
-1312,9
+1314,9
@@
pub fn reduce_timebase(tb_num: u32, tb_den: u32) -> (u32, u32) {
impl NAStream {
/// Constructs a new `NAStream` instance.
impl NAStream {
/// Constructs a new `NAStream` instance.
- pub fn new(mt: StreamType, id: u32, info: NACodecInfo, tb_num: u32, tb_den: u32) -> Self {
+ pub fn new(mt: StreamType, id: u32, info: NACodecInfo, tb_num: u32, tb_den: u32
, duration: u64
) -> Self {
let (n, d) = reduce_timebase(tb_num, tb_den);
let (n, d) = reduce_timebase(tb_num, tb_den);
- NAStream { media_type: mt, id, num: 0, info: info.into_ref(), tb_num: n, tb_den: d }
+ NAStream { media_type: mt, id, num: 0, info: info.into_ref(), tb_num: n, tb_den: d
, duration
}
}
/// Returns stream id.
pub fn get_id(&self) -> u32 { self.id }
}
/// Returns stream id.
pub fn get_id(&self) -> u32 { self.id }
@@
-1334,6
+1336,8
@@
impl NAStream {
self.tb_num = n;
self.tb_den = d;
}
self.tb_num = n;
self.tb_den = d;
}
+ /// Returns stream duration.
+ pub fn get_duration(&self) -> usize { self.num }
/// Converts current instance into a reference-counted one.
pub fn into_ref(self) -> NAStreamRef { Arc::new(self) }
}
/// Converts current instance into a reference-counted one.
pub fn into_ref(self) -> NAStreamRef { Arc::new(self) }
}