Commit graph

12 commits

Author SHA1 Message Date
André M.
e5dbdb6288
feat: add support for #EXT-X-I-FRAMES-ONLY (#173)
* feat: add support for #EXT-X-I-FRAMES-ONLY

Handles I-frames-only `segments`, providing a basis for the creation of trick-play functionality.

**parse-stream.js**

- add match statement for parsing the `EXT-X-I-FRAMES-ONLY` tag
- add test case

**parser.js**

- add a property `iFramesOnly` to the `manifest`
- add a function to validate the minimum version required
- trigger a `warn` event if the minimum version required is not supported or undefined, as required by the specification
- add test case

https://datatracker.ietf.org/doc/html/rfc8216#section-4.3.3.6

- update `README.md` documentation

* Update src/parse-stream.js

* Update test for #171 changes

---------

Co-authored-by: mister-ben <1676039+mister-ben@users.noreply.github.com>
2024-08-16 17:49:27 +02:00
André M
990c6ced71
feat: add support for #EXT-X-I-FRAME-STREAM-INF (#171)
* feat: add support for #EXT-X-I-FRAME-STREAM-INF

Exposes I-frame playlists through the `iFramePlaylists` property, providing a basis for the creation of trick-play functionality.

**parse-stream.js**

- add match statement for parsing the `EXT-X-I-FRAME-STREAM-INF` tag
  - apply type conversions as indicated in the specification for attributes `BANDWIDTH`, `AVERAGE-BANDWIDTH`, `FRAME-RATE`
  - overwrite the `RESOLUTION` attribute with an object representing the resolution
- extract a function to parse the `RESOLUTION`
- add test case

https://datatracker.ietf.org/doc/html/rfc8216#section-4.3.4.2

**parser.js**

- add an array property `iFramePlaylists` to the `manifest`
- add each `i-frame playlist` to `iFramePlaylists`
- trigger a `warn` event if the `BANDWIDTH` or `URI` attributes are missing, as required by the specification
- add test case

https://datatracker.ietf.org/doc/html/rfc8216#section-4.3.4.3

- update `master-fmp4.js` to add `iFramePlaylists`
- update `README.md` documentation

* test: update fixtures to take iFramePlaylists property into account

* refactor(stream-inf): uses the parseResolution function to extract a resolution object

---------

Co-authored-by: mister-ben <1676039+mister-ben@users.noreply.github.com>
2024-07-06 07:41:01 +01:00
Adam Waldron
42472c5979
feat: parse content steering tags and attributes (#176) 2023-08-07 09:19:35 -07:00
Harisha Rajam Swaminathan
6944bb1b2f
fix: add dateTimeObject and dateTimeString for backward compatibility (#174) 2023-08-07 11:57:27 -04:00
Harisha Rajam Swaminathan
e7c683f5f6
feat: Add PDT to each segment (#168) 2023-07-07 15:10:40 -04:00
Adam Waldron
8c47d81a6c
feat: add independent-segments support (#165) 2023-05-22 21:34:13 -07:00
hswaminathan
d35b7acaf1 Add tests for DURATION and PLANNED-DURATION attributes 2023-04-24 19:24:18 -04:00
hswaminathan
33b24c4cb5 add support for multiple daterange tags and add tests 2023-04-22 01:07:58 -04:00
hswaminathan
9e4c3ad0ba add test 2023-04-18 16:01:23 -04:00
hswaminathan
8059d61a73 Add support for Daterange 2023-04-18 00:47:17 -04:00
Essk
8d56f30c4d
fix: non standard tag match (#156)
Prevent non-standard tags from being erroneously matched as standard tags by enforcing the colon tag delimiter

BREAKING CHANGE: Missing colon (:) tag delimiters are no longer supported
Closes #22
2022-09-27 17:05:11 +01:00
Brandon Casey
e86dcae09d
test: move tests around (#129) 2021-01-21 11:57:57 -05:00
Renamed from test/m3u8.test.js (Browse further)