[Spice-devel] [PATCH 09/10] worker: use more RED_CHANNEL_CLIENT

Frediano Ziglio fziglio at redhat.com
Thu Nov 5 05:23:12 PST 2015


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

---
 server/red_worker.c | 30 +++++++++++++++---------------
 1 file changed, 15 insertions(+), 15 deletions(-)

diff --git a/server/red_worker.c b/server/red_worker.c
index 584c553..3b90356 100644
--- a/server/red_worker.c
+++ b/server/red_worker.c
@@ -793,7 +793,7 @@ static inline void red_pipes_remove_drawable(Drawable *drawable)
     RING_FOREACH_SAFE(item, next, &drawable->pipes) {
         dpi = SPICE_CONTAINEROF(item, DrawablePipeItem, base);
         if (pipe_item_is_linked(&dpi->dpi_pipe_item)) {
-            red_channel_client_pipe_remove_and_release(&dpi->dcc->common.base,
+            red_channel_client_pipe_remove_and_release(RED_CHANNEL_CLIENT(dpi->dcc),
                                                        &dpi->dpi_pipe_item);
         }
     }
@@ -1585,7 +1585,7 @@ static inline void red_detach_stream(RedWorker *worker, Stream *stream, int deta
 static StreamClipItem *__new_stream_clip(DisplayChannelClient* dcc, StreamAgent *agent)
 {
     StreamClipItem *item = spice_new(StreamClipItem, 1);
-    red_channel_pipe_item_init(dcc->common.base.channel,
+    red_channel_pipe_item_init(RED_CHANNEL_CLIENT(dcc)->channel,
                     (PipeItem *)item, PIPE_ITEM_TYPE_STREAM_CLIP);
 
     item->stream_agent = agent;
@@ -2000,7 +2000,7 @@ static uint64_t red_stream_get_initial_bit_rate(DisplayChannelClient *dcc,
         MainChannelClient *mcc;
         uint64_t net_test_bit_rate;
 
-        mcc = red_client_get_main(dcc->common.base.client);
+        mcc = red_client_get_main(RED_CHANNEL_CLIENT(dcc)->client);
         net_test_bit_rate = main_channel_client_is_network_info_initialized(mcc) ?
                                 main_channel_client_get_bitrate_per_sec(mcc) :
                                 0;
@@ -2031,9 +2031,9 @@ static uint32_t red_stream_mjpeg_encoder_get_roundtrip(void *opaque)
     int roundtrip;
 
     spice_assert(agent);
-    roundtrip = red_channel_client_get_roundtrip_ms(&agent->dcc->common.base);
+    roundtrip = red_channel_client_get_roundtrip_ms(RED_CHANNEL_CLIENT(agent->dcc));
     if (roundtrip < 0) {
-        MainChannelClient *mcc = red_client_get_main(agent->dcc->common.base.client);
+        MainChannelClient *mcc = red_client_get_main(RED_CHANNEL_CLIENT(agent->dcc)->client);
 
         /*
          * the main channel client roundtrip might not have been
@@ -2100,7 +2100,7 @@ static void red_stream_update_client_playback_latency(void *opaque, uint32_t del
          agent->dcc->streams_max_latency = delay_ms;
     }
     spice_debug("resetting client latency: %u", agent->dcc->streams_max_latency);
-    main_dispatcher_set_mm_time_latency(agent->dcc->common.base.client, agent->dcc->streams_max_latency);
+    main_dispatcher_set_mm_time_latency(RED_CHANNEL_CLIENT(agent->dcc)->client, agent->dcc->streams_max_latency);
 }
 
 static void red_display_create_stream(DisplayChannelClient *dcc, Stream *stream)
@@ -2139,7 +2139,7 @@ static void red_display_create_stream(DisplayChannelClient *dcc, Stream *stream)
         StreamActivateReportItem *report_pipe_item = spice_malloc0(sizeof(*report_pipe_item));
 
         agent->report_id = rand();
-        red_channel_pipe_item_init(dcc->common.base.channel, &report_pipe_item->pipe_item,
+        red_channel_pipe_item_init(RED_CHANNEL_CLIENT(dcc)->channel, &report_pipe_item->pipe_item,
                                    PIPE_ITEM_TYPE_STREAM_ACTIVATE_REPORT);
         report_pipe_item->stream_id = get_stream_id(dcc->common.worker, stream);
         red_channel_client_pipe_add(RED_CHANNEL_CLIENT(dcc), &report_pipe_item->pipe_item);
@@ -2207,7 +2207,7 @@ static void red_display_client_init_streams(DisplayChannelClient *dcc)
 {
     int i;
     RedWorker *worker = dcc->common.worker;
-    RedChannel *channel = dcc->common.base.channel;
+    RedChannel *channel = RED_CHANNEL_CLIENT(dcc)->channel;
 
     for (i = 0; i < NUM_STREAMS; i++) {
         StreamAgent *agent = &dcc->stream_agents[i];
@@ -8036,7 +8036,7 @@ static inline void red_create_surface_item(DisplayChannelClient *dcc, int surfac
         return;
     }
     surface = &worker->surfaces[surface_id];
-    create = get_surface_create_item(dcc->common.base.channel,
+    create = get_surface_create_item(RED_CHANNEL_CLIENT(dcc)->channel,
             surface_id, surface->context.width, surface->context.height,
                                      surface->context.format, flags);
     dcc->surface_client_created[surface_id] = TRUE;
@@ -8335,7 +8335,7 @@ static GlzSharedDictionary *red_create_glz_dictionary(DisplayChannelClient *dcc,
         spice_critical("failed creating lz dictionary");
         return NULL;
     }
-    return _red_create_glz_dictionary(dcc->common.base.client, id, glz_dict);
+    return _red_create_glz_dictionary(RED_CHANNEL_CLIENT(dcc)->client, id, glz_dict);
 }
 
 static GlzSharedDictionary *red_create_restored_glz_dictionary(DisplayChannelClient *dcc,
@@ -8348,7 +8348,7 @@ static GlzSharedDictionary *red_create_restored_glz_dictionary(DisplayChannelCli
         spice_critical("failed creating lz dictionary");
         return NULL;
     }
-    return _red_create_glz_dictionary(dcc->common.base.client, id, glz_dict);
+    return _red_create_glz_dictionary(RED_CHANNEL_CLIENT(dcc)->client, id, glz_dict);
 }
 
 static GlzSharedDictionary *red_get_glz_dictionary(DisplayChannelClient *dcc,
@@ -8358,7 +8358,7 @@ static GlzSharedDictionary *red_get_glz_dictionary(DisplayChannelClient *dcc,
 
     pthread_mutex_lock(&glz_dictionary_list_lock);
 
-    shared_dict = _red_find_glz_dictionary(dcc->common.base.client, id);
+    shared_dict = _red_find_glz_dictionary(RED_CHANNEL_CLIENT(dcc)->client, id);
 
     if (!shared_dict) {
         shared_dict = red_create_glz_dictionary(dcc, id, window_size);
@@ -8378,7 +8378,7 @@ static GlzSharedDictionary *red_restore_glz_dictionary(DisplayChannelClient *dcc
 
     pthread_mutex_lock(&glz_dictionary_list_lock);
 
-    shared_dict = _red_find_glz_dictionary(dcc->common.base.client, id);
+    shared_dict = _red_find_glz_dictionary(RED_CHANNEL_CLIENT(dcc)->client, id);
 
     if (!shared_dict) {
         shared_dict = red_create_restored_glz_dictionary(dcc, id, restore_data);
@@ -8428,7 +8428,7 @@ static void red_release_glz(DisplayChannelClient *dcc)
 static int display_channel_init_cache(DisplayChannelClient *dcc, SpiceMsgcDisplayInit *init_info)
 {
     spice_assert(!dcc->pixmap_cache);
-    return !!(dcc->pixmap_cache = pixmap_cache_get(dcc->common.base.client,
+    return !!(dcc->pixmap_cache = pixmap_cache_get(RED_CHANNEL_CLIENT(dcc)->client,
                                                    init_info->pixmap_cache_id,
                                                    init_info->pixmap_cache_size));
 }
@@ -8564,7 +8564,7 @@ static int display_channel_handle_migrate_data(RedChannelClient *rcc, uint32_t s
      * channel client that froze the cache on the src size receives the migrate
      * data and unfreezes the cache by setting its size > 0 and by triggering
      * pixmap_cache_reset */
-    dcc->pixmap_cache = pixmap_cache_get(dcc->common.base.client,
+    dcc->pixmap_cache = pixmap_cache_get(RED_CHANNEL_CLIENT(dcc)->client,
                                          migrate_data->pixmap_cache_id, -1);
     if (!dcc->pixmap_cache) {
         return FALSE;
-- 
2.4.3



More information about the Spice-devel mailing list