diff mbox series

[v2,1/2] Replacing CONFIG_VNC_PNG with CONFIG_PNG

Message ID 20220322104953.27731-1-kshitij.suri@nutanix.com (mailing list archive)
State New, archived
Headers show
Series [v2,1/2] Replacing CONFIG_VNC_PNG with CONFIG_PNG | expand

Commit Message

Kshitij Suri March 22, 2022, 10:49 a.m. UTC
Libpng is only detected if VNC is enabled currently. This patch adds a
generalised png option in the meson build which is aimed to replace use of
CONFIG_VNC_PNG with CONFIG_PNG.

Signed-off-by: Kshitij Suri <kshitij.suri@nutanix.com>

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
---
 meson.build        |  9 ++++-----
 meson_options.txt  |  4 ++--
 ui/vnc-enc-tight.c | 18 +++++++++---------
 ui/vnc.c           |  4 ++--
 ui/vnc.h           |  2 +-
 5 files changed, 18 insertions(+), 19 deletions(-)

Comments

Kshitij Suri March 28, 2022, 9:49 a.m. UTC | #1
Hi, Hope this mail finds you well. I have updated the code as required 
and would be grateful if you could review and suggest changes that are 
needed to be implemented. In case no change is required, please do let 
me know the next steps for the same.

Regards,

Kshitij Suri

