-
Notifications
You must be signed in to change notification settings - Fork 1.4k
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
Demo: HLS Live seek is not possible #1307
Comments
This is intended, and is consistent with built-in HLS support in Safari. Can you give us some details on how you expected it to work? |
I expect that works the same way that DASH. |
We can probably make this configurable, and make it apply to all live streams (DASH & HLS). By default, we would allow seeking to any segment we know about. The other option would be to disallow live stream seeking, as we do today for HLS live. |
You should be able to seek in HLS live streams now. Just set the |
hi @theodab it's not working as expected, how can you knowWindow by default in HLS? with the new configuration I can only set a value if the value it's know by the application, but the real availabilityWindow is already included in the stream By default the behavior it's the same as in previous releases (eg 2.4.2) and the default behavior is different to DASH. |
Well, in that case, you should wait on #999. |
Yes, the default behavior is intentionally the same as in 2.4.2. This change gives you an explicit override, for both DASH & HLS. @avelad, try setting the override to |
Hi @joeyparrish, I just tested with Infinity and I get more range than declared in the playlist. This does not work for an EVENT playlist (startover funcionality) because the start is a known value, but the duration change in each update. I attach a video with the test. |
I think this feature is not working correctly. I will reopen and investigate. |
The override set by the player after the initial manifest is parsed is wiped when a live manifest is updated. |
@avelad, can you please try again with the latest code? I believe we have fixed the issue. |
Actually, we've just discovered what appears to be a related bug in the HLS parser. Setting availabilityWindowOverride to Infinity does what I would expect in DASH: the segments that appear in the manifest can all be seeked to. This is not the case for HLS. Right now, with the same setting and an HLS live stream, the seek range includes all segments that have ever existed, including ones that don't appear in the playlist any longer. We should be able to fix this. @theodab will investigate. Sorry for the inconvenience. I think (hope?) this should be the last change required for this. |
I found thaht it's not possible configure availabilityWindowOverride = Infinity in Demo page, is it possible add Infinity value? |
That's a limitation of |
@joeyparrish I would think there would be three distinct use cases for this setting:
So setting to Infinity would mean (to me) to be all segments are available forever, similar to not having a |
@TheModMaker, you are right. For HLS, there is no difference between a window override of |
Okay, with that change, setting availabilityWindowOverride to Infinity (or some other arbitrary large value) should now properly set the start time on an HLS livestream. |
I just tested and everything works as expected. Thanks!! |
This config lets you override the availability window of a live stream. It is in config.manifest, and passed along on start. This will let users configure the parser so that they can seek with HLS live streams, for example. Closes #1177 Closes #1307 Change-Id: Icd3c1d81c6b52ebdbb72137df42fc91cd73a0207
This reverts the implementation to an earlier draft state. During review of the first version, I recommended moving the implementation to Player so that it would be independent of the manifest parsers. That was bad advice on my part, because this overlooked updates made by the parsers when live manifests are updated later. Closes #1177 Closes #1307 Change-Id: I4611e00824dead83c6467da04a2a11afa892ace7
Beforehand, we would call presentationTimeline.notifyMaxSegmentDuration, which effectively does half of what presentationTimeline.notifySegments does. At the time, we only thought that that was only what we had to do. However, it did mean that we were never setting the maxFirstSegmentStartTime_, which was causing HLS livestreams with overridden segment availability times to have incorrect seek ranges. Closes #1307 Change-Id: I3a9385eb522579156e088f298e404063bf9542dd
Using https://shaka-player-demo.appspot.com/demo/#asset=//storage.googleapis.com/shaka-live-assets/player-source.m3u8;lang=es-419;build=uncompiled
Seek is not possible with HLS Live
Shaka Player Demo.zip
The text was updated successfully, but these errors were encountered: