Open jpiesing opened 4 years ago
"Best effort" is used to convey that there are no performance guarantees, just attempts.
Could you elaborate on which parts of the definition are problematic? Is it because the "one v-sync late" is offering some implicit guarantee? Do you have a proposed way of how to relax the spec further?
The proposal looks interesting but the definition of "best effort" would seem to exclude UAs running on some hardware platforms.
Many media consumption devices run an HTML UA but decode video in hardware (and sometimes audio too). In some hardware, there may be additional video processing steps between the video decoder and the video/graphics composition - e.g. frame rate conversion and some form of motion interpolation or motion smoothing [1]. The time taken for the video to get from the video decoder to the compositor may be variable and/or not well defined. On some hardware platforms, it may not be possible to query the time of the video frames going into the compositor and this may have to be estimated. In some media consumption devices, the video/graphics composition may be done in a separate chip from the one running the HTML UA and decoding the video, making it even harder to meet the definition of "best effort".
The HTML UA used in media consumption devices are normally forks of mainstream browsers with as few changes as possible to the code from the original. Having to remove or disable support for requestVideoFrameCallback each time the fork is re-synced with the original would be tedious.
Please consider either relaxing the definition of "best effort" or adding a failure mode so that an HTML UA running on such hardware can just report that it cannot meet the definition of "best effort".
[1] https://www.flatpanelshd.com/focus.php?subaction=showfull&id=1544698247