Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implementation of MPEG-DASH 5th Edition Patching Semantics #3451

Merged

Conversation

technogeek00
Copy link
Contributor

  • Full support for DASH specified xpath restrictions
  • Support for add/replace/delete operations in patch
  • Validation of Patch on receive
  • Handling of empty Patch semantics
  • Unit testing to confirm and verify patching semantic functionality added

I'd like to highlight this commit includes a roll-up of additional fixes previously provided as part of forward porting from v2 to v3 of DASH.js (thanks to both!):

- Full support for DASH specified xpath restrictions
- Support for add/replace/delete operations in patch
- Validation of Patch on receive
- Handling of empty Patch semantics

This commit is rebased first pass on to latest dash.js, includes the
additional fixes previously provided:
- Patch operation ironing fix (#1) - @thmatuza
- Xpath indexing and add attribute operation (#2) - @chanyk-joseph
@dsilhavy dsilhavy added this to the 3.2.1 milestone Nov 18, 2020
@dsilhavy dsilhavy self-requested a review November 18, 2020 12:03
…dash.js into mpd-patch-updates

� Conflicts:
�	test/unit/mocks/AdapterMock.js
src/dash/DashAdapter.js Outdated Show resolved Hide resolved
src/dash/DashAdapter.js Outdated Show resolved Hide resolved
src/dash/DashAdapter.js Outdated Show resolved Hide resolved
src/dash/DashAdapter.js Show resolved Hide resolved
src/dash/models/PatchManifestModel.js Outdated Show resolved Hide resolved
src/dash/models/PatchManifestModel.js Outdated Show resolved Hide resolved
src/dash/models/PatchManifestModel.js Outdated Show resolved Hide resolved
src/dash/vo/PatchOperation.js Outdated Show resolved Hide resolved
src/streaming/ManifestUpdater.js Outdated Show resolved Hide resolved
src/dash/DashAdapter.js Outdated Show resolved Hide resolved
test/unit/dash.DashAdapter.js Outdated Show resolved Hide resolved
test/unit/dash.DashAdapter.js Show resolved Hide resolved
@technogeek00
Copy link
Contributor Author

Thanks @dsilhavy I'll get these implemented

@dsilhavy dsilhavy merged commit d10013a into Dash-Industry-Forum:development Feb 8, 2021
bbert pushed a commit to Orange-OpenSource/dash.js that referenced this pull request Feb 10, 2021
@bbert bbert mentioned this pull request Feb 10, 2021
bbert pushed a commit to Orange-OpenSource/dash.js that referenced this pull request Feb 10, 2021
bbert pushed a commit to Orange-OpenSource/dash.js that referenced this pull request Feb 10, 2021
@technogeek00 technogeek00 deleted the mpd-patch-updates branch February 19, 2021 16:55
bbert pushed a commit to Orange-OpenSource/dash.js that referenced this pull request Apr 16, 2021
dsilhavy pushed a commit that referenced this pull request Jun 21, 2023
* update package-lock.json

* add txml parser dependency

* DashParser: use txml parser and add post-processing to simplify xml tree and manage node as arrays

* remove '_asArray' notation

* DashParser: fix processAttr()

* add tXml in externals and remove from dependencies, to avoid uglify issue with ES6 syntax

* XlinkController: use parser (tXml) from DashParser

* DashParser: handle parsing failure

* MssParser: complete _asArray removal

* update unit tests

* update DashConstants

* Modify tXml to apply simplification proces (including attributes and nodes as array process) on-the-fly

* Remove StringMatcher

* update according to PR #3451 (update xml parser and remove _asArray nodes)

* update according to PR #3451 (update xml parser and remove _asArray nodes)

* update according to PR #3451 (update xml parser and remove _asArray nodes)

* Dash parser: add missing nodes (as array) PatchLocation, replace, add and remove

* complete update according to PR #3451

* tXml: init attrMatchers as an array

* tXml: add attributes matchers and nodes as array in options parameter

* Fixed DashManifestModel.getLocation()

* Fixed DashManifestModel.getPatchLocation()

* Remove unuseful existence check on elements assumed to be as arrays

* Remove unuseful existence check on elements assumed to be as arrays

* DashAdapter::applyPatchToManifest(): check types of nodes (object vs array)

* update package-lock.json

* SimpleXPath: check id leaf element is array or not

* Remove remaining asArray after rebase

* Fix unit tests

* tXml: add suport for tag namespace

* Merge branch 'development' into xml-parser

* xml parser: complete asArray removal

* xml parser: fix samples

* xml parser: fix regression after merge

* Update tXml parser to v4.0.1

* Modify tXml parser

Re-apply modifications to tXml parser library in order to:
- add child node to their parent as arrays or object according to node names
- process attributes on the fly
- set node text value in "_text" property

* Update DashParser according to new version of tXml

* UTCTiming to be stored as an array

* NumericMatcher: do not apply on attributes specified as string but that can contain a number value (such as "id" attribute)

* Remove StringMatcher

* Fix merge for LangMatcher

* Remove files

* Fix typeof object

* DashAdapter: fix applyPatchToManifest() to distinguish array from non-array elements

* Remove xml2json

* Fix merge

* Fix InbandEventStream node being as an array
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants