[Spice-devel] [PATCH 11/19] server: move enum and struct away from red_common

Frediano Ziglio fziglio at redhat.com
Wed Nov 25 07:27:35 PST 2015


From: Marc-André Lureau <marcandre.lureau at gmail.com>

---
 server/dcc.c            | 18 ++++++++++++++++--
 server/red_common.h     | 14 --------------
 server/red_dispatcher.c | 15 +++++++++++++--
 server/reds.c           |  2 +-
 server/stream.h         |  7 +++++++
 5 files changed, 37 insertions(+), 19 deletions(-)

diff --git a/server/dcc.c b/server/dcc.c
index 6c089da..ffe5b34 100644
--- a/server/dcc.c
+++ b/server/dcc.c
@@ -616,6 +616,20 @@ static GlzDrawableInstanceItem *add_glz_drawable_instance(RedGlzDrawable *glz_dr
     return ret;
 }
 
+static const LzImageType bitmap_fmt_to_lz_image_type[] = {
+    LZ_IMAGE_TYPE_INVALID,
+    LZ_IMAGE_TYPE_PLT1_LE,
+    LZ_IMAGE_TYPE_PLT1_BE,
+    LZ_IMAGE_TYPE_PLT4_LE,
+    LZ_IMAGE_TYPE_PLT4_BE,
+    LZ_IMAGE_TYPE_PLT8,
+    LZ_IMAGE_TYPE_RGB16,
+    LZ_IMAGE_TYPE_RGB24,
+    LZ_IMAGE_TYPE_RGB32,
+    LZ_IMAGE_TYPE_RGBA,
+    LZ_IMAGE_TYPE_A8
+};
+
 #define MIN_GLZ_SIZE_FOR_ZLIB 100
 
 int dcc_compress_image_glz(DisplayChannelClient *dcc,
@@ -629,7 +643,7 @@ int dcc_compress_image_glz(DisplayChannelClient *dcc,
     spice_assert(bitmap_fmt_is_rgb(src->format));
     GlzData *glz_data = &dcc->glz_data;
     ZlibData *zlib_data;
-    LzImageType type = MAP_BITMAP_FMT_TO_LZ_IMAGE_TYPE[src->format];
+    LzImageType type = bitmap_fmt_to_lz_image_type[src->format];
     RedGlzDrawable *glz_drawable;
     GlzDrawableInstanceItem *glz_drawable_instance;
     int glz_size;
@@ -710,7 +724,7 @@ int dcc_compress_image_lz(DisplayChannelClient *dcc,
 {
     LzData *lz_data = &dcc->lz_data;
     LzContext *lz = dcc->lz;
-    LzImageType type = MAP_BITMAP_FMT_TO_LZ_IMAGE_TYPE[src->format];
+    LzImageType type = bitmap_fmt_to_lz_image_type[src->format];
     int size;            // size of the compressed data
 
 #ifdef COMPRESS_STAT
diff --git a/server/red_common.h b/server/red_common.h
index 04d4c02..7f1677e 100644
--- a/server/red_common.h
+++ b/server/red_common.h
@@ -30,18 +30,4 @@
 
 #define SPICE_GNUC_VISIBLE __attribute__ ((visibility ("default")))
 
-static const LzImageType MAP_BITMAP_FMT_TO_LZ_IMAGE_TYPE[] = {
-    LZ_IMAGE_TYPE_INVALID,
-    LZ_IMAGE_TYPE_PLT1_LE,
-    LZ_IMAGE_TYPE_PLT1_BE,
-    LZ_IMAGE_TYPE_PLT4_LE,
-    LZ_IMAGE_TYPE_PLT4_BE,
-    LZ_IMAGE_TYPE_PLT8,
-    LZ_IMAGE_TYPE_RGB16,
-    LZ_IMAGE_TYPE_RGB24,
-    LZ_IMAGE_TYPE_RGB32,
-    LZ_IMAGE_TYPE_RGBA,
-    LZ_IMAGE_TYPE_A8
-};
-
 #endif
diff --git a/server/red_dispatcher.c b/server/red_dispatcher.c
index a7825f5..952add9 100644
--- a/server/red_dispatcher.c
+++ b/server/red_dispatcher.c
@@ -36,6 +36,7 @@
 #include "reds.h"
 #include "dispatcher.h"
 #include "red_parse_qxl.h"
+#include "stream.h"
 
 #include "red_dispatcher.h"
 
@@ -702,9 +703,19 @@ static void qxl_worker_loadvm_commands(QXLWorker *qxl_worker,
     red_dispatcher_loadvm_commands((RedDispatcher*)qxl_worker, ext, count);
 }
 
-static inline int calc_compression_level(void)
+void red_dispatcher_set_mm_time(uint32_t mm_time)
 {
-    spice_assert(streaming_video != SPICE_STREAM_VIDEO_INVALID);
+    RedDispatcher *now = dispatchers;
+    while (now) {
+        now->qxl->st->qif->set_mm_time(now->qxl, mm_time);
+        now = now->next;
+    }
+}
+
+static int calc_compression_level(void)
+{
+    spice_return_val_if_fail(streaming_video != SPICE_STREAM_VIDEO_INVALID, -1);
+
     if ((streaming_video != SPICE_STREAM_VIDEO_OFF) ||
         (image_compression != SPICE_IMAGE_COMPRESSION_QUIC)) {
         return 0;
diff --git a/server/reds.c b/server/reds.c
index 8b3c3cb..bdea7e1 100644
--- a/server/reds.c
+++ b/server/reds.c
@@ -55,10 +55,10 @@
 
 #include "spice.h"
 #include "reds.h"
+#include "stream.h"
 #include "agent-msg-filter.h"
 #include "inputs_channel.h"
 #include "main_channel.h"
-#include "red_common.h"
 #include "red_dispatcher.h"
 #include "main_dispatcher.h"
 #include "snd_worker.h"
diff --git a/server/stream.h b/server/stream.h
index 7c589e4..30876f1 100644
--- a/server/stream.h
+++ b/server/stream.h
@@ -57,6 +57,13 @@ enum {
     STREAM_FRAME_CONTAINER,
 };
 
+enum {
+    STREAM_VIDEO_INVALID,
+    STREAM_VIDEO_OFF,
+    STREAM_VIDEO_ALL,
+    STREAM_VIDEO_FILTER
+};
+
 #define STREAM_STATS
 #ifdef STREAM_STATS
 typedef struct StreamStats {
-- 
2.4.3



More information about the Spice-devel mailing list