fix: target duration should be float

This commit is contained in:
2025-06-17 10:47:15 +01:00
parent 65be582b75
commit 6803eefca2
4 changed files with 9 additions and 9 deletions

View File

@ -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,

View File

@ -344,7 +344,7 @@ fn parse_media_playlist_tags(i: &[u8]) -> IResult<&[u8], Vec<MediaPlaylistTag>>
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(

View File

@ -735,7 +735,7 @@ impl SessionData {
pub struct MediaPlaylist {
pub version: Option<usize>,
/// `#EXT-X-TARGETDURATION:<s>`
pub target_duration: u64,
pub target_duration: f32,
/// `#EXT-X-MEDIA-SEQUENCE:<number>`
pub media_sequence: u64,
pub segments: Vec<MediaSegmentType>,

View File

@ -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,