On 22/03/22 4:19 pm, Kshitij Suri wrote:
> Libpng is only detected if VNC is enabled currently. This patch adds a
> generalised png option in the meson build which is aimed to replace use of
> CONFIG_VNC_PNG with CONFIG_PNG.
>
> Signed-off-by: Kshitij Suri <kshitij.suri@nutanix.com>
>
> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
> ---
>   meson.build        |  9 ++++-----
>   meson_options.txt  |  4 ++--
>   ui/vnc-enc-tight.c | 18 +++++++++---------
>   ui/vnc.c           |  4 ++--
>   ui/vnc.h           |  2 +-
>   5 files changed, 18 insertions(+), 19 deletions(-)
>
> diff --git a/meson.build b/meson.build
> index 282e7c4650..ccb6840a49 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -1115,14 +1115,13 @@ if gtkx11.found()
>     x11 = dependency('x11', method: 'pkg-config', required: gtkx11.found(),
>                      kwargs: static_kwargs)
>   endif
> +png = dependency('libpng', required: get_option('png'),
> +                 method: 'pkg-config', kwargs: static_kwargs)
>   vnc = not_found
> -png = not_found
>   jpeg = not_found
>   sasl = not_found
>   if get_option('vnc').allowed() and have_system
>     vnc = declare_dependency() # dummy dependency
> -  png = dependency('libpng', required: get_option('vnc_png'),
> -                   method: 'pkg-config', kwargs: static_kwargs)
>     jpeg = dependency('libjpeg', required: get_option('vnc_jpeg'),
>                       method: 'pkg-config', kwargs: static_kwargs)
>     sasl = cc.find_library('sasl2', has_headers: ['sasl/sasl.h'],
> @@ -1554,9 +1553,9 @@ config_host_data.set('CONFIG_TPM', have_tpm)
>   config_host_data.set('CONFIG_USB_LIBUSB', libusb.found())
>   config_host_data.set('CONFIG_VDE', vde.found())
>   config_host_data.set('CONFIG_VHOST_USER_BLK_SERVER', have_vhost_user_blk_server)
> +config_host_data.set('CONFIG_PNG', png.found())
>   config_host_data.set('CONFIG_VNC', vnc.found())
>   config_host_data.set('CONFIG_VNC_JPEG', jpeg.found())
> -config_host_data.set('CONFIG_VNC_PNG', png.found())
>   config_host_data.set('CONFIG_VNC_SASL', sasl.found())
>   config_host_data.set('CONFIG_VIRTFS', have_virtfs)
>   config_host_data.set('CONFIG_VTE', vte.found())
> @@ -3638,11 +3637,11 @@ summary_info += {'curses support':    curses}
>   summary_info += {'virgl support':     virgl}
>   summary_info += {'curl support':      curl}
>   summary_info += {'Multipath support': mpathpersist}
> +summary_info += {'PNG support':       png}
>   summary_info += {'VNC support':       vnc}
>   if vnc.found()
>     summary_info += {'VNC SASL support':  sasl}
>     summary_info += {'VNC JPEG support':  jpeg}
> -  summary_info += {'VNC PNG support':   png}
>   endif
>   if targetos not in ['darwin', 'haiku', 'windows']
>     summary_info += {'OSS support':     oss}
> diff --git a/meson_options.txt b/meson_options.txt
> index 52b11cead4..d85734f8e6 100644
> --- a/meson_options.txt
> +++ b/meson_options.txt
> @@ -177,12 +177,12 @@ option('vde', type : 'feature', value : 'auto',
>          description: 'vde network backend support')
>   option('virglrenderer', type : 'feature', value : 'auto',
>          description: 'virgl rendering support')
> +option('png', type : 'feature', value : 'auto',
> +       description: 'PNG support with libpng')
>   option('vnc', type : 'feature', value : 'auto',
>          description: 'VNC server')
>   option('vnc_jpeg', type : 'feature', value : 'auto',
>          description: 'JPEG lossy compression for VNC server')
> -option('vnc_png', type : 'feature', value : 'auto',
> -       description: 'PNG compression for VNC server')
>   option('vnc_sasl', type : 'feature', value : 'auto',
>          description: 'SASL authentication for VNC server')
>   option('vte', type : 'feature', value : 'auto',
> diff --git a/ui/vnc-enc-tight.c b/ui/vnc-enc-tight.c
> index 7b86a4713d..e879cca7f5 100644
> --- a/ui/vnc-enc-tight.c
> +++ b/ui/vnc-enc-tight.c
> @@ -32,7 +32,7 @@
>      INT32 definitions between jmorecfg.h (included by jpeglib.h) and
>      Win32 basetsd.h (included by windows.h). */
>   
> -#ifdef CONFIG_VNC_PNG
> +#ifdef CONFIG_PNG
>   /* The following define is needed by pngconf.h. Otherwise it won't compile,
>      because setjmp.h was already included by qemu-common.h. */
>   #define PNG_SKIP_SETJMP_CHECK
> @@ -95,7 +95,7 @@ static const struct {
>   };
>   #endif
>   
> -#ifdef CONFIG_VNC_PNG
> +#ifdef CONFIG_PNG
>   static const struct {
>       int png_zlib_level, png_filters;
>   } tight_png_conf[] = {
> @@ -919,7 +919,7 @@ static int send_full_color_rect(VncState *vs, int x, int y, int w, int h)
>       int stream = 0;
>       ssize_t bytes;
>   
> -#ifdef CONFIG_VNC_PNG
> +#ifdef CONFIG_PNG
>       if (tight_can_send_png_rect(vs, w, h)) {
>           return send_png_rect(vs, x, y, w, h, NULL);
>       }
> @@ -966,7 +966,7 @@ static int send_mono_rect(VncState *vs, int x, int y,
>       int stream = 1;
>       int level = tight_conf[vs->tight->compression].mono_zlib_level;
>   
> -#ifdef CONFIG_VNC_PNG
> +#ifdef CONFIG_PNG
>       if (tight_can_send_png_rect(vs, w, h)) {
>           int ret;
>           int bpp = vs->client_pf.bytes_per_pixel * 8;
> @@ -1020,7 +1020,7 @@ static int send_mono_rect(VncState *vs, int x, int y,
>   struct palette_cb_priv {
>       VncState *vs;
>       uint8_t *header;
> -#ifdef CONFIG_VNC_PNG
> +#ifdef CONFIG_PNG
>       png_colorp png_palette;
>   #endif
>   };
> @@ -1082,7 +1082,7 @@ static int send_palette_rect(VncState *vs, int x, int y,
>       int colors;
>       ssize_t bytes;
>   
> -#ifdef CONFIG_VNC_PNG
> +#ifdef CONFIG_PNG
>       if (tight_can_send_png_rect(vs, w, h)) {
>           return send_png_rect(vs, x, y, w, h, palette);
>       }
> @@ -1233,7 +1233,7 @@ static int send_jpeg_rect(VncState *vs, int x, int y, int w, int h, int quality)
>   /*
>    * PNG compression stuff.
>    */
> -#ifdef CONFIG_VNC_PNG
> +#ifdef CONFIG_PNG
>   static void write_png_palette(int idx, uint32_t pix, void *opaque)
>   {
>       struct palette_cb_priv *priv = opaque;
> @@ -1379,7 +1379,7 @@ static int send_png_rect(VncState *vs, int x, int y, int w, int h,
>       buffer_reset(&vs->tight->png);
>       return 1;
>   }
> -#endif /* CONFIG_VNC_PNG */
> +#endif /* CONFIG_PNG */
>   
>   static void vnc_tight_start(VncState *vs)
>   {
> @@ -1706,7 +1706,7 @@ void vnc_tight_clear(VncState *vs)
>   #ifdef CONFIG_VNC_JPEG
>       buffer_free(&vs->tight->jpeg);
>   #endif
> -#ifdef CONFIG_VNC_PNG
> +#ifdef CONFIG_PNG
>       buffer_free(&vs->tight->png);
>   #endif
>   }
> diff --git a/ui/vnc.c b/ui/vnc.c
> index 310a873c21..8376291b47 100644
> --- a/ui/vnc.c
> +++ b/ui/vnc.c
> @@ -2165,7 +2165,7 @@ static void set_encodings(VncState *vs, int32_t *encodings, size_t n_encodings)
>               vs->features |= VNC_FEATURE_TIGHT_MASK;
>               vs->vnc_encoding = enc;
>               break;
> -#ifdef CONFIG_VNC_PNG
> +#ifdef CONFIG_PNG
>           case VNC_ENCODING_TIGHT_PNG:
>               vs->features |= VNC_FEATURE_TIGHT_PNG_MASK;
>               vs->vnc_encoding = enc;
> @@ -3256,7 +3256,7 @@ static void vnc_connect(VncDisplay *vd, QIOChannelSocket *sioc,
>   #ifdef CONFIG_VNC_JPEG
>       buffer_init(&vs->tight->jpeg,     "vnc-tight-jpeg/%p", sioc);
>   #endif
> -#ifdef CONFIG_VNC_PNG
> +#ifdef CONFIG_PNG
>       buffer_init(&vs->tight->png,      "vnc-tight-png/%p", sioc);
>   #endif
>       buffer_init(&vs->zlib.zlib,      "vnc-zlib/%p", sioc);
> diff --git a/ui/vnc.h b/ui/vnc.h
> index a7149831f9..a60fb13115 100644
> --- a/ui/vnc.h
> +++ b/ui/vnc.h
> @@ -201,7 +201,7 @@ typedef struct VncTight {
>   #ifdef CONFIG_VNC_JPEG
>       Buffer jpeg;
>   #endif
> -#ifdef CONFIG_VNC_PNG
> +#ifdef CONFIG_PNG
>       Buffer png;
>   #endif
>       int levels[4];
diff mbox series

Patch

diff --git a/meson.build b/meson.build
index 282e7c4650..ccb6840a49 100644
--- a/meson.build
+++ b/meson.build
@@ -1115,14 +1115,13 @@  if gtkx11.found()
   x11 = dependency('x11', method: 'pkg-config', required: gtkx11.found(),
                    kwargs: static_kwargs)
 endif
+png = dependency('libpng', required: get_option('png'),
+                 method: 'pkg-config', kwargs: static_kwargs)
 vnc = not_found
-png = not_found
 jpeg = not_found
 sasl = not_found
 if get_option('vnc').allowed() and have_system
   vnc = declare_dependency() # dummy dependency
-  png = dependency('libpng', required: get_option('vnc_png'),
-                   method: 'pkg-config', kwargs: static_kwargs)
   jpeg = dependency('libjpeg', required: get_option('vnc_jpeg'),
                     method: 'pkg-config', kwargs: static_kwargs)
   sasl = cc.find_library('sasl2', has_headers: ['sasl/sasl.h'],
@@ -1554,9 +1553,9 @@  config_host_data.set('CONFIG_TPM', have_tpm)
 config_host_data.set('CONFIG_USB_LIBUSB', libusb.found())
 config_host_data.set('CONFIG_VDE', vde.found())
 config_host_data.set('CONFIG_VHOST_USER_BLK_SERVER', have_vhost_user_blk_server)
+config_host_data.set('CONFIG_PNG', png.found())
 config_host_data.set('CONFIG_VNC', vnc.found())
 config_host_data.set('CONFIG_VNC_JPEG', jpeg.found())
-config_host_data.set('CONFIG_VNC_PNG', png.found())
 config_host_data.set('CONFIG_VNC_SASL', sasl.found())
 config_host_data.set('CONFIG_VIRTFS', have_virtfs)
 config_host_data.set('CONFIG_VTE', vte.found())
@@ -3638,11 +3637,11 @@  summary_info += {'curses support':    curses}
 summary_info += {'virgl support':     virgl}
 summary_info += {'curl support':      curl}
 summary_info += {'Multipath support': mpathpersist}
+summary_info += {'PNG support':       png}
 summary_info += {'VNC support':       vnc}
 if vnc.found()
   summary_info += {'VNC SASL support':  sasl}
   summary_info += {'VNC JPEG support':  jpeg}
-  summary_info += {'VNC PNG support':   png}
 endif
 if targetos not in ['darwin', 'haiku', 'windows']
   summary_info += {'OSS support':     oss}
diff --git a/meson_options.txt b/meson_options.txt
index 52b11cead4..d85734f8e6 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -177,12 +177,12 @@  option('vde', type : 'feature', value : 'auto',
        description: 'vde network backend support')
 option('virglrenderer', type : 'feature', value : 'auto',
        description: 'virgl rendering support')
+option('png', type : 'feature', value : 'auto',
+       description: 'PNG support with libpng')
 option('vnc', type : 'feature', value : 'auto',
        description: 'VNC server')
 option('vnc_jpeg', type : 'feature', value : 'auto',
        description: 'JPEG lossy compression for VNC server')
-option('vnc_png', type : 'feature', value : 'auto',
-       description: 'PNG compression for VNC server')
 option('vnc_sasl', type : 'feature', value : 'auto',
        description: 'SASL authentication for VNC server')
 option('vte', type : 'feature', value : 'auto',
diff --git a/ui/vnc-enc-tight.c b/ui/vnc-enc-tight.c
index 7b86a4713d..e879cca7f5 100644
--- a/ui/vnc-enc-tight.c
+++ b/ui/vnc-enc-tight.c
@@ -32,7 +32,7 @@ 
    INT32 definitions between jmorecfg.h (included by jpeglib.h) and
    Win32 basetsd.h (included by windows.h). */
 
-#ifdef CONFIG_VNC_PNG
+#ifdef CONFIG_PNG
 /* The following define is needed by pngconf.h. Otherwise it won't compile,
    because setjmp.h was already included by qemu-common.h. */
 #define PNG_SKIP_SETJMP_CHECK
@@ -95,7 +95,7 @@  static const struct {
 };
 #endif
 
-#ifdef CONFIG_VNC_PNG
+#ifdef CONFIG_PNG
 static const struct {
     int png_zlib_level, png_filters;
 } tight_png_conf[] = {
@@ -919,7 +919,7 @@  static int send_full_color_rect(VncState *vs, int x, int y, int w, int h)
     int stream = 0;
     ssize_t bytes;
 
-#ifdef CONFIG_VNC_PNG
+#ifdef CONFIG_PNG
     if (tight_can_send_png_rect(vs, w, h)) {
         return send_png_rect(vs, x, y, w, h, NULL);
     }
@@ -966,7 +966,7 @@  static int send_mono_rect(VncState *vs, int x, int y,
     int stream = 1;
     int level = tight_conf[vs->tight->compression].mono_zlib_level;
 
-#ifdef CONFIG_VNC_PNG
+#ifdef CONFIG_PNG
     if (tight_can_send_png_rect(vs, w, h)) {
         int ret;
         int bpp = vs->client_pf.bytes_per_pixel * 8;
@@ -1020,7 +1020,7 @@  static int send_mono_rect(VncState *vs, int x, int y,
 struct palette_cb_priv {
     VncState *vs;
     uint8_t *header;
-#ifdef CONFIG_VNC_PNG
+#ifdef CONFIG_PNG
     png_colorp png_palette;
 #endif
 };
@@ -1082,7 +1082,7 @@  static int send_palette_rect(VncState *vs, int x, int y,
     int colors;
     ssize_t bytes;
 
-#ifdef CONFIG_VNC_PNG
+#ifdef CONFIG_PNG
     if (tight_can_send_png_rect(vs, w, h)) {
         return send_png_rect(vs, x, y, w, h, palette);
     }
@@ -1233,7 +1233,7 @@  static int send_jpeg_rect(VncState *vs, int x, int y, int w, int h, int quality)
 /*
  * PNG compression stuff.
  */
-#ifdef CONFIG_VNC_PNG
+#ifdef CONFIG_PNG
 static void write_png_palette(int idx, uint32_t pix, void *opaque)
 {
     struct palette_cb_priv *priv = opaque;
@@ -1379,7 +1379,7 @@  static int send_png_rect(VncState *vs, int x, int y, int w, int h,
     buffer_reset(&vs->tight->png);
     return 1;
 }
-#endif /* CONFIG_VNC_PNG */
+#endif /* CONFIG_PNG */
 
 static void vnc_tight_start(VncState *vs)
 {
@@ -1706,7 +1706,7 @@  void vnc_tight_clear(VncState *vs)
 #ifdef CONFIG_VNC_JPEG
     buffer_free(&vs->tight->jpeg);
 #endif
-#ifdef CONFIG_VNC_PNG
+#ifdef CONFIG_PNG
     buffer_free(&vs->tight->png);
 #endif
 }
diff --git a/ui/vnc.c b/ui/vnc.c
index 310a873c21..8376291b47 100644
--- a/ui/vnc.c
+++ b/ui/vnc.c
@@ -2165,7 +2165,7 @@  static void set_encodings(VncState *vs, int32_t *encodings, size_t n_encodings)
             vs->features |= VNC_FEATURE_TIGHT_MASK;
             vs->vnc_encoding = enc;
             break;
-#ifdef CONFIG_VNC_PNG
+#ifdef CONFIG_PNG
         case VNC_ENCODING_TIGHT_PNG:
             vs->features |= VNC_FEATURE_TIGHT_PNG_MASK;
             vs->vnc_encoding = enc;
@@ -3256,7 +3256,7 @@  static void vnc_connect(VncDisplay *vd, QIOChannelSocket *sioc,
 #ifdef CONFIG_VNC_JPEG
     buffer_init(&vs->tight->jpeg,     "vnc-tight-jpeg/%p", sioc);
 #endif
-#ifdef CONFIG_VNC_PNG
+#ifdef CONFIG_PNG
     buffer_init(&vs->tight->png,      "vnc-tight-png/%p", sioc);
 #endif
     buffer_init(&vs->zlib.zlib,      "vnc-zlib/%p", sioc);
diff --git a/ui/vnc.h b/ui/vnc.h
index a7149831f9..a60fb13115 100644
--- a/ui/vnc.h
+++ b/ui/vnc.h
@@ -201,7 +201,7 @@  typedef struct VncTight {
 #ifdef CONFIG_VNC_JPEG
     Buffer jpeg;
 #endif
-#ifdef CONFIG_VNC_PNG
+#ifdef CONFIG_PNG
     Buffer png;
 #endif
     int levels[4];