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

Segment numbers off by factor 2 for live stream with presentationTimeOffset #1255

Closed
TobbeEdgeware opened this issue Jan 26, 2018 · 3 comments
Labels
status: archived Archived and locked; will not be updated status: duplicate A duplicate of another issue; should be closed after linking to the original issue type: bug Something isn't working correctly

Comments

@TobbeEdgeware
Copy link
Contributor

Have you read the FAQ and checked for duplicate open issues?:

  • Yes

What version of Shaka Player are you using?:

  • Latest from master

Can you reproduce the issue with our latest release version?:

  • Yes

Can you reproduce the issue with the latest code from master?:

  • Yes

Are you using the demo app or your own custom app?:

  • Demo app

If custom app, can you reproduce the issue using our demo app?:

  • NA

What browser and OS are you using?:

  • Chrome on Mac OS/Linux

What are the manifest and license server URIs?:

A non-working stream is:

The exact same segments, but with a period that starts at availabilityStartTime works:

What did you do?
I tried to play the content in the demo player

What did you expect to happen?
The content should play and the time should be synchronised with wall-clock as for the working stream

What actually happened?
The player requested segment numbers which were twice as big as they should be.
The server responded with 404 and the player showed error message

Some more background
The asset plays without problem in dash.js.

The use case we are after is "start over" of a live channel, where the URL is defining a "start time". The segments should be the same as for the linear channel which has availabilityStartTime="1970-01-01", but the availabilityStartTime/Period@start of the "start over" asset is defined by the "start time".

On the manifest level (for SegmentTemplate with $Number$) this translates to

  • availabilityStartTime = "start time"
  • Period@start = "PT0S"
  • startNumber = "start time" / duration
  • presentationTimeOffset = "start time" (this must match the media time inside the first segment in the media. These have a time relative to 1970)

The example URL is one option to the DASH-IF dash-live-source simulator. The periods_1 part of the URL tells the simulator to start 1 new period every hour. Except at the hour boundary, the manifest has properties like the table above except that availabilityStartTime ="1970-01-01", and period@start = "latest hour", but since it is the sum of availabilityStartTime and Period@start that is used as reference, the erroneous behaviour is exactly the same as for our non-public URL.

Looking at the code, it is correctly stated that the presentationTime should start from zero at the start of a period. However, this is the default value, and if the time in the media does not start from zero, the presentationTimeOffset must be taken into account it that gives the offset of the time in the media at the start of the period. This does not seem to be the case.

This is a bit related to issue #237.

@sandersaares
Copy link
Contributor

Duplicate of #1232 I believe

@TobbeEdgeware
Copy link
Contributor Author

Hi @sandersaares, seems that you're correct about #1232 referring to the same issue. At least, I'm contributing with a new asset and some more arguments that there is indeed a bug in the code.

@TheModMaker
Copy link
Contributor

Closing as duplicate of #1232.

@TheModMaker TheModMaker added type: bug Something isn't working correctly status: duplicate A duplicate of another issue; should be closed after linking to the original issue labels Jan 29, 2018
@shaka-project shaka-project locked and limited conversation to collaborators Mar 30, 2018
@shaka-bot shaka-bot added the status: archived Archived and locked; will not be updated label Apr 15, 2021
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 status: duplicate A duplicate of another issue; should be closed after linking to the original issue type: bug Something isn't working correctly
Projects
None yet
Development

No branches or pull requests

4 participants