Skip to content

Add ability to handle Hulu Live "Patch" update Manifests #1426

@kcook98765

Description

@kcook98765

As touched on in:

#1407

Hulu Live streams use a patch type update Manifest ( schemeIdUri = urn:com:hulu:schema:mpd:2017:patch )

Meaning the update manifests are bare bones, only having new <S> segments and occasional (complete) new Periods

I have modified Matt's proxy code to handle this for now, but would be better to have IA handle it at some point.

I basically got it working by keeping a complete copy of the first Manifest, with all elements and attributes, etc strored in a python dictionary.

Then when a patch manifest is received, any new <S> segments are added to the dictionary (to the associated Period and adaptationset ID's) , and any new Period is also added to the dictionary.

Then the dictionary is converted to xml to then pass off to IA.

So it is simply regurgitating the original Manifest, with any new <S> segments and any new Period added to it.

I realize this would be a new "Feature" so maybe a while to implement.

Couple of references (though currently they are not using "PatchLocation", but just "Location" with schemeIdUri = urn:com:hulu:schema:mpd:2017:patch as the indicator that it is a patch vs full manifest.

Couple resources I found in doing this:

https://dashif.org/docs/workshop-2019/16-Cava-2019-12-portland-video-meetup.pdf

https://dl.acm.org/doi/pdf/10.1145/3593908.3593949

Thank You!

Metadata

Metadata

Assignees

No one assigned

    Labels

    Issue Type: Improvementissue has requested to improve an existing functionality

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions