-
Notifications
You must be signed in to change notification settings - Fork 6k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Detect playlist stuck and playlist reset conditions in HLS
This CL aims that the player fails upon: - Playlist that don't change in a suspiciously long time, which might mean there are server side issues. - Playlist with a media sequence lower that its last snapshot and no overlapping segments. This two error conditions are propagated through the renderer, but not through MediaSource#maybeThrowSourceInfoRefreshError. Issue:#2872 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=160899995
- Loading branch information
1 parent
dda3616
commit a046633
Showing
1 changed file
with
72 additions
and
10 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
a046633
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
hi, how can we handle the time o be reloaded when reset from server?
a046633
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am not sure I understand the question. Could you rephrase and maybe provide an example or two?
a046633
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
how can we manage the time to reload the channel after it is stucked such ass PLAYLIST_STUCK_TARGET_DURATION_COEFFICIENT and PRIMARY_URL_KEEPALIVE_MS and DEFAULT_TRACK_BLACKLIST_MS
a046633
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
since when reset from server it takes a long time to play
a046633
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When you restart the server it takes time to throw PlaylistResetException? That should happen as soon as the playlist gets loaded.
a046633
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the time needed cant be handled to minimize it
a046633
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What he means is that:
on iOS when the streaming channel is restarted, the player plays the stream as soon as the channel goes back online (delay of 10 seconds max)
What can be modified here to replicate the same behaviour with exoplayer noting that no exceptions are thrown or errors are thrown by exoplayer to be able to detect the problem
a046633
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also kindly note that the stream restarts by exoplayer after one minute
So my question here is, how and what parameters can be modified to reduce this one minute interval
a046633
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The referred constants are unrelated to server reset detection. ExoPlayer detects playlist resets by tracking media sequence numbers. The condition for server resets is:
media sequence of the last snapshot > (media sequence of the new snapshot + number of segments in the new snapshot)
E.g:
Say all playlists have 10 segments, and the last snapshot grabbed from the server has media sequence 15. A playlist reset exception will be thrown if and only if the new snapshot has media sequence 4 or lower. Otherwise, it is going to be stuck in the buffering state until the playlist starts offering new segments. I suppose this is what is happening? (This was not explained in the comments above).
I assume what you want is to customize the playlist reset detection condition to be more aggressive? It is not currently possible, but could be. If this is the case, please file a new issue providing clear explanation of what the problem is, including expected and actual behavior. Also, it is usually easier for us to understand if behavior is described in terms of player states and events.
a046633
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is there a way to minimize the time needed to the channel to be restarted which is arround 1 min when channel on server is restarted?
a046633
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would you kindly file an issue to prevent this discussion from getting lost in time?
a046633
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
hi when restarting the channel from server the channel on exoplayer is stucked or take a long time to be restarted is there a way to make it faster to reload on client side when restarted from server?