Use standard naming
This commit is contained in:
parent
407f88c69d
commit
3ffcca82c0
2 changed files with 29 additions and 16 deletions
17
src/info.rs
17
src/info.rs
|
@ -1,3 +1,4 @@
|
|||
use std::fmt;
|
||||
use crate::commands::{SpliceCommand, SpliceCommandType};
|
||||
use crate::descriptors::SpliceDescriptor;
|
||||
use crate::{CueError, TransportPacketWrite};
|
||||
|
@ -7,6 +8,7 @@ use std::fmt::{Display, Formatter};
|
|||
|
||||
pub const MPEG_2: Crc<u32> = Crc::<u32>::new(&CRC_32_MPEG_2);
|
||||
|
||||
#[derive(Debug, Clone, PartialEq)]
|
||||
pub struct SpliceInfoSection<C, S>
|
||||
where
|
||||
C: SpliceCommand,
|
||||
|
@ -16,6 +18,7 @@ where
|
|||
encoded: S,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, PartialEq)]
|
||||
struct SpliceInfoState<C>
|
||||
where
|
||||
C: SpliceCommand,
|
||||
|
@ -50,10 +53,12 @@ where
|
|||
|
||||
pub trait EncodingState {}
|
||||
|
||||
#[derive(Debug, Clone, Copy, PartialEq)]
|
||||
struct NotEncoded;
|
||||
|
||||
impl EncodingState for NotEncoded {}
|
||||
|
||||
#[derive(Debug, Clone, PartialEq)]
|
||||
struct EncodedData {
|
||||
section_length: u16,
|
||||
splice_command_length: u16,
|
||||
|
@ -199,11 +204,11 @@ impl<C> SpliceInfoSection<C, EncodedData>
|
|||
where
|
||||
C: SpliceCommand,
|
||||
{
|
||||
pub fn as_base64(&self) -> String {
|
||||
pub fn to_base64(&self) -> String {
|
||||
base64::encode(self.as_bytes())
|
||||
}
|
||||
|
||||
pub fn as_hex(&self) -> String {
|
||||
pub fn to_hex(&self) -> String {
|
||||
format!("0x{}", hex::encode(self.as_bytes()))
|
||||
}
|
||||
|
||||
|
@ -342,7 +347,7 @@ mod tests {
|
|||
let splice = SpliceInfoSection::new(SpliceNull::new());
|
||||
|
||||
assert_eq!(
|
||||
splice.into_encoded()?.as_base64(),
|
||||
splice.into_encoded()?.to_base64(),
|
||||
"/DARAAAAAAAAAP/wAAAAAHpPv/8=".to_string()
|
||||
);
|
||||
|
||||
|
@ -354,7 +359,7 @@ mod tests {
|
|||
let splice = SpliceInfoSection::new(SpliceNull::new());
|
||||
|
||||
assert_eq!(
|
||||
splice.into_encoded()?.as_hex(),
|
||||
splice.into_encoded()?.to_hex(),
|
||||
"0xfc301100000000000000fff0000000007a4fbfff".to_string()
|
||||
);
|
||||
|
||||
|
@ -367,7 +372,7 @@ mod tests {
|
|||
// splice.add_descriptor(SegmentationDescriptor::new().into());
|
||||
|
||||
assert_eq!(
|
||||
splice.into_encoded()?.as_base64(),
|
||||
splice.into_encoded()?.to_base64(),
|
||||
"/DA0AAAAAAAA///wBQb+cr0AUAAeAhxDVUVJSAAAjn/PAAGlmbAICAAAAAAsoKGKNAIAmsnRfg=="
|
||||
.to_string()
|
||||
);
|
||||
|
@ -381,7 +386,7 @@ mod tests {
|
|||
|
||||
// 0xFC3034000000000000FFFFF00506FE72BD0050001E021C435545494800008E7FCF0001A599B00808000000002CA0A18A3402009AC9D17E
|
||||
assert_eq!(
|
||||
splice.into_encoded()?.as_hex(),
|
||||
splice.into_encoded()?.to_hex(),
|
||||
"0xfc301600000000000000fff005068072bd00500000e9dfc26c".to_string()
|
||||
);
|
||||
Ok(())
|
||||
|
|
28
src/lib.rs
28
src/lib.rs
|
@ -26,15 +26,20 @@ pub enum CueError {
|
|||
}
|
||||
|
||||
pub trait ClockTimeExt {
|
||||
fn as_90k(&self) -> u64;
|
||||
fn to_90k(&self) -> u64;
|
||||
}
|
||||
|
||||
impl ClockTimeExt for Duration {
|
||||
fn as_90k(&self) -> u64 {
|
||||
(self.as_secs_f64() * 90_000.0) as u64
|
||||
fn to_90k(&self) -> u64 {
|
||||
(self.as_secs_f64() * 90_000.0).floor() as u64
|
||||
}
|
||||
}
|
||||
|
||||
/// Truncate to 6 decimal positions, as shown in the spec.
|
||||
fn ticks_to_secs(value: u64) -> f64 {
|
||||
(value as f64 / 90_000.0 * 1_000_000.0).ceil() as f64 / 1_000_000.0
|
||||
}
|
||||
|
||||
#[cfg(feature = "serde")]
|
||||
fn serialize_time<S>(value: &u64, serializer: S) -> Result<S::Ok, S::Error>
|
||||
where
|
||||
|
@ -43,11 +48,6 @@ where
|
|||
serializer.serialize_f64(ticks_to_secs(*value))
|
||||
}
|
||||
|
||||
/// Truncate to 6 decimal positions, as shown in the spec.
|
||||
pub fn ticks_to_secs(value: u64) -> f64 {
|
||||
(value as f64 / 90_000.0 * 1_000_000.0).ceil() as f64 / 1_000_000.0
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
@ -55,12 +55,20 @@ mod tests {
|
|||
#[test]
|
||||
fn test_clock_time() {
|
||||
let duration = Duration::from_secs(1);
|
||||
assert_eq!(duration.as_90k(), 90_000);
|
||||
assert_eq!(duration.to_90k(), 90_000);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_spec_example() {
|
||||
let time = Duration::from_secs_f64(21388.766756);
|
||||
assert_eq!(time.as_90k(), 0x072bd0050);
|
||||
assert_eq!(time.to_90k(), 0x072bd0050);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_ticks_to_secs() {
|
||||
let time = Duration::from_secs_f64(21388.766756);
|
||||
assert_eq!(time.to_90k(), 0x072bd0050);
|
||||
assert_eq!(ticks_to_secs(0x072bd0050), 21388.766756);
|
||||
assert_eq!(ticks_to_secs(time.to_90k()), 21388.766756);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue