diff options
-rw-r--r-- | AUTHORS | 1 | ||||
-rw-r--r-- | server/red-qxl.cpp | 1 | ||||
-rw-r--r-- | server/red-stream.cpp | 5 | ||||
-rw-r--r-- | server/sound.cpp | 3 | ||||
-rw-r--r-- | server/tests/test-display-streaming.c | 2 |
5 files changed, 8 insertions, 4 deletions
@@ -90,5 +90,6 @@ Patches also contributed by Volker RĂ¼melin <vr_qemu@t-online.de> Biswapriyo Nath <nathbappai@gmail.com> Vivek Kasireddy <vivek.kasireddy@intel.com> + osy <osy@turing.llc> ....send patches to get your name here... diff --git a/server/red-qxl.cpp b/server/red-qxl.cpp index 48c293ae..1135fd52 100644 --- a/server/red-qxl.cpp +++ b/server/red-qxl.cpp @@ -432,7 +432,6 @@ void spice_qxl_gl_scanout(QXLInstance *qxl, spice_return_if_fail(qxl != nullptr); QXLState *qxl_state = qxl->st; - spice_return_if_fail(qxl_state->gl_draw_cookie == GL_DRAW_COOKIE_INVALID); pthread_mutex_lock(&qxl_state->scanout_mutex); diff --git a/server/red-stream.cpp b/server/red-stream.cpp index 89222702..22fd6bac 100644 --- a/server/red-stream.cpp +++ b/server/red-stream.cpp @@ -44,7 +44,7 @@ #include "websocket.h" // compatibility for *BSD systems -#if !defined(TCP_CORK) && !defined(_WIN32) +#if !defined(TCP_CORK) && !defined(_WIN32) && !defined(__APPLE__) #define TCP_CORK TCP_NOPUSH #endif @@ -106,7 +106,8 @@ struct RedStreamPrivate { SpiceCoreInterfaceInternal *core; }; -#ifndef _WIN32 +// TCP_NOPUSH is broken on Darwin +#if !defined(_WIN32) && !defined(__APPLE__) /** * Set TCP_CORK on socket */ diff --git a/server/sound.cpp b/server/sound.cpp index 2142f204..0fcc8e76 100644 --- a/server/sound.cpp +++ b/server/sound.cpp @@ -891,6 +891,8 @@ SPICE_GNUC_VISIBLE void spice_server_playback_get_buffer(SpicePlaybackInstance * uint32_t **samples, uint32_t *num_samples) { + // FIXME does not make sense, samples should be on channel so to + // make possible multiple clients. SndChannelClient *client = snd_channel_get_client(sin->st); *samples = nullptr; @@ -934,6 +936,7 @@ SPICE_GNUC_VISIBLE void spice_server_playback_put_samples(SpicePlaybackInstance } spice_assert(playback_client->active); + // overflow ??? support more pending ?? if (playback_client->pending_frame) { snd_playback_free_frame(playback_client, playback_client->pending_frame); } diff --git a/server/tests/test-display-streaming.c b/server/tests/test-display-streaming.c index 69703a0c..c19d954d 100644 --- a/server/tests/test-display-streaming.c +++ b/server/tests/test-display-streaming.c @@ -215,7 +215,7 @@ static void get_stream_commands(Command *commands, int num_commands, static void get_commands(Command **commands, int *num_commands) { *num_commands = NUM_COMMANDS * 2; - *commands = (Command*) calloc(sizeof(Command), *num_commands); + *commands = (Command*) calloc(*num_commands, sizeof(Command)); get_stream_commands(*commands, NUM_COMMANDS, create_frame1); get_stream_commands((*commands) + NUM_COMMANDS, NUM_COMMANDS, create_frame2); |