Skip to content
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

definition of best effort seems to exclude UAs on some hardware platforms #57

Open
jpiesing opened this issue May 27, 2020 · 1 comment

Comments

@jpiesing
Copy link

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

@tguilbert-google
Copy link
Member

"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?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants