18739b59ac
Release 5.0.1
2022-09-12 11:06:52 +03:00
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
31b31fd958
Update version to 5.0.0
2022-07-30 13:05:09 +02:00
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
bd7cce75e9
Parse PROGRAM-DATE-TIME and DATERANGE start/end as proper datetimes instead of strings
2022-07-21 10:34:57 +03:00
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
6559e45b49
Store VariantStream attributes in more specific types and validate them
2022-07-21 10:34:57 +03:00
0789098d7d
Add some convenience API to QuotedOrUnquoted
2022-07-21 10:34:57 +03:00
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
85141f6a51
Merge pull request #50 from vagetman/patch-3
...
`EXT-X-VERSION` tag may be absent
2022-04-17 23:45:33 +03:00
d941541be8
EXT-X-VERSION
tag may be absent
2022-04-17 01:08:07 -07:00
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
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
212a485687
Merge pull request #47 from rutgersc/bump
...
Update version to 4.0.0
2022-04-13 23:14:49 +02:00
dc352b7ef3
Update version to 4.0.0
2022-04-13 22:57:56 +02:00
c28cb7f7d6
Merge pull request #46 from rutgersc/readme
...
Update readme, v3.0.1
2022-04-09 13:03:13 +02:00
f606063330
Update version to 3.0.1
2022-04-09 12:59:07 +02:00
210af70f72
Update readme
2022-04-09 12:59:07 +02:00
5c842fd9f6
minor cargo clippy suggestions
2022-04-08 16:31:37 -07:00
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
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
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
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
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
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
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
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
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
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
53e9439660
Merge pull request #36 from sdroege/nom-7
...
Port to nom 7
2021-11-18 17:15:50 +01:00
472618e1aa
Update version to 3.0.0
2021-11-18 15:05:32 +02:00
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
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
3edf5d1c0f
Fix various minor clippy warnings
2021-11-18 14:54:46 +02:00
7e62854e20
Use unwrap_or_default()
instead of unwrap_or_else(Default::default)
2021-11-18 14:52:38 +02:00
336f11e1ba
Remove useless fn main()
from documentation examples
2021-11-18 14:52:03 +02:00
a5d8358379
Make most internal parser functions private
...
And move parser internals tests into a test submodule of the parser.
Also add actual assertions to various tests so they test something.
2021-11-18 14:50:14 +02:00
5500166f74
Fix confusing #[path] usage and re-exports in lib.rs
...
This has effectively the same behaviour now with fewer lines, less
confusion and fewer compiler warnings about unused code.
2021-11-17 19:32:57 +02:00
4e6ac58d0c
Add tests for parsing non-playlist text and binary data
...
These should fail to parse (and not panic), but previously the
non-playlist text succeeded.
2021-11-17 19:22:28 +02:00
65c295ee02
Require each M3U8 playlist to start with the #EXTM3U8 tag
...
The RFC requires this to be the very first line of every master/media
playlist, and without this we would be parsing arbitrary text files as
playlist without erroring out.
See https://datatracker.ietf.org/doc/html/rfc8216#section-4.3.1.1
Fixes https://github.com/rutgersc/m3u8-rs/issues/27
2021-11-17 19:14:58 +02:00
a44c2a1a72
Run parser through cargo fmt
...
Now that we don't use the nom macros anymore this works properly.
2021-11-17 16:00:25 +02:00
0ed0ce51f8
Migrate to Rust 2018
...
Cleans up some noise.
2021-11-17 16:00:23 +02:00
81398f86cd
Port to nom 7
...
Fixes https://github.com/rutgersc/m3u8-rs/issues/35
2021-11-17 16:00:08 +02:00
f104d431d9
Merge pull request #34 from rutgersc/ci-check-formatting
...
CI check formatting
2021-10-19 19:50:26 +02:00
0a3fb0e671
Version 2.1.0
2021-10-19 19:48:26 +02:00
1287975af4
Check cargo fmt
on CI
2021-10-19 19:48:26 +02:00
6ee1b52c01
Update readme
2021-10-19 19:48:26 +02:00
303d0ecfce
Merge pull request #33 from rafaelcaricio/apply-fmt-and-clippy
...
Apply cargo fmt and clippy suggestions
2021-10-19 18:54:21 +02:00
3d5599fa28
Apply clippy suggestions
2021-10-18 11:48:30 +02:00
39aab3a2ac
Apply cargo fmt
2021-10-18 11:41:28 +02:00