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

AV sync issues with HLS in v4.0.0, v4.0.1, v4.0.2, v4.1.0 #4287

Closed
joeyparrish opened this issue Jun 10, 2022 · 3 comments · Fixed by #4289 or #4273
Closed

AV sync issues with HLS in v4.0.0, v4.0.1, v4.0.2, v4.1.0 #4287

joeyparrish opened this issue Jun 10, 2022 · 3 comments · Fixed by #4289 or #4273
Assignees
Labels
component: HLS The issue involves Apple's HLS manifest format priority: P1 Big impact or workaround impractical; resolve before feature release status: archived Archived and locked; will not be updated type: bug Something isn't working correctly
Milestone

Comments

@joeyparrish
Copy link
Member

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

What version of Shaka Player are you using?
v4.1.0

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

Can you reproduce the issue with the latest code from main?
yes

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

If custom app, can you reproduce the issue using our demo app?
N/A

What browser and OS are you using?
Chrome 102 stable Linux

For embedded devices (smart TVs, etc.), what model and firmware version are you using?
N/A

What are the manifest and license server URIs?

Provided privately, reference b/235504598

What configuration are you using? What is the output of player.getConfiguration()?

default

What did you do?

Load HLS live stream provided privately.

What did you expect to happen?
AV sync should be in tact.

What actually happened?

AV sync is off by ~6 seconds.

@joeyparrish joeyparrish added type: bug Something isn't working correctly component: HLS The issue involves Apple's HLS manifest format priority: P0 Broken for everyone; no workaround; urgent labels Jun 10, 2022
@joeyparrish
Copy link
Member Author

joeyparrish commented Jun 10, 2022

It appears that this won't affect everyone, but if audio & video content is not aligned perfectly, EXT-X-PROGRAM-DATE-TIME code does not correct this as it should. So it could affect anyone whose content doesn't meet some very strict conditions. Based on that, I'm marking it P0.

@joeyparrish joeyparrish self-assigned this Jun 10, 2022
@github-actions github-actions bot added this to the v4.2 milestone Jun 10, 2022
@joeyparrish
Copy link
Member Author

Original code to read EXT-X-PROGRAM-DATE-TIME: 89409ce

@joeyparrish
Copy link
Member Author

After careful analysis, the EXT-X-PROGRAM-DATE-TIME values in the content are being read and used correctly, but the values themselves are incorrect. The content itself is broken.

Setting hls.ignoreManifestProgramDateTime: true in the config works around the issue, but only if the playlist sequence numbers all happen to be synced at the time they are read. This should be more explicit.

Downgrading to a P1, and I'll work to improve the behavior when hls.ignoreManifestProgramDateTime is used.

@joeyparrish joeyparrish added priority: P1 Big impact or workaround impractical; resolve before feature release and removed priority: P0 Broken for everyone; no workaround; urgent labels Jun 10, 2022
joeyparrish added a commit that referenced this issue Jun 13, 2022
…-DATE-TIME ignored (#4289)

We now have an explicit fallback to sync on sequence numbers if
PROGRAM-DATE-TIME is explicitly ignored.  This is more robust than
relying on whatever happens to be first in the various media
playlists.

This also refactors how PROGRAM-DATE-TIME is used.  The date will now
be used to adjust segment reference start times, rather than
overriding the time used in StreamingEngine.  (This was hard to
discover when reading the HLS parser.)  Now all HLS sync logic is in
the HLS parser.

Closes #4287
avelad pushed a commit that referenced this issue Jun 14, 2022
…-DATE-TIME ignored (#4289)

We now have an explicit fallback to sync on sequence numbers if
PROGRAM-DATE-TIME is explicitly ignored.  This is more robust than
relying on whatever happens to be first in the various media
playlists.

This also refactors how PROGRAM-DATE-TIME is used.  The date will now
be used to adjust segment reference start times, rather than
overriding the time used in StreamingEngine.  (This was hard to
discover when reading the HLS parser.)  Now all HLS sync logic is in
the HLS parser.

Closes #4287
avelad pushed a commit that referenced this issue Jun 14, 2022
…-DATE-TIME ignored (#4289)

We now have an explicit fallback to sync on sequence numbers if
PROGRAM-DATE-TIME is explicitly ignored.  This is more robust than
relying on whatever happens to be first in the various media
playlists.

This also refactors how PROGRAM-DATE-TIME is used.  The date will now
be used to adjust segment reference start times, rather than
overriding the time used in StreamingEngine.  (This was hard to
discover when reading the HLS parser.)  Now all HLS sync logic is in
the HLS parser.

Closes #4287
@github-actions github-actions bot added the status: archived Archived and locked; will not be updated label Aug 12, 2022
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Aug 12, 2022
echoy-harmonicinc pushed a commit to harmonicinc-com/shaka-player that referenced this issue Dec 6, 2022
…-DATE-TIME ignored (shaka-project#4289)

We now have an explicit fallback to sync on sequence numbers if
PROGRAM-DATE-TIME is explicitly ignored.  This is more robust than
relying on whatever happens to be first in the various media
playlists.

This also refactors how PROGRAM-DATE-TIME is used.  The date will now
be used to adjust segment reference start times, rather than
overriding the time used in StreamingEngine.  (This was hard to
discover when reading the HLS parser.)  Now all HLS sync logic is in
the HLS parser.

Closes shaka-project#4287
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: P1 Big impact or workaround impractical; resolve before feature release status: archived Archived and locked; will not be updated type: bug Something isn't working correctly
Projects
None yet
1 participant