Anton Eicher
e3b6390186
EXTINF tags need to be in floating-point format to work with AWS Elemental MediaConvert
...
AWS Elemental MediaConvert rejects playlists with EXTINF tags that are not in floating point format. When m3u8 MediaSegment self.duration is an exact number without trailing decimals, writeln cuts off the decimal places and prints it like an integer.
This change adds support for fixed length floating point numbers.
2024-02-14 16:29:47 +02:00
rutgersc
7f322675eb
Merge pull request #73 from rutgersc/fix/targetduration
...
#EXT-X-TARGETDURATION:<s> is supposed to be a decimal-integer
2024-01-30 20:57:38 +01:00
Rutger Schoorstra
c5cceeb4f6
Update version to 6.0.0
2024-01-26 18:56:34 +01:00
Rutger Schoorstra
5109753b96
#EXT-X-TARGETDURATION:<s> is supposed to be a decimal-integer
...
https://datatracker.ietf.org/doc/html/rfc8216#section-4.3.3.1
2024-01-26 18:55:39 +01:00
Sebastian Dröge
487d63da4d
Udpate version to 5.0.5
2023-12-05 08:33:58 +02:00
Vadim Getmanshchuk
f6af8acbfe
ran rustfmt
2023-12-04 21:25:16 +02:00
Vadim Getmanshchuk
46622345d1
added test
2023-12-04 21:25:16 +02:00
Vadim Getmanshchuk
d8e0283ddb
allowing empty comments
2023-12-04 21:25:16 +02:00
Sebastian Dröge
b9cf88b7ec
Update version to 5.0.4
2023-05-08 10:24:06 +03:00
clitic
a1970192ff
Write BYTERANGE inside quotes
2023-04-12 10:39:44 +03:00
clitic
ae31a2741f
Parse #EXT-X-MAP BYTERANGE attr from quoted string
2023-04-12 10:39:44 +03:00
mmason
e7a6cf943c
allow millisecond accuracy for EXT-X-PROGRAM-DATE-TIME
2023-04-11 18:05:54 +03:00
Sebastian Dröge
48e416cd69
Update version to 5.0.3
2022-12-02 10:46:10 +02:00
Sebastian Dröge
015b05f26c
Fix some minor clippy warnings
2022-12-02 10:46:10 +02:00
Vadim Getmanshchuk
b0a9fe2625
When a manifest is incomplete or damaged, the contains_master_tag
may go into infinite loop if is_master_playlist_tag_line
detection hasn't had a chance to succeed.
...
Clippy recommendation is implemented to use `.is_none()` instead of comparing to literal `Option::None`.
Test added
2022-12-02 10:18:40 +02:00
Sebastian Dröge
14d24b94c8
Release 5.0.2
2022-09-23 20:16:57 +03:00
Shell Turner
2a76fa549c
Remove unnecessary features from chrono, removing vulnerable time dependency
2022-09-23 18:56:20 +03:00
Sebastian Dröge
18739b59ac
Release 5.0.1
2022-09-12 11:06:52 +03:00
Sebastian Dröge
e41c47a8f8
Map unknown strings to already existing Other
variants of enums
...
Fixes https://github.com/rutgersc/m3u8-rs/issues/52
2022-09-12 10:12:44 +03:00
Rutger Schoorstra
31b31fd958
Update version to 5.0.0
2022-07-30 13:05:09 +02:00
Vadim Getmanshchuk
d2881fef08
Improve #EXT-X-INDEPENDENT-SEGMENTS placement
...
While it can be anywhere in the playlist as it applies to, this one usually is at the top of the manifest, right after the VERSION tag.
2022-07-21 10:34:57 +03:00
Sebastian Dröge
bd7cce75e9
Parse PROGRAM-DATE-TIME and DATERANGE start/end as proper datetimes instead of strings
2022-07-21 10:34:57 +03:00
Vadim Getmanshchuk
7247e02ee5
Use more specific types for playlist fields and improve parsing/writing
...
Added
* DateRange struct and implementations
* Parsing DateRange (wasn't parsed due to a typo)
* fn daterange() to parse DateRange
* `write_some_other_attributes` macro
* resolved `FIXME required unless None` for method and iv
Changed / fixed:
* trim_matches() potentially too greedy, replaced with strip_suffix/prefix
* removed a bunch of "Unnecessary qualification", eg `fmt::` for `Display`
* changed `fn extmap()` to use `QuotedOrUnquoted` and `other_attributes`
* `fmt` for `QuotedOrUnquoted` are now printing quoted strings in `"`
* `bool_default_false` macro renamed to `is_yes`
* qualified error message for `quoted_string_parse` and `unquoted_string_parse`
* `other_attributes` now `Option<>`
* `ClosedCaptionGroupId::Other(s)` variant processing added to `write_to`
* `HDCPLevel::Other(s)` variant processing added to `fmt`
* `AlternativeMediaType::Other(s)` variant processing added to `fmt`
* `InstreamId::Other(s)` variant processing added to `fmt`
* `MediaPlaylistType::Other(s)` variant processing added to `fmt`
* `KeyMethod::Other(s)` variant processing added to `fmt`
* included `DateRange` to tests
* included `other_attributes` to tests
Minor:
Typos corrections
rustfmt applied
2022-07-21 10:34:57 +03:00
Sebastian Dröge
6559e45b49
Store VariantStream attributes in more specific types and validate them
2022-07-21 10:34:57 +03:00
Sebastian Dröge
0789098d7d
Add some convenience API to QuotedOrUnquoted
2022-07-21 10:34:57 +03:00
Sebastian Dröge
b692ac0808
Remove additional newline after "#EXTM3U" added in previous commit
...
Co-authored-by: Vadim Getmanshchuk <vagetman@users.noreply.github.com>
2022-04-19 18:20:32 +03:00
Sebastian Dröge
85141f6a51
Merge pull request #50 from vagetman/patch-3
...
`EXT-X-VERSION` tag may be absent
2022-04-17 23:45:33 +03:00
Vadim Getmanshchuk
d941541be8
EXT-X-VERSION
tag may be absent
2022-04-17 01:08:07 -07:00
Sebastian Dröge
7173c26015
Merge pull request #45 from vagetman/patch-2
...
A fix for `CLOSED-CAPTIONS=NONE` case and a few minor fixes
2022-04-17 09:03:34 +03:00
Vadim Getmanshchuk
ac0f881eef
* added QuotedOrUnquoted
enum
...
* implemented `Default`, `From`, `Display` traits
* updated `VariantStream`, `AlternativeMedia`, `SessionData`, `Key`, `Start` emums
* updated `from_hashmap` methods for each enum
* fixed tests
2022-04-15 23:06:40 -07:00
rutgersc
212a485687
Merge pull request #47 from rutgersc/bump
...
Update version to 4.0.0
2022-04-13 23:14:49 +02:00
Rutger Schoorstra
dc352b7ef3
Update version to 4.0.0
2022-04-13 22:57:56 +02:00
rutgersc
c28cb7f7d6
Merge pull request #46 from rutgersc/readme
...
Update readme, v3.0.1
2022-04-09 13:03:13 +02:00
Rutger Schoorstra
f606063330
Update version to 3.0.1
2022-04-09 12:59:07 +02:00
Rutger Schoorstra
210af70f72
Update readme
2022-04-09 12:59:07 +02:00
Vadim Getmanshchuk
5c842fd9f6
minor cargo clippy suggestions
2022-04-08 16:31:37 -07:00
Vadim Getmanshchuk
2f92e3ae8c
#EXT-X-ENDLIST
is moved to be the last part of the media manifest. Theoretically it can appear anywhere in manifest, so the current placement is not breaking the standard, but not usually is what found in the wild and I believe will help with readability. As any placement is possible, the placement at the end is completely legal.
2022-04-08 16:27:04 -07:00
Vadim Getmanshchuk
3c8368f9a3
A fix for CLOSED-CAPTIONS=NONE
case and a few minor fixes
...
The PR includes
* a hotfix for issue #44 . I'm not entirely sure and it's possible to
* `#EXT-X-ENDLIST` is moved to be the last part of the media manifest. Theoretically it can appear anywhere in manifest, so the current placement is not breaking the standard, but not usually is what found in the wild and I believe will help with readability. As any placement is possible, the placement at the end is completely legal.
* minor `cargo clippy` suggestions
2022-04-08 16:23:27 -07:00
rutgersc
39b52a1d4b
Merge pull request #42 from sdroege/u64-instead-of-i32
...
Use `u64` instead of `i32` for byte ranges and sequence numbers
2022-02-19 13:38:06 +01:00
rutgersc
bc8ccf0f5d
Merge pull request #41 from sdroege/derive-more-traits
...
Derive some more traits for the public types where it makes sense
2022-02-19 13:37:41 +01:00
rutgersc
5ee1273f7c
Merge pull request #40 from sdroege/type-closed-captions
...
The `TYPE` attribute uses `CLOSED-CAPTIONS` and not `CLOSEDCAPTIONS`
2022-02-19 13:37:26 +01:00
Sebastian Dröge
44aa097c90
Use u64
instead of i32
for byte ranges and sequence numbers
...
Fixes https://github.com/rutgersc/m3u8-rs/issues/39
2022-01-07 12:47:40 +02:00
Sebastian Dröge
1bfad5df01
Derive some more traits for the public types where it makes sense
...
This makes them easier to use.
2022-01-07 12:44:56 +02:00
Sebastian Dröge
cca02b239d
The TYPE
attribute uses CLOSED-CAPTIONS
and not CLOSEDCAPTIONS
...
See https://datatracker.ietf.org/doc/html/draft-pantos-hls-rfc8216bis-10#section-4.4.6.1
2022-01-05 19:11:42 +02:00
rutgersc
836ef1caaf
Merge pull request #37 from sdroege/is-master-playlist-early-return
...
Don't bother parsing as a playlist or detecting if it's a master/medi…
2021-11-20 19:06:41 +01:00
Sebastian Dröge
2fae1d8f20
Don't bother parsing as a playlist or detecting if it's a master/media playlist if it doesn't start with #EXTM3U
2021-11-19 11:29:46 +02:00
rutgersc
53e9439660
Merge pull request #36 from sdroege/nom-7
...
Port to nom 7
2021-11-18 17:15:50 +01:00
Sebastian Dröge
472618e1aa
Update version to 3.0.0
2021-11-18 15:05:32 +02:00
Sebastian Dröge
2432846064
Move the crate docs to the root of the crate so they actually show up
...
And also fix all the broken links while we're at it.
2021-11-18 15:04:17 +02:00
Sebastian Dröge
51fcb70113
Re-export all types from the crate root and remove the playlist sub-module
...
There's not much else in this crate and having it behind another module
decreases visibility.
2021-11-18 15:00:01 +02:00