Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/neutrinolabs/NeutrinoRDP.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJay Sorg <jay.sorg@gmail.com>2015-02-08 22:41:27 +0300
committerJay Sorg <jay.sorg@gmail.com>2015-02-08 22:41:27 +0300
commitbc87e36e4608dce6e435d0069b08e8079513839c (patch)
tree84bad844a40df4841177a54696149bd759902af0
parentb76525c18c9c9aac6a4eb6f62ad93c1b8effe89e (diff)
turn on frame acks for rfx and jpeg
-rw-r--r--client/X11/xf_gdi.c17
-rw-r--r--client/X11/xfreerdp.h1
-rw-r--r--libfreerdp-utils/args.c3
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;
}