XML parser
Created by: bbert
The goal of this PR is to provide a new XML parser in order to speed up parsing time. Parsing time may be criticial for long contents with SegmentTimelines.
What has been achieved in this PR:
- integration of tXml parser: https://github.com/TobiasNickel/tXml
- modification of the tXml parser in order to apply simplification process (https://github.com/TobiasNickel/tXml#xmlsimplify-txml_dom_object) on-the-fly during parsing, while also applying matchers on the attributes values and managing children that shall be stored as arrays
- remove the StringMatcher since not useful anymore (BTW simply removing this matcher could reduce up to 30-40% the original parsing processing time)
- remove all references to '_asArray' notation (no more duplication of child nodes as a single object and as an array of object)
Here are some numbers for the XML parsing processing time (in ms) for a 240mn content having one AdaptationSet with a SegmentTimeline without repeat pattern:
Chrome desktop (core i7 2x2.7GHz 16Go) | Chromecast 3rd Gen | Chromecast Ultra | |
---|---|---|---|
dash.js | 110 | 2 500 | 1 800 |
dash.js + tXml | 30 | 500 | 350 |