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

Use type as a proxy to isLive in dash_parser #464

Closed
wants to merge 1 commit into from

Conversation

baconz
Copy link
Contributor

@baconz baconz commented Jul 26, 2016

Static assets do not necessarily specify a mediaPresentationDuration, so we cannot use presentationDuration == null as a proxy to isLive.

Confirmed that this fixes #463

Static assets do not necessarily specify a mediaPresentationDuration,
so we cannot use presentationDuration == null as a proxy to `isLive`.
@joeyparrish
Copy link
Member

In my opinion, we have too many definitions of isLive now. We used to have one source of this, in PresentationTimeline.

We need to step back and reassess what we're trying to represent and how. I suspect that the term "live" has become overloaded and there are multiple concepts that need to be represented separately.

@baconz
Copy link
Contributor Author

baconz commented Jul 26, 2016

I think that there are three questions which at one point or another have been associated with "isLive":

  1. Is there a known duration?
  2. Are all of the segments currently available? What is the availability end?
  3. Is the back-buffer dynamic? What is the segment availability duration?

In my view, "isLive" should always refer to (2) on that list, and I don't think there are any places in the code where we're conflating it with the others (anymore?). As far as I can tell, the best proxy we're going to get for (2) from the manifest is type=dynamic, so I think this PR is still valid.

The reason some of this logic needed to be pulled out of the PresentationTimeline was that we need it when populating the SegmentIndex, before the timeline is fully initialized. It probably makes sense to add an instance variable to PresentationTimeline that is taken directly from context.isLive and use that in PresentationTimeline.isLive to avoid any confusion.

Right now we signal (1) and (3) with timeline.getDuration() == Number.POSITIVE_INFINITY and timeline.getSegmentAvailabilityDuration() == Number.POSITIVE_INFINITY respectively. We could throw those into their own methods on timeline for clarity.

Let me know your thoughts, and I can submit a revised PR.

@joeyparrish
Copy link
Member

As discussed via email, we are pursuing a different fix. Closing this PR for now.

@github-actions github-actions bot added the status: archived Archived and locked; will not be updated label Jul 25, 2023
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Jul 25, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
status: archived Archived and locked; will not be updated
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Periods are not being switched automatically during playback (regression)
2 participants