mirror of
https://github.com/rutgersc/m3u8-rs.git
synced 2024-05-19 08:48:09 +00:00
Compare commits
6 commits
847db96cf6
...
5d3173e219
Author | SHA1 | Date | |
---|---|---|---|
5d3173e219 | |||
1c62344e94 | |||
446391bdb7 | |||
7f322675eb | |||
c5cceeb4f6 | |||
5109753b96 |
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "m3u8-rs"
|
||||
version = "5.0.5"
|
||||
version = "6.0.0"
|
||||
authors = ["Rutger"]
|
||||
readme = "README.md"
|
||||
repository = "https://github.com/rutgersc/m3u8-rs"
|
||||
|
|
28
src/lib.rs
28
src/lib.rs
|
@ -42,7 +42,7 @@
|
|||
//!
|
||||
//! let playlist = MediaPlaylist {
|
||||
//! version: Some(6),
|
||||
//! target_duration: 3.0,
|
||||
//! target_duration: 3,
|
||||
//! media_sequence: 338559,
|
||||
//! discontinuity_sequence: 1234,
|
||||
//! end_list: true,
|
||||
|
@ -64,6 +64,32 @@
|
|||
//! //let mut file = std::fs::File::open("playlist.m3u8").unwrap();
|
||||
//! //playlist.write_to(&mut file).unwrap();
|
||||
//! ```
|
||||
//!
|
||||
//! Controlling the output precision for floats, such as #EXTINF (default is unset)
|
||||
//!
|
||||
//! ```
|
||||
//! use std::sync::atomic::Ordering;
|
||||
//! use m3u8_rs::{WRITE_OPT_FLOAT_PRECISION, MediaPlaylist, MediaSegment};
|
||||
//!
|
||||
//! WRITE_OPT_FLOAT_PRECISION.store(5, Ordering::Relaxed);
|
||||
//!
|
||||
//! let playlist = MediaPlaylist {
|
||||
//! target_duration: 3.0,
|
||||
//! segments: vec![
|
||||
//! MediaSegment {
|
||||
//! duration: 2.9,
|
||||
//! title: Some("title".into()),
|
||||
//! ..Default::default()
|
||||
//! },
|
||||
//! ],
|
||||
//! ..Default::default()
|
||||
//! };
|
||||
//!
|
||||
//! let mut v: Vec<u8> = Vec::new();
|
||||
//!
|
||||
//! playlist.write_to(&mut v).unwrap();
|
||||
//! let m3u8_str: &str = std::str::from_utf8(&v).unwrap();
|
||||
//! assert!(m3u8_str.contains("#EXTINF:2.90000,title"));
|
||||
|
||||
mod playlist;
|
||||
pub use playlist::*;
|
||||
|
|
|
@ -344,7 +344,7 @@ fn parse_media_playlist_tags(i: &[u8]) -> IResult<&[u8], Vec<MediaPlaylistTag>>
|
|||
enum MediaPlaylistTag {
|
||||
Version(usize),
|
||||
Segment(SegmentTag),
|
||||
TargetDuration(f32),
|
||||
TargetDuration(u64),
|
||||
MediaSequence(u64),
|
||||
DiscontinuitySequence(u64),
|
||||
EndList,
|
||||
|
@ -361,7 +361,7 @@ fn media_playlist_tag(i: &[u8]) -> IResult<&[u8], MediaPlaylistTag> {
|
|||
alt((
|
||||
map(version_tag, MediaPlaylistTag::Version),
|
||||
map(
|
||||
pair(tag("#EXT-X-TARGETDURATION:"), float),
|
||||
pair(tag("#EXT-X-TARGETDURATION:"), number),
|
||||
|(_, duration)| MediaPlaylistTag::TargetDuration(duration),
|
||||
),
|
||||
map(
|
||||
|
|
|
@ -718,7 +718,7 @@ impl SessionData {
|
|||
pub struct MediaPlaylist {
|
||||
pub version: Option<usize>,
|
||||
/// `#EXT-X-TARGETDURATION:<s>`
|
||||
pub target_duration: f32,
|
||||
pub target_duration: u64,
|
||||
/// `#EXT-X-MEDIA-SEQUENCE:<number>`
|
||||
pub media_sequence: u64,
|
||||
pub segments: Vec<MediaSegment>,
|
||||
|
|
|
@ -201,7 +201,7 @@ fn create_and_parse_master_playlist_empty() {
|
|||
|
||||
#[test]
|
||||
fn create_segment_float_inf() {
|
||||
let playlist = MediaPlaylist {
|
||||
let playlist = Playlist::MediaPlaylist(MediaPlaylist {
|
||||
version: Some(6),
|
||||
target_duration: 3.0,
|
||||
media_sequence: 338559,
|
||||
|
@ -215,7 +215,7 @@ fn create_segment_float_inf() {
|
|||
..Default::default()
|
||||
}],
|
||||
..Default::default()
|
||||
};
|
||||
});
|
||||
|
||||
let mut v: Vec<u8> = Vec::new();
|
||||
playlist.write_to(&mut v).unwrap();
|
||||
|
@ -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.0,
|
||||
target_duration: 2,
|
||||
segments: vec![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.0,
|
||||
target_duration: 3,
|
||||
media_sequence: 338559,
|
||||
discontinuity_sequence: 1234,
|
||||
end_list: true,
|
||||
|
|
Loading…
Reference in a new issue