Description
We aim to display a filtered group of errors to the user - only those fatal ones describing the reason for his/her inability to start or continue watching the content. We tried to utilize the error codes provided by Shaka, however, we realized that with the way the error events are currently handled, we wouldn't be able to achieve that perfectly.
- For example, should some network disruption occur, Shaka throws a network error caused by, say, an unavailable segment at that moment, but it might recover the stream later, because it is still trying to access the segment not adhering to the amount of retries from the player configuration after which the error message itself is triggered.
Nevertheless, in our scenario the error would be already displayed to the user, although the playback continues once the stream recovers, because there is still enough data in the buffer, so no actual problem occurs from user's standpoint. - Taking the situation from the above point as an example, there is no difference in error severity, possibly recoverable and non-fatal errors are on the same level as for example a malformed mpd manifest.
We would like to have better control over error processing, what approach should we take to display the errors at the very moment the user is affected, e.g. the exact moment the playback stalls? What means are there to handle HTTP status codes directly so that we can for instance influence the number of these status code-based errors possibly displayed to the user during a given time period?
Could all the errors themselves propagate an additional severity flag and possibly adapt the severity value depending on the situation with regards to the state of the playback?
Could we have error recover methods available? E.g. recover from not downloaded segment, new DRM key available, subtitles available with a different url.