diff options
author | Jay Sorg <jay.sorg@gmail.com> | 2015-02-08 22:41:27 +0300 |
---|---|---|
committer | Jay Sorg <jay.sorg@gmail.com> | 2015-02-08 22:41:27 +0300 |
commit | bc87e36e4608dce6e435d0069b08e8079513839c (patch) | |
tree | 84bad844a40df4841177a54696149bd759902af0 | |
parent | b76525c18c9c9aac6a4eb6f62ad93c1b8effe89e (diff) |
turn on frame acks for rfx and jpeg
-rw-r--r-- | client/X11/xf_gdi.c | 17 | ||||
-rw-r--r-- | client/X11/xfreerdp.h | 1 | ||||
-rw-r--r-- | libfreerdp-utils/args.c | 3 |
3 files changed, 20 insertions, 1 deletions
diff --git a/client/X11/xf_gdi.c b/client/X11/xf_gdi.c index a2efe64..90f2c61 100644 --- a/client/X11/xf_gdi.c +++ b/client/X11/xf_gdi.c @@ -36,6 +36,12 @@ #include "xf_gdi.h" +#define LLOG_LEVEL 1 +#define LLOGLN(_level, _args) \ + do { if (_level < LLOG_LEVEL) { printf _args ; printf("\n"); } } while (0) +#define LHEXDUMP(_level, _args) \ + do { if (_level < LLOG_LEVEL) { freerdp_hexdump _args ; } } while (0) + static const uint8 xf_rop2_table[] = { 0, @@ -638,7 +644,14 @@ void xf_gdi_mem3blt(rdpContext* context, MEM3BLT_ORDER* mem3blt) void xf_gdi_surface_frame_marker(rdpContext* context, SURFACE_FRAME_MARKER* surface_frame_marker) { + xfInfo* xfi; + LLOGLN(10, ("xf_gdi_surface_frame_marker: action %d", surface_frame_marker->frameAction)); + xfi = ((xfContext*) context)->xfi; + if (surface_frame_marker->frameAction == 0) /* begin */ + { + xfi->frameId = surface_frame_marker->frameId; + } } void xf_gdi_surface_bits(rdpContext* context, SURFACE_BITS_COMMAND* surface_bits_command) @@ -824,8 +837,12 @@ void xf_gdi_surface_bits(rdpContext* context, SURFACE_BITS_COMMAND* surface_bits { printf("Unsupported codecID %d\n", surface_bits_command->codecID); } + + LLOGLN(10, ("xf_gdi_surface_bits: sending frame ack")); + xfi->instance->SendFrameAck(xfi->instance, xfi->frameId); } + void xf_gdi_register_update_callbacks(rdpUpdate* update) { rdpPrimaryUpdate* primary = update->primary; diff --git a/client/X11/xfreerdp.h b/client/X11/xfreerdp.h index 8a20f4e..cfb695a 100644 --- a/client/X11/xfreerdp.h +++ b/client/X11/xfreerdp.h @@ -180,6 +180,7 @@ struct xf_info struct shm_info_t* shm_info; int skip_bs; + int frameId; }; void xf_toggle_fullscreen(xfInfo* xfi); diff --git a/libfreerdp-utils/args.c b/libfreerdp-utils/args.c index 5feed42..7f010eb 100644 --- a/libfreerdp-utils/args.c +++ b/libfreerdp-utils/args.c @@ -412,6 +412,7 @@ int freerdp_parse_args(rdpSettings* settings, int argc, char** argv, { settings->jpeg_codec = true; settings->jpeg_quality = 75; + settings->frame_acknowledge = true; } else if (strcmp("--jpegex", argv[index]) == 0) { @@ -436,7 +437,7 @@ int freerdp_parse_args(rdpSettings* settings, int argc, char** argv, settings->rfx_codec = true; settings->fastpath_output = true; settings->color_depth = 32; - settings->frame_acknowledge = false; + settings->frame_acknowledge = true; settings->performance_flags = PERF_FLAG_NONE; settings->large_pointer = true; } |