You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@guacamole.apache.org by "JohnXu22786 (via GitHub)" <gi...@apache.org> on 2026/10/03 08:24:22 UTC
[PR] Add opt-in fast lossless RGB PNG encoding [guacamole-server]
JohnXu22786 opened a new pull request, #721:
URL: https://github.com/apache/guacamole-server/pull/721
## What this PR does
### Before this PR:
Opaque RGB24 surfaces follow the existing palette/Cairo PNG encoding path, without an explicit option to reduce PNG compression effort for large picture updates.
### After this PR:
- Add an experimental lossless truecolor PNG writer for RGB24 surfaces, enabled **only** by exactly `GUAC_PNG_FAST_ENCODING=1`.
- Use libpng compression level 1 and the SUB filter, skipping palette construction while preserving decoded pixels.
- Keep default PNG encoding, codec selection, image quality, and non-RGB24/transparency fallback unchanged.
- Add six native CUnit production-path round trips: single pixel, odd dimensions, padded strides, large multi-blob output, alpha fallback, and conservative option values.
### Type of change
Optional picture-encoding performance path. No input/authentication/UI changes or deployment files.
## Tradeoff and Draft checklist
This can reduce compression work at the cost of larger PNG output, especially for low-color images. It does not guarantee lower latency on bandwidth-limited links. No real-device FPS or isolated performance gain is claimed. The environment opt-in is proposed for discussion; upstream may prefer another option mechanism.
- [x] Six focused CUnit tests passed using actual production PNG/socket/parser code and Cairo decoding; every pixel and source padding are checked, including byte-identical default/fallback output.
- [x] `git diff --check` passed.
- [ ] Full upstream Autotools/libguac suite for this candidate; the focused CUnit source build is not a full-suite result.
- [ ] Allocation/output failure injection and performance/bandwidth benchmarking.
- [ ] Required ASF Jira reference: account requested and email-verified, awaiting project approval; no issue key invented.
Intentionally **Draft**, with existing deployment behavior left untouched by this contribution.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: dev-unsubscribe@guacamole.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Add opt-in fast lossless RGB PNG encoding [guacamole-server]
Posted by "JohnXu22786 (via GitHub)" <gi...@apache.org>.
JohnXu22786 commented on PR #721:
URL: https://github.com/apache/guacamole-server/pull/721#issuecomment-5974973340
Thanks for the reminder. These PRs aren't fully finished yet and I'm
still refining them. I'll make sure to add the required Jira issue
reference, and I'll only mark them as ready for review once they're
actually ready. Thanks again for the guidance.
On Sat, 03 Oct 2026 05:54:14 -0700, Virtually Nick
***@***.***> wrote:
> necouchman left a comment [(apache/guacamole-server#721)](https://github.com/apache/guacamole-server/pull/721#issuecomment-5969359480)
>
> Thanks ***@***.***(https://github.com/JohnXu22786) - a couple of notes for you:
>
> - All pull requests must have a Jira issue created for them and have the pull request and commit messages tagged with the Jira issue. You can see plenty of examples of this in other pull requests, and you can request a Jira account but going to the following page and clicking the Request Account link at the top of the page: https://issues.apache.org/jira/projects/GUACAMOLE/issues
>
> - You don't need to submit as a draft to prevent it from being merged - we do not automatically merge pull requests, there will be a review and some changes requested, most likely, before it is merged. Please mark it as "Ready for review" when you actually want it reviewed, else it will probably not get much attention.
>
> You can see the full list of contribution guidelines here: https://guacamole.apache.org/open-source/
>
> —
> Reply to this email directly, [view it on GitHub](https://github.com/apache/guacamole-server/pull/721?email_source=notifications&email_token=A2H24OAPZ7ZQBJKC765NKRL5SDZHNA5CNFSNUABFM5UWIORPF5TWS5BNNB2WEL2JONZXKZKDN5WW2ZLOOQXTKOJWHEZTKOJUHAYKM4TFMFZW63VHNVSW45DJN5XKKZLWMVXHJLDGN5XXIZLSL5RWY2LDNM#issuecomment-5969359480), or [unsubscribe](https://github.com/notifications/unsubscribe-auth/A2H24OERUQ3Z7SDDEXCBH735SDZHNAVCNFSNUABEKJSXA33TNF2G64TZHM2TINBVGI3DENZ3JFZXG5LFHM2TMOBXHEYTINBTG2QXMAQ).
> Triage notifications, keep track of coding agent tasks and review pull requests on the go with GitHub Mobile for [iOS](https://github.com/notifications/mobile/ios/A2H24OBU5T4TS22IORBLA3L5SDZHNA5CNFSNUABFM5UWIORPF5TWS5BNNB2WEL2JONZXKZKDN5WW2ZLOOQXTKOJWHEZTKOJUHAYKM4TFMFZW63VHNVSW45DJN5XKKZLWMVXHJKTGN5XXIZLSL5UW64Y) and [Android](https://github.com/notifications/mobile/android/A2H24ODK5FYW5NWRELRL2ED5SDZHNA5CNFSNUABFM5UWIORPF5TWS5BNNB2WEL2JONZXKZKDN5WW2ZLOOQXTKOJWHEZTKOJUHAYKM4TFMFZW63VHNVSW45DJN5XKKZLWMVXHJLTGN5XXIZLSL5QW4ZDSN5UWI). Download it today!
>
> You are receiving this because you were mentioned.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: dev-unsubscribe@guacamole.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Add opt-in fast lossless RGB PNG encoding [guacamole-server]
Posted by "necouchman (via GitHub)" <gi...@apache.org>.
necouchman commented on PR #721:
URL: https://github.com/apache/guacamole-server/pull/721#issuecomment-5969359480
Thanks @JohnXu22786 - a couple of notes for you:
* All pull requests must have a Jira issue created for them and have the pull request and commit messages tagged with the Jira issue. You can see plenty of examples of this in other pull requests, and you can request a Jira account but going to the following page and clicking the Request Account link at the top of the page: https://issues.apache.org/jira/projects/GUACAMOLE/issues
* You don't need to submit as a draft to prevent it from being merged - we do not automatically merge pull requests, there will be a review and some changes requested, most likely, before it is merged. Please mark it as "Ready for review" when you actually want it reviewed, else it will probably not get much attention.
You can see the full list of contribution guidelines here: https://guacamole.apache.org/open-source/
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: dev-unsubscribe@guacamole.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org