[vlc-devel] [PATCH] Support for newest freerdp snapshot

Paweł Stankowski aambitny at gmail.com
Fri Nov 21 01:55:46 CET 2014


Sorry, my previous patch did not contain removal of two functions that
were doing nothing and were thrown out. As previous patch is already
applied, I send a correction.

WARNING: I was trying to test --enable-rdp switch with older freerdp
version and found out that freerdp/version.h is currently always
included - that behavior breaks all versions older than 1.2.0. There
was an intention to overcome that issue by defining
FREERDP_INTERFACE_VERSION, but I did not find any trace how it was
defined. Maybe FREERDP_VERSION_* macros could be defined by configure
script in config.h file? "pkg-config --modversion freerdp" returns
version as string.

Currently, only 1.2.0 version of freerdp works correctly. Could you
fix previous versions or correct configure.ac to require freerdp in
proper version?

[1] https://trac.videolan.org/vlc/ticket/10832

diff --git a/modules/access/rdp.c b/modules/access/rdp.c
index 1dca8ae..f785894 100644
--- a/modules/access/rdp.c
+++ b/modules/access/rdp.c
@@ -250,8 +250,7 @@ static bool postConnectHandler( freerdp *p_instance )

     gdi_init( p_instance,
                 CLRBUF_16BPP |
-#if defined(FREERDP_VERSION_MAJOR) && defined(FREERDP_VERSION_MINOR) && \
-    !(FREERDP_VERSION_MAJOR > 1 || (FREERDP_VERSION_MAJOR == 1 &&
FREERDP_VERSION_MINOR >= 2))
+#if !(FREERDP_VERSION_MAJOR > 1 || (FREERDP_VERSION_MAJOR == 1 &&
FREERDP_VERSION_MINOR >= 2))
                 CLRBUF_24BPP |
 #endif
                 CLRBUF_32BPP, NULL );
@@ -428,7 +427,9 @@ static int Open( vlc_object_t *p_this )
     if ( p_sys->f_fps <= 0 ) p_sys->f_fps = 1.0;
     p_sys->i_frame_interval = 1000000 / p_sys->f_fps;

+#if (FREERDP_VERSION_MAJOR == 1 && FREERDP_VERSION_MINOR < 2)
     freerdp_channels_global_init();
+#endif

     p_sys->p_instance = freerdp_new();
     if ( !p_sys->p_instance )
@@ -504,7 +505,9 @@ static void Close( vlc_object_t *p_this )

     freerdp_disconnect( p_sys->p_instance );
     freerdp_free( p_sys->p_instance );
+#if (FREERDP_VERSION_MAJOR == 1 && FREERDP_VERSION_MINOR < 2)
     freerdp_channels_global_uninit();
+#endif

     if ( p_sys->p_block )
         block_Release( p_sys->p_block );

2014-11-19 2:03 GMT+01:00 Paweł Stankowski <aambitny at gmail.com>:
> Support for 24bpp was removed from freerdp repository in commit
> 02c1bf14ce1f3ad2199a349066548977916d9c06.
>
> diff --git a/modules/access/rdp.c b/modules/access/rdp.c
> index c48ae99..1dca8ae 100644
> --- a/modules/access/rdp.c
> +++ b/modules/access/rdp.c
> @@ -248,7 +248,13 @@ static bool postConnectHandler( freerdp *p_instance )
>      p_instance->update->BeginPaint = beginPaintHandler;
>      p_instance->update->EndPaint = endPaintHandler;
>
> -    gdi_init( p_instance, CLRBUF_16BPP | CLRBUF_24BPP | CLRBUF_32BPP, NULL );
> +    gdi_init( p_instance,
> +                CLRBUF_16BPP |
> +#if defined(FREERDP_VERSION_MAJOR) && defined(FREERDP_VERSION_MINOR) && \
> +    !(FREERDP_VERSION_MAJOR > 1 || (FREERDP_VERSION_MAJOR == 1 &&
> FREERDP_VERSION_MINOR >= 2))
> +                CLRBUF_24BPP |
> +#endif
> +                CLRBUF_32BPP, NULL );
>
>      desktopResizeHandler( p_instance->context );
>      return true;



More information about the vlc-devel mailing list