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

[Dash] Location / Partial Updates #804

Closed
matthuisman opened this issue Sep 14, 2021 · 16 comments
Closed

[Dash] Location / Partial Updates #804

matthuisman opened this issue Sep 14, 2021 · 16 comments
Labels
Component: MPEG-DASH Issue Type: Improvement issue has requested to improve an existing functionality

Comments

@matthuisman
Copy link
Contributor

matthuisman commented Sep 14, 2021

Finally found a service (Hulu live channes) that uses location.
It uses it with live streams so on a refresh, a smaller "update" manifest can be used.

When we find a location tag, that url should be used for the next refresh.
If that manifest has a location, we use that for the next... so on

Not sure behaviour of no location.
I assume just uses the last found.

It seems we are grabbing it here:
https://github.com/xbmc/inputstream.adaptive/blob/Nexus/src/parser/DASHTree.cpp#L1519

but then its never used:
https://github.com/xbmc/inputstream.adaptive/blob/Nexus/src/parser/DASHTree.cpp#L1675

After this is implemented, so would the need for partial updates.

@matthuisman matthuisman changed the title [Dash] Location doesn't work [Dash] Location / Partial Updates Sep 15, 2021
@michaelarnauts
Copy link
Contributor

I guess this is the same issue as #286, but I couldn't reopen that issue and I made a workaround for it in VTM Go :)

@matthuisman
Copy link
Contributor Author

@glennguy @CastagnaIT how much work would this involve?
The original hulu manifest stops working after 5mins and it each location url then has a new token on it
eg.
<Location>https://livem-ftc-na.media.hulustream.com/v1/live/dash/continue/d34a8320-c6a3-4b44-a949-ab82e8edd357/manifest.mpd?cdns=sf&amp;cluster=blue&amp;origin=us-west-2&amp;duration=10800s&amp;manifest_cdn=fa&amp;repeat=true&amp;patch=true&amp;hpbsid_enabled=false&amp;uas_enabled=false&amp;segment_type_enabled=false&amp;query_params_v2=false&amp;unencrypted=false&amp;cver=0&amp;acquired_source_name=DEMN_ESPN2_EAST_MMA_CLT2-USW2&amp;stream_filter=fhd_high_surround&amp;prev_start=1688207707253&amp;prev_boundary_start=1688205304853&amp;prev_pts_values=AAC_1_CMAF_CENC_CTR%3D20917037056%7CEC3_1_CMAF_CENC_CTR%3D20917038535%7CH264_1_CMAF_CENC_CTR%3D26146296176&amp;token=1688208324_d98d485b117cb39a9080ab22d88d9e6520ba0cb0312bd9a51daa23a7e1c5afae</Location>

I guess i could try do it in my proxy

@CastagnaIT
Copy link
Collaborator

Dash Location tag for updates should be already fixed on last Omega nightly

@matthuisman
Copy link
Contributor Author

@CastagnaIT thanks. was that part of this PR #1288 ?

@matthuisman
Copy link
Contributor Author

@dapharsyde are you able to test with latest Omega IA nightly build?

@CastagnaIT
Copy link
Collaborator

i dont remember exactly its possible has been fixed with the big parsers rework

you can find some builds here: https://jenkins.kodi.tv/blue/organizations/jenkins/xbmc%2Finputstream.adaptive/detail/Omega/79/artifacts/

@dapharsyde
Copy link

I can confirm the HTTP 410 errors reported in this issue are fixed with a nightly build of IA for Omega. Is it possible this will be backported to a Nexus release, or should I start planning to upgrade my main systems to Omega to benefit from this fix?

@CastagnaIT
Copy link
Collaborator

thanks for the confirm, it should be a minor fix to do i will let you know

@CastagnaIT
Copy link
Collaborator

@dapharsyde
Copy link

dapharsyde commented Jul 5, 2023

Update: I may have installed the wrong version of the plugin. See my new comment below with actual test results. Sorry for the confusion.

I tested in Nexus with the build of IA provided above, and the HTTP 410 errors are still occurring - so I guess that means there was some other fix that still needs to be backported?

Attached are the log file and manifests.

kodi.log

manifests.zip

@matthuisman
Copy link
Contributor Author

from the log, I can see it is still trying to use dash/initial/
So looks like its not following the Location tag

@dapharsyde
Copy link

Hmm, strange. There's a small chance I installed the wrong version of the IA plugin for that previous test. I just reinstalled the plugin, restarted kodi, and tested again. I noticed the logfile now shows dash/continue instead of dash/initial, but the stream now stops within < 30 seconds, with the log file showing this warning "warning : AddOnLog: inputstream.adaptive: No periods in the manifest"

attached are the log file and manifest files:

manifests.zip

kodi.log

@matthuisman
Copy link
Contributor Author

yeh, this is partial manifest updates - i suspect Nexus code wont support those very well. Castagna will be able to confirm.
It may be too big change to bring back support for that

@matthuisman
Copy link
Contributor Author

I think this issue could be marked as FIXED though with his latest change.
Location and partial works

@dapharsyde
Copy link

dapharsyde commented Jul 6, 2023

I think this issue could be marked as FIXED though with his latest change. Location and partial works

But only in Omega, not in Nexus (and likely not anytime soon), right? Sorry, trying to follow along the best I can :)

Also, although the nightly Omega IA build gets around the HTTP 410 errors, it now has issues, seemingly when switching between advertisements and regular content.

@CastagnaIT
Copy link
Collaborator

worth a try, i hoped but as i was supecting there are other problems under the hood...
that are linked to the recents new reworks to manifest live updates that fixed different use cases

should be PR 1302 but this require old rework PR to be included
since we cannot backport changes that include features or breaking changes
is quite a big job make a kind of backport bypassing these changes
you need to rewrite code different way its quite big job not worth to me

i will close this Issue since its fixed on Omega

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Component: MPEG-DASH Issue Type: Improvement issue has requested to improve an existing functionality
Projects
None yet
Development

No branches or pull requests

4 participants