* 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>
* 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>
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
The default value for EXT-X-BYTERANGE is defined by the spec as the first byte
after the previous segment. Prior to this change, the default set by m3u8-parser
was 0.
* Added conditional to subsequent PROGRAM-DATE-TIME tags from being read. Now only the first tag encountered in a file is added to the manifest.
* Updated project to use most recent version of video.js standard; applied lint changes to entire project.
* Updated CHANGELOG HEAD section with latest changes.
* Removed node 0.10 and 0.12 from the Travis config.
* Updated date time test to include two #EXT-X-PROGRAM-DATE-TIME tags so that we can verify parser only takes the first instance of the date time tag.
* Reverted changes to make parser only read first #EXT-X-PROGRAM-DATE-TIME tag so that it remains compliant with the standard.
* Updated CHANGELOG to fit latest in head.
* upgrade to babel 6 to use transform-object-assign
* remove the need for lodash-merge and reduce size by ~5000kb in gzip form
* change export default to module.exports