mirror of
https://github.com/v0l/m3u8-rs.git
synced 2025-06-21 10:50:44 +00:00
fix: target duration should be float
This commit is contained in:
@ -42,7 +42,7 @@
|
|||||||
//!
|
//!
|
||||||
//! let playlist = MediaPlaylist {
|
//! let playlist = MediaPlaylist {
|
||||||
//! version: Some(6),
|
//! version: Some(6),
|
||||||
//! target_duration: 3,
|
//! target_duration: 3.,
|
||||||
//! media_sequence: 338559,
|
//! media_sequence: 338559,
|
||||||
//! discontinuity_sequence: 1234,
|
//! discontinuity_sequence: 1234,
|
||||||
//! end_list: true,
|
//! end_list: true,
|
||||||
@ -74,7 +74,7 @@
|
|||||||
//! WRITE_OPT_FLOAT_PRECISION.store(5, Ordering::Relaxed);
|
//! WRITE_OPT_FLOAT_PRECISION.store(5, Ordering::Relaxed);
|
||||||
//!
|
//!
|
||||||
//! let playlist = MediaPlaylist {
|
//! let playlist = MediaPlaylist {
|
||||||
//! target_duration: 3,
|
//! target_duration: 3.,
|
||||||
//! segments: vec![
|
//! segments: vec![
|
||||||
//! MediaSegmentType::Full(MediaSegment {
|
//! MediaSegmentType::Full(MediaSegment {
|
||||||
//! duration: 2.9,
|
//! duration: 2.9,
|
||||||
|
@ -344,7 +344,7 @@ fn parse_media_playlist_tags(i: &[u8]) -> IResult<&[u8], Vec<MediaPlaylistTag>>
|
|||||||
enum MediaPlaylistTag {
|
enum MediaPlaylistTag {
|
||||||
Version(usize),
|
Version(usize),
|
||||||
Segment(SegmentTag),
|
Segment(SegmentTag),
|
||||||
TargetDuration(u64),
|
TargetDuration(f32),
|
||||||
MediaSequence(u64),
|
MediaSequence(u64),
|
||||||
DiscontinuitySequence(u64),
|
DiscontinuitySequence(u64),
|
||||||
EndList,
|
EndList,
|
||||||
@ -367,7 +367,7 @@ fn media_playlist_tag(i: &[u8]) -> IResult<&[u8], MediaPlaylistTag> {
|
|||||||
alt((
|
alt((
|
||||||
map(version_tag, MediaPlaylistTag::Version),
|
map(version_tag, MediaPlaylistTag::Version),
|
||||||
map(
|
map(
|
||||||
pair(tag("#EXT-X-TARGETDURATION:"), number),
|
pair(tag("#EXT-X-TARGETDURATION:"), float),
|
||||||
|(_, duration)| MediaPlaylistTag::TargetDuration(duration),
|
|(_, duration)| MediaPlaylistTag::TargetDuration(duration),
|
||||||
),
|
),
|
||||||
map(
|
map(
|
||||||
|
@ -735,7 +735,7 @@ impl SessionData {
|
|||||||
pub struct MediaPlaylist {
|
pub struct MediaPlaylist {
|
||||||
pub version: Option<usize>,
|
pub version: Option<usize>,
|
||||||
/// `#EXT-X-TARGETDURATION:<s>`
|
/// `#EXT-X-TARGETDURATION:<s>`
|
||||||
pub target_duration: u64,
|
pub target_duration: f32,
|
||||||
/// `#EXT-X-MEDIA-SEQUENCE:<number>`
|
/// `#EXT-X-MEDIA-SEQUENCE:<number>`
|
||||||
pub media_sequence: u64,
|
pub media_sequence: u64,
|
||||||
pub segments: Vec<MediaSegmentType>,
|
pub segments: Vec<MediaSegmentType>,
|
||||||
|
@ -203,7 +203,7 @@ fn create_and_parse_master_playlist_empty() {
|
|||||||
fn create_segment_float_inf() {
|
fn create_segment_float_inf() {
|
||||||
let playlist = Playlist::MediaPlaylist(MediaPlaylist {
|
let playlist = Playlist::MediaPlaylist(MediaPlaylist {
|
||||||
version: Some(6),
|
version: Some(6),
|
||||||
target_duration: 3,
|
target_duration: 3.0,
|
||||||
media_sequence: 338559,
|
media_sequence: 338559,
|
||||||
discontinuity_sequence: 1234,
|
discontinuity_sequence: 1234,
|
||||||
end_list: true,
|
end_list: true,
|
||||||
@ -335,7 +335,7 @@ fn create_and_parse_media_playlist_empty() {
|
|||||||
#[test]
|
#[test]
|
||||||
fn create_and_parse_media_playlist_single_segment() {
|
fn create_and_parse_media_playlist_single_segment() {
|
||||||
let mut playlist_original = Playlist::MediaPlaylist(MediaPlaylist {
|
let mut playlist_original = Playlist::MediaPlaylist(MediaPlaylist {
|
||||||
target_duration: 2,
|
target_duration: 2.,
|
||||||
segments: vec![MediaSegmentType::Full(MediaSegment {
|
segments: vec![MediaSegmentType::Full(MediaSegment {
|
||||||
uri: "20140311T113819-01-338559live.ts".into(),
|
uri: "20140311T113819-01-338559live.ts".into(),
|
||||||
duration: 2.002,
|
duration: 2.002,
|
||||||
@ -352,7 +352,7 @@ fn create_and_parse_media_playlist_single_segment() {
|
|||||||
fn create_and_parse_media_playlist_full() {
|
fn create_and_parse_media_playlist_full() {
|
||||||
let mut playlist_original = Playlist::MediaPlaylist(MediaPlaylist {
|
let mut playlist_original = Playlist::MediaPlaylist(MediaPlaylist {
|
||||||
version: Some(4),
|
version: Some(4),
|
||||||
target_duration: 3,
|
target_duration: 3.,
|
||||||
media_sequence: 338559,
|
media_sequence: 338559,
|
||||||
discontinuity_sequence: 1234,
|
discontinuity_sequence: 1234,
|
||||||
end_list: true,
|
end_list: true,
|
||||||
@ -480,7 +480,7 @@ fn parsing_binary_data_should_fail_cleanly() {
|
|||||||
fn create_and_parse_media_playlist_llhls() {
|
fn create_and_parse_media_playlist_llhls() {
|
||||||
let mut playlist_original = Playlist::MediaPlaylist(MediaPlaylist {
|
let mut playlist_original = Playlist::MediaPlaylist(MediaPlaylist {
|
||||||
version: Some(9),
|
version: Some(9),
|
||||||
target_duration: 2,
|
target_duration: 2.,
|
||||||
media_sequence: 338559,
|
media_sequence: 338559,
|
||||||
discontinuity_sequence: 1234,
|
discontinuity_sequence: 1234,
|
||||||
end_list: false,
|
end_list: false,
|
||||||
|
Reference in New Issue
Block a user