Re: [Spice-devel] [RFC spice-gtk 2/2] channel-display: fix bug when sending preferred video codecs
> > The transfer between the codecs array and the message payload cannot > be done with memcpy because the data-type lengths are different > (gint/uint8_t). > > Signed-off-by: Kevin Pouget > --- > src/channel-display.c | 8 +++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/src/channel-display.c b/src/channel-display.c > index 44555e3..37fdbce 100644 > --- a/src/channel-display.c > +++ b/src/channel-display.c > @@ -615,11 +615,17 @@ static void > spice_display_send_client_preferred_video_codecs(SpiceChannel *chann > { > SpiceMsgOut *out; > SpiceMsgcDisplayPreferredVideoCodecType *msg; > +int i; > > msg = g_malloc0(sizeof(SpiceMsgcDisplayPreferredVideoCodecType) + > (sizeof(SpiceVideoCodecType) * ncodecs)); For similar reason I would change this to msg = g_malloc0(sizeof(SpiceMsgcDisplayPreferredVideoCodecType) + (sizeof(msg->codecs[0]) * ncodecs)); > msg->num_of_codecs = ncodecs; > -memcpy(msg->codecs, codecs, sizeof(*codecs) * ncodecs); > + > +/* cannot memcpy because codecs is gint, but msg->codecs is uint8_t > + * but safe because codecs[i] <= 255 */ > +for (i = 0; i < ncodecs; i++) { > +msg->codecs[i] = codecs[i]; > +} > > out = spice_msg_out_new(channel, > SPICE_MSGC_DISPLAY_PREFERRED_VIDEO_CODEC_TYPE); > > out->marshallers->msgc_display_preferred_video_codec_type(out->marshaller, > msg); Good catch! Not much part of the series (quite independent I would say). Frediano ___ Spice-devel mailing list Spice-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/spice-devel
Re: [Spice-devel] [RFC spice-server] fixup! streaming: Restart guest video streams on video-codec changes
> > Update of the previous patch that resets only the stream channel whose > preferred codec list has been updated > > Signed-off-by: Kevin Pouget Why not just computing the list and call request_new_stream ? This would require a single file change. > --- > server/main-dispatcher.c | 12 +--- > server/main-dispatcher.h | 2 +- > server/reds.c| 15 --- > server/reds.h| 2 +- > server/stream-channel.c | 7 ++- > 5 files changed, 25 insertions(+), 13 deletions(-) > > diff --git a/server/main-dispatcher.c b/server/main-dispatcher.c > index 04f5ac88..ef2d4fba 100644 > --- a/server/main-dispatcher.c > +++ b/server/main-dispatcher.c > @@ -150,7 +150,7 @@ typedef struct MainDispatcherClientDisconnectMessage { > > > typedef struct MainDispatcherResetStreamChannelMessage { > -RedClient *client; > +int32_t channel_id; > } MainDispatcherResetStreamChannelMessage; > > /* channel_event - calls core->channel_event, must be done in main thread */ > @@ -212,11 +212,9 @@ static void > main_dispatcher_handle_reset_stream_channel(void *opaque, > void *payload) > { > RedsState *reds = opaque; > -MainDispatcherResetStreamChannelMessage __attribute__((unused)) *msg = > payload; > - > -/* TODO: reset only the char device linked to msg.client */ > +MainDispatcherResetStreamChannelMessage *msg = payload; > > -reds_reset_all_stream_char_devices(reds); > +reds_reset_stream_channel(reds, msg->channel_id); > } > > void main_dispatcher_seamless_migrate_dst_complete(MainDispatcher *self, > @@ -263,11 +261,11 @@ void main_dispatcher_client_disconnect(MainDispatcher > *self, RedClient *client) > } > } > > -void main_dispatcher_reset_stream_channels(MainDispatcher *self, RedClient > *client) > +void main_dispatcher_reset_stream_channel(MainDispatcher *self, int32_t > channel_id) > { > MainDispatcherResetStreamChannelMessage msg; > > -msg.client = client; > +msg.channel_id = channel_id; > > dispatcher_send_message(DISPATCHER(self), > MAIN_DISPATCHER_RESET_STREAM_CHANNELS, > &msg); > diff --git a/server/main-dispatcher.h b/server/main-dispatcher.h > index 6d5f50a0..5f386bf2 100644 > --- a/server/main-dispatcher.h > +++ b/server/main-dispatcher.h > @@ -58,7 +58,7 @@ void main_dispatcher_set_mm_time_latency(MainDispatcher > *self, RedClient *client > * that triggered the client destruction. > */ > void main_dispatcher_client_disconnect(MainDispatcher *self, RedClient > *client); > -void main_dispatcher_reset_stream_channels(MainDispatcher *self, RedClient > *client); > +void main_dispatcher_reset_stream_channel(MainDispatcher *self, int32_t > channel_id); > > MainDispatcher* main_dispatcher_new(RedsState *reds); > > diff --git a/server/reds.c b/server/reds.c > index 9aae838d..d47a0237 100644 > --- a/server/reds.c > +++ b/server/reds.c > @@ -3301,15 +3301,24 @@ static void reds_on_char_device_destroy(RedsState > *reds, > reds->char_devices = g_list_remove(reds->char_devices, dev); > } > > -void reds_reset_all_stream_char_devices(RedsState *reds) > +void reds_reset_stream_channel(RedsState *reds, int32_t channel_id) > { > RedCharDevice *dev; > > GLIST_FOREACH(reds->char_devices, RedCharDevice, dev) { > -if (IS_STREAM_DEVICE(dev)) { > -stream_device_reset_channels(STREAM_DEVICE(dev)); > +if (!IS_STREAM_DEVICE(dev)) { > +continue; > } > + > +StreamDevice *stream_dev = STREAM_DEVICE(dev); > +if (stream_device_get_stream_channel_id(stream_dev) != channel_id) { > +continue; > +} > + > +stream_device_reset_channels(stream_dev); > +return; > } > +spice_warning("channel %d not found", channel_id); > } > > static int spice_server_char_device_add_interface(SpiceServer *reds, > diff --git a/server/reds.h b/server/reds.h > index ec106394..6d0ed3ee 100644 > --- a/server/reds.h > +++ b/server/reds.h > @@ -53,7 +53,7 @@ bool reds_config_get_playback_compression(RedsState *reds); > // used by playback > > void reds_send_device_display_info(RedsState *reds); > void reds_handle_agent_mouse_event(RedsState *reds, const VDAgentMouseState > *mouse_state); // used by inputs_channel > -void reds_reset_all_stream_char_devices(RedsState *reds); > +void reds_reset_stream_channel(RedsState *reds, int32_t channel_id); > GArray* reds_get_renderers(RedsState *reds); > char *reds_get_video_codec_fullname(RedVideoCodec *codec); > > diff --git a/server/stream-channel.c b/server/stream-channel.c > index 99ce7c9a..ea53a451 100644 > --- a/server/stream-channel.c > +++ b/server/stream-channel.c > @@ -468,8 +468,13 @@ > stream_channel_handle_preferred_video_codec_type(RedChannelClient *rcc, > /* Reset video streams */ > RedClient *client = red_channel_client_get_client(rcc); > RedsState *reds = red_client_
[Spice-devel] [PATCH spice-server] reds: Fix indentation of spice_server_char_device_add_interface
Signed-off-by: Frediano Ziglio --- server/reds.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/reds.c b/server/reds.c index a3795ab90..c294137be 100644 --- a/server/reds.c +++ b/server/reds.c @@ -3301,8 +3301,8 @@ static void reds_on_char_device_destroy(RedsState *reds, reds->char_devices = g_list_remove(reds->char_devices, dev); } -static int spice_server_char_device_add_interface(SpiceServer *reds, - SpiceBaseInstance *sin) +static int +spice_server_char_device_add_interface(SpiceServer *reds, SpiceBaseInstance *sin) { SpiceCharDeviceInstance* char_device = SPICE_UPCAST(SpiceCharDeviceInstance, sin); -- 2.20.1 ___ Spice-devel mailing list Spice-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/spice-devel
[Spice-devel] [PATCH spice-server] Remove reference to removed ABI
spice_server_migrate_client_state was removed by commit 3c6b4e415fa1e2ce212d09ba15c90cd58b4ec4b4 Author: Marc-André Lureau Date: Fri Oct 24 17:16:35 2014 +0200 Remove spice-experimental Remove unneded symbols that nobody should be using anyway. ABI is modified with this patch, but the library version is not bumped. Signed-off-by: Frediano Ziglio --- server/spice-server.syms | 1 - 1 file changed, 1 deletion(-) diff --git a/server/spice-server.syms b/server/spice-server.syms index e33526f31..8da46c20c 100644 --- a/server/spice-server.syms +++ b/server/spice-server.syms @@ -10,7 +10,6 @@ global: spice_server_get_sock_info; spice_server_init; spice_server_kbd_leds; -spice_server_migrate_client_state; spice_server_migrate_end; spice_server_migrate_info; spice_server_migrate_start; -- 2.20.1 ___ Spice-devel mailing list Spice-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/spice-devel
Re: [Spice-devel] [spice-gtk v3 8/9] usb-redir: enable redirection of emulated CD drive
On Tue, Aug 13, 2019 at 2:29 PM Frediano Ziglio wrote: > > > > > Add implementation of emulated device to build. > > Now it is possible to create emulated CD devices. > > > > Signed-off-by: Yuri Benditovich > > Would be better to compile only if needed, like > > https://gitlab.freedesktop.org/fziglio/spice-gtk/commit/f74443390902335a0233bb32e1d94507e5b9f5f4 > > ? > No problem... > > --- > > src/meson.build | 7 +++ > > 1 file changed, 7 insertions(+) > > > > diff --git a/src/meson.build b/src/meson.build > > index fe19c16..3837a9d 100644 > > --- a/src/meson.build > > +++ b/src/meson.build > > @@ -124,6 +124,13 @@ spice_client_glib_sources = [ > >'usb-backend.c', > >'usb-emulation.h', > >'usb-backend.h', > > + 'usb-device-cd.c', > > + 'usb-device-cd.h', > > + 'cd-scsi.c', > > + 'cd-scsi.h', > > + 'cd-scsi-dev-params.h', > > + 'cd-usb-bulk-msd.c', > > + 'cd-usb-bulk-msd.h', > >'vmcstream.c', > >'vmcstream.h', > > ] > > Frediano ___ Spice-devel mailing list Spice-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/spice-devel
Re: [Spice-devel] [PATCH spice-server] Remove reference to removed ABI
On 8/15/19 11:30 AM, Frediano Ziglio wrote: spice_server_migrate_client_state was removed by commit 3c6b4e415fa1e2ce212d09ba15c90cd58b4ec4b4 Author: Marc-André Lureau Date: Fri Oct 24 17:16:35 2014 +0200 Remove spice-experimental Remove unneded symbols that nobody should be using anyway. ABI is modified with this patch, but the library version is not bumped. Signed-off-by: Frediano Ziglio Ack. Uri. --- server/spice-server.syms | 1 - 1 file changed, 1 deletion(-) diff --git a/server/spice-server.syms b/server/spice-server.syms index e33526f31..8da46c20c 100644 --- a/server/spice-server.syms +++ b/server/spice-server.syms @@ -10,7 +10,6 @@ global: spice_server_get_sock_info; spice_server_init; spice_server_kbd_leds; -spice_server_migrate_client_state; spice_server_migrate_end; spice_server_migrate_info; spice_server_migrate_start; ___ Spice-devel mailing list Spice-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/spice-devel