You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
What version of Shaka Player are you using? latest
Today, the ABR mechanism is calculating its speed by calculating the total time the request took.
This is good for normal http usage, but when using an advanced http plugin that also prefetches resources ahead of time, its possible that the request coming from the player will return instantly, causing the ABR mechanism to calculate an incorrect request time, eventually messing with the calculated speed and finally the ABR decisions.
I definitely see the utility of this. We could add a field to the response so that networking plugins could return this information.
We would need to change the response structure, which could easily be backward compatible. If the field is there, we use it. If not, we use timing collected by NetworkingEngine instead.
We would also need to change the AbrManager contract to take a time value instead of start and end. This would not be backward compatible, so existing AbrManager plugins would have to change.
We're already going to have to break the AbrManager interface to implement HLS (#279), so we can try to schedule this for the same release (v2.1).
Today, the ABR mechanism is calculating its speed by calculating the total time the request took.
This is good for normal http usage, but when using an advanced http plugin that also prefetches resources ahead of time, its possible that the request coming from the player will return instantly, causing the ABR mechanism to calculate an incorrect request time, eventually messing with the calculated speed and finally the ABR decisions.
A good solution for this will be to be able to pass the desired speed it took to get the resource from the http plugin itself here: https://github.com/google/shaka-player/blob/master/lib/net/http_plugin.js#L60 and then use it later if it exists instead of using the
endMs - startMs
here: https://github.com/google/shaka-player/blob/master/lib/abr/simple_abr_manager.js#L207An example for how its working in
hls.js
: https://github.com/dailymotion/hls.js/blob/master/src/controller/abr-controller.js#L84Thoughts?
The text was updated successfully, but these errors were encountered: