[Spice-devel] [PATCH spice-server 3/6] Simplify sending stream report activation message

Jonathon Jongsma jjongsma at redhat.com
Tue Dec 12 16:47:20 UTC 2017


Acked-by: Jonathon Jongsma <jjongsma at redhat.com>


On Fri, 2017-12-08 at 15:55 +0000, Frediano Ziglio wrote:
> Store information directly in the RedStreamActivateReportItem
> making easier to marshall the message.
> 
> Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
> ---
>  server/dcc-send.c     | 10 ++++------
>  server/video-stream.c |  1 +
>  server/video-stream.h |  1 +
>  3 files changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/server/dcc-send.c b/server/dcc-send.c
> index 828a472f..364f3405 100644
> --- a/server/dcc-send.c
> +++ b/server/dcc-send.c
> @@ -2308,15 +2308,13 @@ static void
> marshall_monitors_config(RedChannelClient *rcc, SpiceMarshaller *bas
>  
>  static void marshall_stream_activate_report(RedChannelClient *rcc,
>                                              SpiceMarshaller
> *base_marshaller,
> -                                            uint32_t stream_id)
> +                                            RedStreamActivateReportI
> tem *report_item)
>  {
> -    DisplayChannelClient *dcc = DISPLAY_CHANNEL_CLIENT(rcc);
> -    VideoStreamAgent *agent = &dcc->priv->stream_agents[stream_id];
>      SpiceMsgDisplayStreamActivateReport msg;
>  
>      red_channel_client_init_send_data(rcc,
> SPICE_MSG_DISPLAY_STREAM_ACTIVATE_REPORT);
> -    msg.stream_id = stream_id;
> -    msg.unique_id = agent->report_id;
> +    msg.stream_id = report_item->stream_id;
> +    msg.unique_id = report_item->report_id;
>      msg.max_window_size = RED_STREAM_CLIENT_REPORT_WINDOW;
>      msg.timeout_ms = RED_STREAM_CLIENT_REPORT_TIMEOUT;
>      spice_marshall_msg_display_stream_activate_report(base_marshalle
> r, &msg);
> @@ -2454,7 +2452,7 @@ void dcc_send_item(RedChannelClient *rcc,
> RedPipeItem *pipe_item)
>          RedStreamActivateReportItem *report_item =
> SPICE_CONTAINEROF(pipe_item,
>                                                                      
>  RedStreamActivateReportItem,
>                                                                      
>  pipe_item);
> -        marshall_stream_activate_report(rcc, m, report_item-
> >stream_id);
> +        marshall_stream_activate_report(rcc, m, report_item);
>          break;
>      }
>      case RED_PIPE_ITEM_TYPE_GL_SCANOUT:
> diff --git a/server/video-stream.c b/server/video-stream.c
> index 89f94ffb..b236774a 100644
> --- a/server/video-stream.c
> +++ b/server/video-stream.c
> @@ -759,6 +759,7 @@ void dcc_create_stream(DisplayChannelClient *dcc,
> VideoStream *stream)
>          red_pipe_item_init(&report_pipe_item->pipe_item,
>                             RED_PIPE_ITEM_TYPE_STREAM_ACTIVATE_REPORT
> );
>          report_pipe_item->stream_id = stream_id;
> +        report_pipe_item->report_id = agent->report_id;
>          red_channel_client_pipe_add(RED_CHANNEL_CLIENT(dcc),
> &report_pipe_item->pipe_item);
>      }
>  #ifdef STREAM_STATS
> diff --git a/server/video-stream.h b/server/video-stream.h
> index a4d14981..2dfcf7bf 100644
> --- a/server/video-stream.h
> +++ b/server/video-stream.h
> @@ -48,6 +48,7 @@ typedef struct VideoStream VideoStream;
>  typedef struct RedStreamActivateReportItem {
>      RedPipeItem pipe_item;
>      uint32_t stream_id;
> +    uint32_t report_id;
>  } RedStreamActivateReportItem;
>  
>  #ifdef STREAM_STATS


More information about the Spice-devel mailing list