X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=nihav-core%2Fsrc%2Fframe.rs;h=8944f45bf5de6453c0990aec892f283cfc778b68;hb=b36f412c24813b14cb2b1f8fd151863e2a49c1e2;hp=26e8640aa5dc236ee7ba605cf2126e91c333a957;hpb=89f25cd7aaba43aa728c4923c27da59b7285b170;p=nihav.git diff --git a/nihav-core/src/frame.rs b/nihav-core/src/frame.rs index 26e8640..8944f45 100644 --- a/nihav-core/src/frame.rs +++ b/nihav-core/src/frame.rs @@ -53,12 +53,15 @@ pub struct NAVideoInfo { pub flipped: bool, /// Picture pixel format. pub format: NAPixelFormaton, + /// Declared bits per sample. + pub bits: u8, } impl NAVideoInfo { /// Constructs a new `NAVideoInfo` instance. pub fn new(w: usize, h: usize, flip: bool, fmt: NAPixelFormaton) -> Self { - NAVideoInfo { width: w, height: h, flipped: flip, format: fmt } + let bits = fmt.get_total_depth(); + NAVideoInfo { width: w, height: h, flipped: flip, format: fmt, bits } } /// Returns picture width. pub fn get_width(&self) -> usize { self.width as usize } @@ -924,8 +927,8 @@ impl NATimeInfo { /// Converts time in given scale into timestamp in given base. pub fn time_to_ts(time: u64, base: u64, tb_num: u32, tb_den: u32) -> u64 { - let tb_num = tb_num as u64; - let tb_den = tb_den as u64; + let tb_num = u64::from(tb_num); + let tb_den = u64::from(tb_den); let tmp = time.checked_mul(tb_num); if let Some(tmp) = tmp { tmp / base / tb_den @@ -946,8 +949,8 @@ impl NATimeInfo { } /// Converts timestamp in given base into time in given scale. pub fn ts_to_time(ts: u64, base: u64, tb_num: u32, tb_den: u32) -> u64 { - let tb_num = tb_num as u64; - let tb_den = tb_den as u64; + let tb_num = u64::from(tb_num); + let tb_den = u64::from(tb_den); let tmp = ts.checked_mul(base); if let Some(tmp) = tmp { let tmp2 = tmp.checked_mul(tb_num);