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

[Session] Use total segments duration to check the period #1607

Open
wants to merge 1 commit into
base: Piers
Choose a base branch
from

Conversation

CastagnaIT
Copy link
Collaborator

Description

On the issue ISA its not able to switch to the right period when you try to do a video seek
manifest case: segtpl_multiperiod_ads.mpd.txt

from the manifest the ADS periods (marked with urn:scte:scte35:2013:xml) dont have the "duration" attribute but only "start" attrib.
with the parser we calculate the period duration by looking for the "start" attrib of the next period (by difference),
but if you calculate the duration, you can see that dont match with the total segments duration (of SegmentTemplate),
this seem to lead to in a segments hole in part of the period

It seems that Dash when periods are reported as ADS the period duration is not exact but estimated, but i have not yet found enough info to confirm this.

Then since there are parts of code that use "Period->GetDuration" lead to a wrong behaviour, as you can see on CSession::SeekTime try find the chapter on a wrong time

my idea is instead looking to each period duration, use total segments duration, that must be a safe value

todo:

  1. need a feedback, i cant test it by myself atm since my only MPD multiperiod TV streaming is completely dead...
  2. check for some regressions?
  3. it would be useful to have confirmation from other streams that Dash period ADS have estimated and not precise durations

Motivation and context

attempt to fix #1500

How has this been tested?

NOT TESTED!

Screenshots (if appropriate):

Types of change

  • Bug fix (non-breaking change which fixes an issue)
  • Clean up (non-breaking change which removes non-working, unmaintained functionality)
  • Improvement (non-breaking change which improves existing functionality)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that will cause existing functionality to change)
  • Cosmetic change (non-breaking change that doesn't touch code)
  • None of the above (please explain below)

Checklist:

  • I have read the Contributing document
  • My code follows the Code Guidelines of this project
  • My change requires a change to the Wiki documentation
  • I have updated the documentation accordingly

@CastagnaIT CastagnaIT added Type: Fix non-breaking change which fixes an issue RFC PR submitted for gathering feedback v22 Piers labels Jul 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
RFC PR submitted for gathering feedback Type: Fix non-breaking change which fixes an issue v22 Piers
Projects
None yet
Development

Successfully merging this pull request may close these issues.

IA appears to ignore BaseURL in representation in periods after the first
1 participant