Skip to content

MPD Update #160

Description

@haudiobe

Submitter: Oliver Woodman
This issue is spun out of a discussion here: google/ExoPlayer#3457

The paragraph under discussion in the DASH-IF guidelines is:

"In order to make the MPD joining friendly and to remove data that is available in the past, any segments that have fallen out of the time shift buffer may no longer be announced in the MPD. In this case, the Period start may be moved by changing one or both, MPD@availabilityStartTime and Period@start. However, this requires that the @startNumber, @presentationTimeOffset and S values need to be updated such that the Segment Information accorging to section 4.3.2.2.6 is not modified over an MPD update."

There appear to be a few issues:

  1. As noted in the issue ref'd above, allowing @availabilityStartTime to change appears to directly contradict 23009-1 which states: "When the MPD is updated, the value of MPD@availabilityStartTime shall be the same in the original and the updated MPD"

  2. Given Period@id is optional in the DASH spec, fixed Period@start values are a convenient way for DASH clients to match periods in the updated manifest to those in a previous manifest. Allowing Period@start values to change makes matching periods more difficult.

  3. I cannot think of a reason why it would be necessary, or a good idea, to adjust Period@start in the way described. I don't think such adjustments are ever required to remove segments that are no longer available in the period. Making the adjustment appears to require changing other variables (e.g. @presentationTimeOffset also has to change) in a way so that the end result is the changes cancel one another out. This is more complicated than not changing any of them, and is more difficult for clients to handle (e.g. see point above).

Unless this type of manifest adjustment is genuinely necessary, it seems preferable that the DASH-IF guidelines should instead require Period@start and MPD@availabilityStartTime to remain unchanged across manifest updates.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions