Skip to content

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

Merge request reports