Commit graph

27 commits

Author SHA1 Message Date
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
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
Vadim Getmanshchuk d941541be8 EXT-X-VERSION tag may be absent 2022-04-17 01:08:07 -07: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
Sebastian Dröge 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
Rafael Caricio c1ff2b3730
Support parsing of unknown tags on segments 2021-10-12 23:06:47 +02:00
Rutger Schoorstra dc576c8e3c Add parser as default feature 2021-04-24 18:43:57 +02:00
Rutger Schoorstra c3ef5bc16e Split code into parser/types 2021-04-24 18:39:25 +02:00
Jan Schmidt 870ca830d3 SessionData: Must have either VALUE or URI, but not both.
If SessionData has a value, don't write the URI and vice-versa.

As per https://tools.ietf.org/html/rfc8216#section-4.3.4.4
EXT-X-SESSION-DATA must have one or the other, not both.
2021-04-25 00:44:08 +10:00
Rutger Schoorstra 087c47bddd Fix consume_line not returning line when line doesn't end with a newline 2021-04-18 11:59:31 +02:00
Jan Schmidt 978e6a7e58 Handle blank lines when checking for master playlist tags.
Fix a bug where a blank line in a master playlist before the first
master playlist tag will make the parser think it's a media playlist.

Fixes #17
2021-03-17 06:41:35 +11:00
Rutger Schoorstra 100a57078a Fix failed test on CLRF 2020-03-07 10:23:06 +01:00
Rutger Schoorstra 13405a09eb Upgraded docs to Nom 5 2020-03-07 10:23:06 +01:00
Vadim Getmanshchuk 4ed378772b
added forgotten use for map 2020-03-04 20:12:50 -08:00
Vadim Getmanshchuk 350109e29a
map cleanup, leftovers 2020-02-26 22:57:05 -08:00
Vadim Getmanshchuk f7587aa264
cleanup, fn map renamed
Local `fn map` -> `fn extmap` that allows to use map from Nom directly, without `nom::combinator::`
2020-02-26 22:52:20 -08:00
Vadim Getmanshchuk b9d377bfa4
Upgraded macros to Nom 5
Changes:

IResult::Done - IResult::Ok
chain! -> do_parse!
   slightly different syntax with `?` ->  opt!
digit -> digit1
space? -> space0
multispace? -> multispace0
many0!() -> many0!(complete!())
take_until_either! -> is_not!
take_until_and_consume! -> take_until! + take!(1)
take_until_either_and_consume! -> is_not! + take!(1)
2020-02-26 17:05:14 -08:00
Rogier 'DocWilco' Mulhuijzen 67eebd17a0 Done is now Ok, map works a little different 2020-02-12 14:38:47 -08:00
Vadim Getmanshchuk 22571a3404
A stub on updating nom to 5.1.0 version 2020-02-12 12:04:20 -08:00
Gurinder Singh ccf25fefcf Fixed a bug where #EXT-X-MEDIA-SEQUENCE tag was being interpreted as #EXT-X-MEDIA 2019-03-08 11:22:34 +05:30
Rutger 7583aaccba Fix doc tests 2017-02-17 17:22:09 +01:00
Rutger e3d0cb8cff Added example of how to create & write a playlist 2017-02-17 15:16:08 +01:00
Rutger c336b89981 Added feature: writing playlists back to file 2017-02-17 14:50:50 +01:00
Rutger 6286cddc04 Remove unwrap from version tag 2017-02-16 11:17:02 +01:00
Rutger d7c452fe78 Fixed a bug where the parser fails when the playlist does not end with a newline. 2016-09-10 13:22:13 +02:00
Rutger 41ce460d90 Version 1.0.0 2016-06-03 20:56:45 +02:00