Commit Graph

137 Commits

Author SHA1 Message Date
Mike Jumper
8a91965b07 Merge pull request #92 from flangelo/encoding_artifacts
GUAC-1366: Adjust WebP and JPEG image sizes before compressing to avo…
2015-10-19 11:48:39 -07:00
Frode Langelo
670c6b766e GUAC-1365: Don't send JPEG image refreshes if the image size is less than 4096 pixels. WebP decision should not include the size check. 2015-10-16 16:46:10 +00:00
Frode Langelo
69a7b8c066 GUAC-1366: Adjust WebP and JPEG image sizes before compressing to avoid artifacts on the edges of the images 2015-10-06 22:31:58 +00:00
Michael Jumper
1211c366bf GUAC-1305: Support lossless WebP within encoder. 2015-09-22 12:17:26 -07:00
Michael Jumper
0dd4d9b9fa GUAC-1305: Send WebP images in preference to JPEG when supported. 2015-09-20 18:58:30 -07:00
Michael Jumper
7cb632c5c9 GUAC-240: Ensure initialization of last_pixel is obvious. 2015-09-18 11:38:22 -07:00
Michael Jumper
5dc5a9dbca GUAC-240: Rename optimality function to match convention used elsewhere in this file. 2015-08-17 16:14:57 -07:00
Michael Jumper
16fd8f6c7d GUAC-240: Fix buffer error in calculation of framerate. Clarify naming. 2015-08-17 16:09:40 -07:00
Michael Jumper
c604777622 GUAC-240: Remove unused macros. 2015-08-17 16:04:07 -07:00
Michael Jumper
62572073b0 GUAC-240: Dynamically allocate heat map. Throw away heat map during resize. 2015-08-17 16:02:19 -07:00
Michael Jumper
cc21092ac2 GUAC-240: Remove unnecessary change to PNG function. 2015-08-17 11:11:30 -07:00
Michael Jumper
2d66ae87f9 GUAC-240: Improve PNG optimality approximation algorithm (count average run length). 2015-08-17 11:02:18 -07:00
Michael Jumper
b0db2c210f GUAC-240: Remove now-unused structure member. 2015-08-17 08:38:41 -07:00
Michael Jumper
b6a2de8a97 GUAC-240: Remove whitespace changes. 2015-08-17 08:37:43 -07:00
Michael Jumper
adcb887efb GUAC-240: Correct PNG optimality calculations. 2015-08-17 08:30:23 -07:00
Michael Jumper
b56afd8bb8 GUAC-240: Approximate whether images will compress well with JPEG vs. PNG. 2015-08-17 06:29:30 -07:00
Michael Jumper
f7cb3d56e9 GUAC-240: Update function documentation. Remove unused macros. 2015-08-17 01:51:03 -07:00
Michael Jumper
dd2e020351 GUAC-240: Move JPEG optimality test into own function. 2015-08-17 01:44:31 -07:00
Michael Jumper
baf01d5524 GUAC-240: Flush to JPEG if dirty rect is hot. 2015-08-17 01:34:32 -07:00
Michael Jumper
26f9070d99 GUAC-240: Restore flush to PNG. Simplify handling of flush. Remove lossy pipeline. 2015-08-17 01:27:09 -07:00
Michael Jumper
807e3a39a5 GUAC-240: Simplify and clarify update history tracking. Remove lossless refresh of previously-lossy updates for now. 2015-08-17 01:13:59 -07:00
Michael Jumper
254a0dded0 GUAC-240: Remove need for forward declarations of static functions. 2015-08-14 10:54:59 -07:00
Frode Langelo
379c4462ca GUAC-240: Implement adaptive encoding. Build a heat map of the screen, and use lossy image compression for areas refreshing frequently. Once refresh frequency is reduced the lossy area is repainted with a lossless image. 2015-08-14 10:54:59 -07:00
Michael Jumper
78b7b73e78 GUAC-240: Remove guac_protocol_send_png() and guac_protocol_send_jpeg(). 2015-08-13 16:38:54 -07:00
Michael Jumper
9c2d7f56ce GUAC-240: Add function for streaming PNG images via img instruction. Use for surface. 2015-08-13 16:38:54 -07:00
Michael Jumper
859f7d9340 GUAC-240: Associate Guacamole client with surface. 2015-08-13 16:38:53 -07:00
Frode Langelo
385808c7a1 GUAC-240: New rectangle helper methods and utilities which will be used by adaptive encoding. Rectangle helper unit tests. 2015-08-06 17:19:35 -07:00
Michael Jumper
c199cfc8d7 GUAC-1171: Adopt cleaner style for Makefile.am. 2015-07-08 15:39:25 -07:00
Frode Langelo
9c8756556a GUAC-1247: Fix case where 1x1 pixel surface put with non-dirty data was not ignored 2015-07-08 11:12:34 -07:00
Michael Jumper
4d7634da9e GUAC-1172: Remove use of stdbool.h and bool from guac_json - FreeRDP is not compatible with use of the standard bool. 2015-07-06 00:43:21 -07:00
Michael Jumper
58621ca42b GUAC-1172: Move JSON functions to common. 2015-07-05 18:08:22 -07:00
Michael Jumper
732adf9063 GUAC-1090: Clip operation by surface size when no clipping rectangle is present. 2015-02-20 16:53:24 -08:00
Michael Jumper
67ed8c5791 GUAC-1008: Properly init clipping rectangle. 2015-01-15 17:03:26 -08:00
Michael Jumper
75f0fc7807 GUAC-996: Do not reset clip upon resize. Fix copy of surface data. 2015-01-09 16:00:03 -08:00
Michael Jumper
374a43b27a GUAC-923: Rename bounds_rect to clip_rect. Add function which restricts rects to surface bounds, distinct from the previous badly-named function which restricted rects to the clipping rect. 2014-11-10 10:26:00 -08:00
Michael Jumper
661193fcb0 GUAC-911: Add debug messages to common pieces dealing with guac_client. 2014-11-09 20:44:49 -08:00
Michael Jumper
5f308c9f31 GUAC-891: Ensure updates are clipped within surface bounds. 2014-10-16 18:55:43 -07:00
Michael Jumper
ea765ba602 GUAC-730: Fix headers for src/common. 2014-06-10 17:20:49 -07:00
Michael Jumper
dbaca11d68 GUAC-688: Fix segfault on resize. 2014-05-13 10:41:06 -07:00
Michael Jumper
51093201f5 GUAC-675: Document return value of __guac_common_surface_transfer_int(). 2014-05-12 21:46:36 -07:00
Michael Jumper
cad60299e1 GUAC-687: Only update backing surface first if the destination rect cannot intersect the source rect. 2014-05-12 14:43:50 -07:00
Michael Jumper
3e0828d6da GUAC-687: Initialize newly-allocated buffer space to transparent black. 2014-05-12 13:50:51 -07:00
Michael Jumper
9746ea68a4 GUAC-687: Use correct rect when checking for fully clipped updates. 2014-05-12 13:44:51 -07:00
Michael Jumper
89b0a452a5 GUAC-687: Do not allow empty updates to the dirty rect. 2014-05-12 13:27:33 -07:00
Michael Jumper
584ca5f35c GUAC-675: Update comments reflecting new use of guac_common_rect. 2014-05-12 09:20:22 -07:00
Michael Jumper
2bbbda3ca9 GUAC-675: Source coordinates must be updated along with rect. 2014-05-12 02:26:04 -07:00
Michael Jumper
07f6712591 GUAC-675: Optimize copy. 2014-05-12 02:01:09 -07:00
Michael Jumper
573f524dee GUAC-675: Optimize output of rect. 2014-05-12 01:45:55 -07:00
Michael Jumper
c0b955fab0 GUAC-675: Add rect struct. Migrate surface to new rect struct. 2014-05-12 01:39:52 -07:00
Michael Jumper
a9ba417891 GUAC-675: Narrow update rect to contain only different pixels. 2014-05-11 12:28:19 -07:00
Michael Jumper
442a520150 GUAC-674: Fix typo in comment. Make __guac_common_surface_flush_to_png() static. 2014-05-11 12:28:07 -07:00
Michael Jumper
0da9df3620 GUAC-674: Add comments for all static functions. 2014-05-09 18:56:16 -07:00
Michael Jumper
78d7c3e9ab GUAC-674: Inspect and re-inspect queue when combining. 2014-05-09 18:45:10 -07:00
Michael Jumper
7fc3fe1fdc GUAC-674: Queue and combine png updates. Lengthen RDP frame timeout to 10ms. 2014-05-09 15:39:00 -07:00
Michael Jumper
f1b75335ae GUAC-669: Remove include which was intended for debugging only. 2014-05-05 11:21:00 -07:00
Michael Jumper
014e245baa GUAC-669: Limit how high the fill pattern heuristic is allowed to increase update cost. 2014-05-05 11:17:38 -07:00
Michael Jumper
3554e88efa GUAC-667: Add masked paint operation. 2014-05-05 00:27:48 -07:00
Michael Jumper
1047c6192c GUAC-667: Implement clipping within common surface. 2014-05-04 23:39:02 -07:00
Michael Jumper
b2d74c92a2 GUAC-667: Remove unnecessary use of Cairo surface within common - just update buffer. 2014-05-04 16:35:09 -07:00
Michael Jumper
dbec5a5957 GUAC-666: Detect left-to-right fill pattern. 2014-05-03 21:11:42 -07:00
Michael Jumper
84fb0d8681 GUAC-665: Narrow cost estimation algorithm. 2014-05-01 19:22:47 -07:00
Michael Jumper
5b2f824097 GUAC-660: Do not send initial size unless layer is visible. Do not dispose unless layer was created. 2014-05-01 12:23:37 -07:00
Michael Jumper
25ab9a0134 GUAC-662: Implement resize for guac_common_surface. 2014-05-01 11:27:10 -07:00
Michael Jumper
d4aed54ca4 GUAC-662: Updates to backing surface should happen AFTER possible flushes. 2014-05-01 10:25:54 -07:00
Michael Jumper
25784acc6f GUAC-656: Remove old debug log. 2014-04-30 20:46:26 -07:00
Michael Jumper
8cc932391d GUAC-656: Implement transfer and copy. 2014-04-30 19:55:56 -07:00
Michael Jumper
c786854b63 GUAC-656: Implement rect, clean logic. 2014-04-30 19:09:38 -07:00
Michael Jumper
98a041336a GUAC-656: Implement flush. Implement draw. 2014-04-30 16:45:09 -07:00
Michael Jumper
db96b5f691 GUAC-656: Add logging message noting intent (actual surface not implemented). 2014-04-30 15:58:43 -07:00
Michael Jumper
4a4ced40ed GUAC-656: Remove surface resize - not needed for now. 2014-04-30 14:33:04 -07:00
Michael Jumper
25d8b47bd3 GUAC-656: Send size and dispose when alloc/free surface. 2014-04-30 11:59:43 -07:00
Michael Jumper
f6ccfd1211 GUAC-656: Add instructions to stubs. Match prototype of surface function to that of protocol function. 2014-04-29 19:15:21 -07:00
Michael Jumper
5d6e04171c GUAC-656: Implement alloc/free for surface. 2014-04-29 16:06:44 -07:00
Michael Jumper
3b541f70ee GUAC-656: Add simple surface and stubs. 2014-04-29 15:57:37 -07:00
Michael Jumper
479800c711 GUAC-608: Add missing Doxygen annotation. 2014-04-09 22:08:31 -07:00
Michael Jumper
c95e2fd056 GUAC-608: Make guac_iconv input const. 2014-04-08 16:33:43 -07:00
Michael Jumper
855e32c7a5 GUAC-608: Add common clipboard code. 2014-04-08 14:56:37 -07:00
Michael Jumper
da5404f612 GUAC-584: Add support for CP1252 and ISO-8859-1. 2014-04-02 14:08:41 -07:00
Michael Jumper
7cf5d02019 GUAC-584: Simplify copy logic. Store clipboard in static 256K buffer. Convert from UTF16 properly. 2014-04-01 18:41:55 -07:00
Michael Jumper
04ac42811f GUAC-584: Implement UTF16. Clean up tests. 2014-04-01 17:42:04 -07:00
Michael Jumper
ccc2526282 GUAC-584: Implement UTF8 read and write. Add basic identity test. 2014-04-01 16:46:29 -07:00
Michael Jumper
dfc18e14a4 GUAC-584: Add iconv-style function in common. Stub implementation and test. 2014-04-01 16:25:14 -07:00
Michael Jumper
67a647b88d Fix bug in list. 2014-03-02 10:39:36 -08:00
Michael Jumper
464c94501d Add string utility functions and unit tests. 2014-03-01 21:31:52 -08:00
Michael Jumper
93639cbf12 Move VNC pointers to common. 2014-01-06 16:18:54 -08:00
Michael Jumper
50bb5d132f Migrate to guac_* namespace. 2014-01-06 16:01:51 -08:00
Michael Jumper
da3bef2119 Add common utility sources. 2014-01-06 15:53:22 -08:00