diff --git a/src/lib.rs b/src/lib.rs index 0362181..bf2cd63 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -42,7 +42,7 @@ //! //! let playlist = MediaPlaylist { //! version: Some(6), -//! target_duration: 3, +//! target_duration: 3., //! media_sequence: 338559, //! discontinuity_sequence: 1234, //! end_list: true, @@ -74,7 +74,7 @@ //! WRITE_OPT_FLOAT_PRECISION.store(5, Ordering::Relaxed); //! //! let playlist = MediaPlaylist { -//! target_duration: 3, +//! target_duration: 3., //! segments: vec![ //! MediaSegmentType::Full(MediaSegment { //! duration: 2.9, diff --git a/src/parser.rs b/src/parser.rs index a698e22..90bd1c3 100644 --- a/src/parser.rs +++ b/src/parser.rs @@ -344,7 +344,7 @@ fn parse_media_playlist_tags(i: &[u8]) -> IResult<&[u8], Vec> enum MediaPlaylistTag { Version(usize), Segment(SegmentTag), - TargetDuration(u64), + TargetDuration(f32), MediaSequence(u64), DiscontinuitySequence(u64), EndList, @@ -367,7 +367,7 @@ fn media_playlist_tag(i: &[u8]) -> IResult<&[u8], MediaPlaylistTag> { alt(( map(version_tag, MediaPlaylistTag::Version), map( - pair(tag("#EXT-X-TARGETDURATION:"), number), + pair(tag("#EXT-X-TARGETDURATION:"), float), |(_, duration)| MediaPlaylistTag::TargetDuration(duration), ), map( diff --git a/src/playlist.rs b/src/playlist.rs index 5c88be9..ca04b3b 100644 --- a/src/playlist.rs +++ b/src/playlist.rs @@ -735,7 +735,7 @@ impl SessionData { pub struct MediaPlaylist { pub version: Option, /// `#EXT-X-TARGETDURATION:` - pub target_duration: u64, + pub target_duration: f32, /// `#EXT-X-MEDIA-SEQUENCE:` pub media_sequence: u64, pub segments: Vec, diff --git a/tests/lib.rs b/tests/lib.rs index f54839e..853ee47 100644 --- a/tests/lib.rs +++ b/tests/lib.rs @@ -203,7 +203,7 @@ fn create_and_parse_master_playlist_empty() { fn create_segment_float_inf() { let playlist = Playlist::MediaPlaylist(MediaPlaylist { version: Some(6), - target_duration: 3, + target_duration: 3.0, media_sequence: 338559, discontinuity_sequence: 1234, end_list: true, @@ -335,7 +335,7 @@ fn create_and_parse_media_playlist_empty() { #[test] fn create_and_parse_media_playlist_single_segment() { let mut playlist_original = Playlist::MediaPlaylist(MediaPlaylist { - target_duration: 2, + target_duration: 2., segments: vec![MediaSegmentType::Full(MediaSegment { uri: "20140311T113819-01-338559live.ts".into(), duration: 2.002, @@ -352,7 +352,7 @@ fn create_and_parse_media_playlist_single_segment() { fn create_and_parse_media_playlist_full() { let mut playlist_original = Playlist::MediaPlaylist(MediaPlaylist { version: Some(4), - target_duration: 3, + target_duration: 3., media_sequence: 338559, discontinuity_sequence: 1234, end_list: true, @@ -480,7 +480,7 @@ fn parsing_binary_data_should_fail_cleanly() { fn create_and_parse_media_playlist_llhls() { let mut playlist_original = Playlist::MediaPlaylist(MediaPlaylist { version: Some(9), - target_duration: 2, + target_duration: 2., media_sequence: 338559, discontinuity_sequence: 1234, end_list: false,