diff options
author | Emilio Pozuelo Monfort <pochu@debian.org> | 2017-01-20 11:53:34 +0000 |
---|---|---|
committer | Daniel Stone <daniels@collabora.com> | 2017-01-20 11:53:34 +0000 |
commit | beec77e9b9e20d8a4ca1475c791002d29c0620cd (patch) | |
tree | 3aee4051cb455d100ec22eb1811c8e1044d39e62 | |
parent | c8b46459d7473024227b5eedcef11b5d57113fe8 (diff) |
compositor-rdp: Fix build with freerdp2
Based on a patch from John Moser <john.r.moser@gmail.com>
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=850658
Signed-off-by: Emilio Pozuelo Monfort <pochu@debian.org>
Reviewed-by: Daniel Stone <daniels@collabora.com>
-rw-r--r-- | libweston/compositor-rdp.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/libweston/compositor-rdp.c b/libweston/compositor-rdp.c index 4674612f..e6dad99f 100644 --- a/libweston/compositor-rdp.c +++ b/libweston/compositor-rdp.c @@ -85,6 +85,15 @@ #define DEFAULT_AXIS_STEP_DISTANCE 10 #define RDP_MODE_FREQ 60 * 1000 +#if FREERDP_VERSION_MAJOR >= 2 && defined(PIXEL_FORMAT_BGRA32) && !defined(RDP_PIXEL_FORMAT_B8G8R8A8) + /* The RDP API is truly wonderful: the pixel format definition changed + * from BGRA32 to B8G8R8A8, but some versions ship with a definition of + * PIXEL_FORMAT_BGRA32 which doesn't actually build. Try really, really, + * hard to find one which does. */ +# define DEFAULT_PIXEL_FORMAT PIXEL_FORMAT_BGRA32 +#else +# define DEFAULT_PIXEL_FORMAT RDP_PIXEL_FORMAT_B8G8R8A8 +#endif struct rdp_output; @@ -664,13 +673,13 @@ rdp_peer_context_new(freerdp_peer* client, RdpPeerContext* context) context->rfx_context->mode = RLGR3; context->rfx_context->width = client->settings->DesktopWidth; context->rfx_context->height = client->settings->DesktopHeight; - rfx_context_set_pixel_format(context->rfx_context, RDP_PIXEL_FORMAT_B8G8R8A8); + rfx_context_set_pixel_format(context->rfx_context, DEFAULT_PIXEL_FORMAT); context->nsc_context = nsc_context_new(); if (!context->nsc_context) goto out_error_nsc; - nsc_context_set_pixel_format(context->nsc_context, RDP_PIXEL_FORMAT_B8G8R8A8); + nsc_context_set_pixel_format(context->nsc_context, DEFAULT_PIXEL_FORMAT); context->encode_stream = Stream_New(NULL, 65536); if (!context->encode_stream) |