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

IE/Edge: Player does not jump start gap; hangs indefinitely #1281

Closed
johnBartos opened this issue Feb 8, 2018 · 15 comments
Closed

IE/Edge: Player does not jump start gap; hangs indefinitely #1281

johnBartos opened this issue Feb 8, 2018 · 15 comments
Labels
status: archived Archived and locked; will not be updated type: external An issue with an external dependency; not our issue; sometimes kept open for tracking

Comments

@johnBartos
Copy link

Have you read the FAQ and checked for duplicate open issues?:
Yes. Opened as a followup to #1061

What version of Shaka Player are you using?:
2.3.2

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

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

Are you using the demo app or your own custom app?:
Reproducible in the demo and JW (which we install via npm)

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

What browser and OS are you using?:
IE 11, Microsoft EdgeHTML 14.14393

What are the manifest and license server URIs?:
https://s3.amazonaws.com/bob.jwplayer.com/%7Ealex/107415/dash/dash2.mpd

What did you do?
Start playback

What did you expect to happen?
Playback begins; either the start gap is jumped or the stream is buffered with no gap (as is the case with FF/Chrome)

What actually happened?
The media element stalls in readyState 1; media is buffered at about 1.5s

@theodab theodab added needs triage type: bug Something isn't working correctly and removed needs triage labels Feb 8, 2018
@theodab
Copy link
Collaborator

theodab commented Feb 8, 2018

Reproduced. Yeah, looks like this is a problem again.

@TheModMaker
Copy link
Contributor

@theodab I doubt this is related to gap jumping. This seems like a media or platform problem.

The fact that the content starts at 1.5 seconds seems really weird. I might expect it to be 0.2 seconds because of PTS/DTS confusion, but 1.5 seconds is really large. It seems more like Edge is just rejecting the first segment we append.

@TheModMaker
Copy link
Contributor

Is the buffer start closer to 1.7 seconds? I notice that the second keyframe of the video is at 1.708 seconds. So what may be happening is we somehow remove the first frame of the video (which is the keyframe), and the browser removes until the next keyframe.

@joeyparrish joeyparrish added this to the v2.4.0 milestone Feb 8, 2018
@johnBartos
Copy link
Author

@TheModMaker IIRC It was at ~1.56

@joeyparrish
Copy link
Member

The buffer starts at 1.5416 on Edge. On Chrome and Safari, it starts at 0. I can't account for the difference yet, but it seems to be specific to the way Edge interprets the content. I'm going to do some more digging.

@joeyparrish joeyparrish self-assigned this Feb 27, 2018
@joeyparrish
Copy link
Member

Whatever the root of the issue at the platform level, enabling gap jumping for "large gaps" or increasing the tolerance of "small gaps" works around the issue.

Here are some examples of how to set those configurations:

// Increase the size of the gaps that Shaka Player will automatically jump:
player.configure({
  streaming: {
    smallGapLimit: 2.0,
  },
});

// Alternately, instruct Shaka Player to jump all gaps automatically:
player.configure({
  streaming: {
    jumpLargeGaps: true,
  },
});

@joeyparrish
Copy link
Member

The first period's first video segment has a timestamp of 0.083 seconds according to the manifest. The first period's first audio segment has a timestamp of 0 seconds. The manifest contents look sane in terms of timestamps and presentationTimeOffsets.

@joeyparrish
Copy link
Member

Artificially reducing the presentationTimeOffset by as little as 1 microsecond fixes the timestamp on Edge. I expect that the bug is caused by a rounding error in Edge's media stack that causes the first key frame to be removed, along with the rest of the GOP. The difference in the timestamps of the first two key frames is 1.541 seconds, which accounts for the discrepancy.

@joeyparrish joeyparrish added type: external An issue with an external dependency; not our issue; sometimes kept open for tracking and removed type: bug Something isn't working correctly labels Feb 27, 2018
@joeyparrish
Copy link
Member

I have archived this content at a URL we control so that it is sure to outlive the MS Edge bug report I'm working on. Here's a quick repro URL:

https://v2-3-2-dot-shaka-player-demo.appspot.com/demo/#asset=https://storage.googleapis.com/shaka-demo-assets/_bugs/1281/dash2.mpd;lang=en-US;play;build=uncompiled

@joeyparrish
Copy link
Member

@joeyparrish
Copy link
Member

Working around the initial gap is not enough. We have to work around another gap at around 60 seconds. For that, I find that I have to reduce the start of the append window.

shaka-bot pushed a commit that referenced this issue Mar 1, 2018
Edge bug: https://goo.gl/3ZTzse

Issue #1281

Change-Id: I03fcef7d52afc3a15b7cd7c4b873bff774087f82
joeyparrish added a commit that referenced this issue Mar 1, 2018
Edge bug: https://goo.gl/3ZTzse

Issue #1281

Change-Id: I03fcef7d52afc3a15b7cd7c4b873bff774087f82
@joeyparrish
Copy link
Member

Workaround cherry-picked for v2.3.3.

@joeyparrish joeyparrish removed this from the v2.4 milestone Mar 4, 2018
@johnBartos
Copy link
Author

@joeyparrish Thanks for the in-depth analysis and fix 👍

@joeyparrish
Copy link
Member

Happy to help!

@joeyparrish
Copy link
Member

Closing this stale external (non-Shaka) issue. In particular, Edge is completely different now, so this is likely no longer valid.

@shaka-project shaka-project locked and limited conversation to collaborators Jun 7, 2020
@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 type: external An issue with an external dependency; not our issue; sometimes kept open for tracking
Projects
None yet
Development

No branches or pull requests

5 participants