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

fix(HLS): Fix discontinuity tracking #4881

Merged

Conversation

joeyparrish
Copy link
Member

@joeyparrish joeyparrish commented Jan 10, 2023

Discontinuity tracking was broken and test coverage was insufficient to catch this. This fixes the parsing and counting of discontinuities, and replaces two outdated and useless tests with a new one that covers the counting properly.

One of the old tests was checking that a timestamp offset was set for each discontinuity, but this had become irrelevant since the test was written. Discontinuities do not have anything to do with timestamp offsets in current versions of Shaka Player.

The other old test was checking that after a discontinuity, we didn't fetch a segment to parse out the timestamp, but we stopped doing that entirely in v4.

The new test checks that the initial discontinuity sequence number is honored, and that after a discontinuity, the number goes up. It also checks that the correct number is extracted after an update. This test fails without the fix, and passes with it.

This bug affected v4.2.6 and v4.3.2 only.

Issue #4589

Discontinuity tracking was broken and test coverage was insufficient
to catch this.  This fixes the parsing and counting of
discontinuities, and replaces two outdated and useless tests with a
new one that covers the counting properly.

One of the old tests was checking that a timestamp offset was set for
each discontinuity, but this had become irrelevant since the test was
written.  Discontinuities do not have anything to do with timestamp
offsets in current versions of Shaka Player.

The other old test was checking that after a discontinuity, we didn't
fetch a segment to parse out the timestamp, but we stopped doing that
entirely in v4.

The new test checks that the initial discontinuity sequence number is
honored, and that after a discontinuity, the number goes up.  It also
checks that the correct number is extracted after an update.  This
test fails without the fix, and passes with it.
@joeyparrish joeyparrish added component: HLS The issue involves Apple's HLS manifest format priority: P0 Broken for everyone; no workaround; urgent labels Jan 10, 2023
@joeyparrish joeyparrish added the type: bug Something isn't working correctly label Jan 10, 2023
@github-actions
Copy link
Contributor

Incremental code coverage: 100.00%

@joeyparrish joeyparrish merged commit fc3d5c1 into shaka-project:main Jan 10, 2023
@joeyparrish joeyparrish deleted the fix-discontinuity-tracking branch January 10, 2023 19:37
joeyparrish added a commit that referenced this pull request Jan 13, 2023
Discontinuity tracking was broken and test coverage was insufficient to
catch this. This fixes the parsing and counting of discontinuities, and
replaces two outdated and useless tests with a new one that covers the
counting properly.

One of the old tests was checking that a timestamp offset was set for
each discontinuity, but this had become irrelevant since the test was
written. Discontinuities do not have anything to do with timestamp
offsets in current versions of Shaka Player.

The other old test was checking that after a discontinuity, we didn't
fetch a segment to parse out the timestamp, but we stopped doing that
entirely in v4.

The new test checks that the initial discontinuity sequence number is
honored, and that after a discontinuity, the number goes up. It also
checks that the correct number is extracted after an update. This test
fails without the fix, and passes with it.

This bug affected v4.2.6 and v4.3.2 only.

Issue #4589
joeyparrish added a commit that referenced this pull request Jan 13, 2023
Discontinuity tracking was broken and test coverage was insufficient to
catch this. This fixes the parsing and counting of discontinuities, and
replaces two outdated and useless tests with a new one that covers the
counting properly.

One of the old tests was checking that a timestamp offset was set for
each discontinuity, but this had become irrelevant since the test was
written. Discontinuities do not have anything to do with timestamp
offsets in current versions of Shaka Player.

The other old test was checking that after a discontinuity, we didn't
fetch a segment to parse out the timestamp, but we stopped doing that
entirely in v4.

The new test checks that the initial discontinuity sequence number is
honored, and that after a discontinuity, the number goes up. It also
checks that the correct number is extracted after an update. This test
fails without the fix, and passes with it.

This bug affected v4.2.6 and v4.3.2 only.

Issue #4589
Robloche pushed a commit to Robloche/shaka-player that referenced this pull request Feb 8, 2023
Discontinuity tracking was broken and test coverage was insufficient to
catch this. This fixes the parsing and counting of discontinuities, and
replaces two outdated and useless tests with a new one that covers the
counting properly.

One of the old tests was checking that a timestamp offset was set for
each discontinuity, but this had become irrelevant since the test was
written. Discontinuities do not have anything to do with timestamp
offsets in current versions of Shaka Player.

The other old test was checking that after a discontinuity, we didn't
fetch a segment to parse out the timestamp, but we stopped doing that
entirely in v4.

The new test checks that the initial discontinuity sequence number is
honored, and that after a discontinuity, the number goes up. It also
checks that the correct number is extracted after an update. This test
fails without the fix, and passes with it.

This bug affected v4.2.6 and v4.3.2 only.

Issue shaka-project#4589
@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
component: HLS The issue involves Apple's HLS manifest format priority: P0 Broken for everyone; no workaround; urgent status: archived Archived and locked; will not be updated type: bug Something isn't working correctly
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants