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

[5th Ed] Possible errors in example MPD Patch Document #134

Open
asrashley opened this issue Sep 3, 2024 · 0 comments
Open

[5th Ed] Possible errors in example MPD Patch Document #134

asrashley opened this issue Sep 3, 2024 · 0 comments

Comments

@asrashley
Copy link

In clause G.21 of ISO/IEC 23009-1:2022 it has an example of an MPD Patch document.

I think there might be three errors in this example:

  • The replace element for the patch location uses selector /MPD/PatchLocation[0] however XPath indexes start at one not zero. See https://www.w3.org/TR/xpath20/#abbrev for examples of the abbreviated index syntax in XPath.
  • The add element for the first adaptation set uses selector /MPD/Period[@id='1588435200']/AdaptationSet[@id='1']/SegmentTemplate/SegmentTimeline. However clause 5.15.3.4 states that "All other elements shall be addressed by position, e.g. SegmentTemplate[1]." As neither SegmentTemplate nor SegmentTimeline is listed as one of the special cases for the element addressing restrictions, I think it would need to adhere to the "shall be addressed by position" rule.
  • The add element for the second adaptation set uses selector /MPD/Period[@id='1588435200']/AdaptationSet[@id='2']/SegmentTemplate/SegmentTimeline also appears to be in conflict with clause 5.15.3.4.

If my reading of the normative text in the 5th ed DIS and the XPath specification is correct, I think the example should be:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Patch
 xmlns="urn:mpeg:dash:schema:mpd-patch:2020"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="urn:mpeg:dash:schema:mpd-patch:2020 DASH-MPD-PATCH.xsd"
 mpdId="live-stream"
 originalPublishTime="2020-05-13T05:34:06+00:00"
 publishTime="2020-05-13T05:34:28.601Z">
 <replace sel="/MPD/@publishTime">2020-05-13T05:34:28.601Z</replace>
 <replace sel="/MPD/PatchLocation[1]">
 <PatchLocation ttl="60">live-stream/patch.mpd?publishTime=2020-05-13T05%3A34%3A28.601Z</PatchLocation>
 </replace>
 <add sel="/MPD/Period[@id='1588435200']/AdaptationSet[@id='1']/SegmentTemplate[1]/SegmentTimeline[1]">
 <S d="360360" r="6" t="5494659049"/>
 </add>
 <add sel="/MPD/Period[@id='1588435200']/AdaptationSet[@id='2']/SegmentTemplate[1]/SegmentTimeline[1]">
 <S d="360960" t="5494660288"/>
 <S d="359040"/>
 <S d="360960" r="1"/>
 <S d="359040"/>
 <S d="360960" r="1"/>
 </add>
</Patch>
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

No branches or pull requests

1 participant