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

Support EXR/WebP using direct transmission #3758

Closed
dankamongmen opened this issue Jun 24, 2021 · 4 comments
Closed

Support EXR/WebP using direct transmission #3758

dankamongmen opened this issue Jun 24, 2021 · 4 comments

Comments

@dankamongmen
Copy link
Contributor

Is your feature request related to a problem? Please describe.
Kitty can display at least JPEG, EXR, and WebP when using indirect transmission media. When providing the data directly, however (t=d), the only documented format is PNG (f=100). I'd like to explore EXR and WebP, due to their superior characteristics viz PNG on certain images, and I intend to use direct transmission (generally necessary for remote clients, AFAICT). This is related to dankamongmen/notcurses#1821 and dankamongmen/notcurses#1695, where I'm seeing nice performance improvements over RGBA.

Describe the solution you'd like
I'd like f=101 for EXR and f=102 for WebP, or whatever. I do not think it sensible to do arbitrary container detection along this path; if you want to do that, I'd suggest f=420 or whatever, so that clients that know their format ahead of time (as I will) can specify it.

Describe alternatives you've considered
Always encoding to PNG, which is fine except these might be better (and you already seem to support them), and transporting RGBA directly, which is (usually) slower due to the (usually) greater bandwidth.

Additional context
aside: I'd still really, really like to get away from base64 encoding, but kinda understand why you don't want to completely disable the lexer state machine for the duration of reading graphics. Given that failing to complete a graphic can already lock Kitty up, requiring a reset, is it really necessary to watch for other types of escapes? It's unfortunate.

@kovidgoyal
Copy link
Owner

kovidgoyal commented Jun 24, 2021 via email

@dankamongmen
Copy link
Contributor Author

thanks for the detailed feedback, got it!

@dankamongmen
Copy link
Contributor Author

i think i will look into OOB transmission after all, especially after seeing the performance numbers in dankamongmen/notcurses#1695. they're simply too tantilizing!

@kovidgoyal
Copy link
Owner

Indeed, I view in band transmission of image data as very much a last reesort, network only fallback. The icat kitten for instance uses files for OOB which makes sense for it since imagemagick outputs files.

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

No branches or pull requests

2 participants