summaryrefslogtreecommitdiffstats
path: root/server
Commit message (Collapse)AuthorAgeFilesLines
* spice.h: bump SPICE_SERVER_VERSION for release 0.11.0Alon Levy2012-06-271-1/+1
| | | | (cherry picked from commit dd5c995c32cf595d31e59975bd1b3216cf996656)
* Revert "spice.h: bump SPICE_SERVER_VERSION for release 0.11.0"Alon Levy2012-06-271-1/+1
| | | | This reverts commit dd5c995c32cf595d31e59975bd1b3216cf996656.
* spice.h: bump SPICE_SERVER_VERSION for release 0.11.0Alon Levy2012-06-211-1/+1
|
* Release 0.11.00.11.0Alon Levy2012-06-121-1/+1
| | | | | | | | | | | | | | | | | | | | Current bumped and age bumped for new intefaces only (no backward incompatible changes). New libtool version is 2.0.1, using --version-info instead of --version-name. Doing the version change and --version-name to --version-info change here to avoid changing the libtool version twice. Added interfaces: spice_server_set_name spice_server_set_uuid spice_server_set_listen_socket_fd spice_server_is_server_mouse New library name in linux: libspice-server.so.1.1.0 Old: libspice-server.so.1.0.2
* server/red_channel: s/channle/channelAlon Levy2012-06-071-3/+3
|
* server/spice.h: s/Pleaes/Please/Alon Levy2012-06-051-1/+1
|
* server/red_channel: do not attempt to write if the channel client is ↵Yonit Halperin2012-05-311-0/+4
| | | | | | | | | disconnected The red_channel_client_event call to red_channel_client_receive might result in a disconnected channel client. The following call to red_channel_client_push may call to red_peer_handle_outgoing with a disconnected socket.
* server/red_channel: fix possible access to released channel clientsYonit Halperin2012-05-312-20/+104
| | | | | | | | | | | | | Added ref count for RedChannel and RedChannelClient. red_channel.c/red_peer_handle_incoming call to handler->cb->handle_message might lead to the release of the channel client, and the following call to handler->cb->release_msg_buf will be a violation. This bug can be produced by causing main_channel_handle_parsed call red_client_destory, e.g., by some violation in reds_on_main_agent_data that will result in a call to reds_disconnect.
* server/red_worker: fix red_wait_pipe_item_sentYonit Halperin2012-05-241-7/+5
| | | | | | | | | | | | | | | Resolves: rhbz#824384 red_wait_pipe_item_sent mistakingly returned without waiting for sending the given pipe item when the channel wasn't blocked. As a result, we failed when we had to destroy a surface (e.g., QXL_IO_DESTROY_ALL_SURFACES) and to release all the drawables that are depended on it (by removing them or waiting they will be sent). In addition, red_wait_pipe_item_sent increased and decreased the reference to the pipe item using channel_cbs->hold_item, and channel_cbs->release_item. However, these calls can be called only by red_channel, otherwise display_channel_client_release_item_before_push is called twice and leads to a double call to ring_remove(&dpi->base). Instead ref/put_drawable_pipe_item should be called.
* server/red_channel: remove red_channel_client_item_being_sentYonit Halperin2012-05-243-31/+1
| | | | | | The above routine was risky, since red_channel_client_init_send_data can also be called with item==NULL. Thus, not all pipe items can be tracked. The one call that was made for this routine was not necessary.
* server: handle red_channel_client_create returning NULLYonit Halperin2012-05-216-2/+16
|
* server/red_channel: prevent creating more than one channel client with the ↵Yonit Halperin2012-05-211-4/+46
| | | | same type+id
* server/video: do not allow non-streamable drawables be stream candidatesYonit Halperin2012-05-211-0/+4
| | | | | | | | | Resolves: rhbz#820669 Fix a segfault caused by a call to __red_is_next_stream_frame made by red_stream_maintenance, with a drawable that is not a DRAW_COPY one. The segfault is a reault of __red_is_next_stream_frame accessing red_drawable->u.copy.src_bitmap for a non DRAW_COPY drawable.
* server/tests: test_display_streaming - test wide sized framesYonit Halperin2012-05-161-3/+8
| | | | | | Before, we tested only higher frames, while wider frames would have triggered a bug in mjpeg_encoder, when spice is linked with libjpeg and not libjpeg-turbo.
* server/mjpeg_encoder: realloc encoder->row, when a wider frame is givenYonit Halperin2012-05-161-2/+8
| | | | | | | | Fix crashes when there are sized wider frames in the stream, and we are linked with libjpeg. Related : rhbz#813826 Resolves: rhbz#820669
* server: move self_bitmap_image to RedDrawableAlon Levy2012-05-153-16/+13
| | | | | | | Simplify keeping count of self_bitmap_image by putting it in RedDrawable. It is allocated on reading from the command pipe and deallocated when the last reference to the RedDrawable is dropped, instead of keeping track of it in GlzDrawable and Drawable.
* server/red_worker/put_red_drawable: s/drawable/red_drawable/Alon Levy2012-05-151-6/+6
|
* server/red_worker/red_handle_self_bitmap: add red_drawable local, one extra ↵Alon Levy2012-05-151-7/+7
| | | | whitespace line removed
* server/red_worker: rename SpiceImage *self_bitmap to self_bitmap_imageAlon Levy2012-05-151-13/+13
|
* Revert "server/red_worker: fix possible leak of self_bitmap"Alon Levy2012-05-151-7/+5
| | | | | | | This reverts commit 35dbf3ccc4b852f9dbb29eb8a53c94f26d2e3a6e. accidentally pushed v1 of patches, reverting in preperation of pushing v2.
* server/red_worker: fix possible leak of self_bitmapAlon Levy2012-05-141-5/+7
| | | | | | | | | | | | | | | After the previous patch moving self_bitmap freeing inside red_drawable ref count, we have a possible self_bitmap leak: red_process_commands red_get_drawable | red_drawable #1, red_drawable->self_bitmap == 1 red_process_drawable | rd #2, d #1, d->self_bitmap != NULL release_drawable | rd #1, d# = 0, try to release self_bitmap, but blocked by rd #1 put_red_drawable | rd #0 This patch moves the call to release_drawable after the call to put_red_drawable, thereby fixing the above situation.
* server/red_worker/red_process_commands: rename drawable to red_drawable ↵Alon Levy2012-05-141-4/+4
| | | | (later add a local drawable)
* server/red_worker: red_process_drawable: have single point of exitAlon Levy2012-05-141-8/+5
|
* server/red_worker: don't release self_bitmap unless refcount is 0Yonit Halperin2012-05-141-4/+3
| | | | RHBZ: 808936
* server/mjpeg_encoder: fix wrong size assigned to dest_lenYonit Halperin2012-05-101-1/+1
| | | | | It should have been the allocated size and not the occupied one. This led to a lot of unnecessary allocations and deallocations.
* server/mjpeg_encoder: Fix memory leak for the inital output buffer given for ↵Yonit Halperin2012-05-102-8/+8
| | | | each frame
* server/reds: add "usbredir" to recognized channel namesAlon Levy2012-05-071-0/+1
| | | | | | RHBZ: 819484 Signed-off-by: Alon Levy <alevy@redhat.com>
* server/tests/test_display_streaming: include tests for clip and sized framesYonit Halperin2012-05-031-16/+181
| | | | CC: Alon Levy <alevy@redhat.com>
* server/tests: use the correct dimensions in SIMPLE_UPDATEYonit Halperin2012-05-031-2/+2
|
* server/tests: add SLEEP command to test_display_baseYonit Halperin2012-05-032-0/+10
|
* server/tests: add clip to SIMPLE_DRAW_BITMAPYonit Halperin2012-05-032-6/+30
|
* server/tests/test_display_streaming: update to create sized framesAlon Levy2012-05-031-7/+37
|
* server/tests: add SIMPLE_DRAW_SOLID and SIMPLE_DRAW_BITMAPAlon Levy2012-05-032-6/+39
|
* server/tests: refactor CommandAlon Levy2012-05-033-16/+37
|
* server/tests: add test_get_width/test_get_heightAlon Levy2012-05-032-0/+19
|
* server/tests: refactor test_display_baseAlon Levy2012-05-031-34/+45
|
* server/red_worker/video: don't override the clip in areas that belong only ↵Yonit Halperin2012-05-031-30/+12
| | | | to sized frames
* server/red_worker.c/video: add support for frames of different sizesYonit Halperin2012-05-033-61/+166
| | | | | | | | | | | | rhbz #813826 When playing a youtube video on Windows guest, the driver sometimes(**) sends images which contain the video frames, but also other parts of the screen (e.g., the youtube process bar). In order to prevent glitches, we send these images as part of the stream, using SPICE_MSG_DISPLAY_STREAM_DATA_SIZED. (**) It happens regularly with the you tube html5 player. With flash, it occurs when moving the cursor in the player area.
* Update the spice-common submoduleYonit Halperin2012-05-031-2/+2
| | | | | | | | | spice-common changes: STREAM_DATA_SIZED message was added in order to support video streams with frames that their size is different from the initial size that the stream was created with. This patch also includes server and client adjustments to the new SpiceMsgDisplayStreamData.
* server/red_worker/video: don't detach a drawable from a stream due to it ↵Yonit Halperin2012-05-031-8/+8
| | | | | | | | | | | being rendered. The previous patch took care that streams will be upgraded by a surface screenshot and not the last frame, if necessary. Thus, there is no more a reason for detaching drawables from streams when they are rendered. Moreover, detaching such drawables can cause glitches, in case they are still in the pipe, and red_update_area is called frequently and leads to stream frames rendering.
* server/red_worker/video: upgrade stream by a screenshot instead of the last ↵Yonit Halperin2012-05-031-21/+71
| | | | | | | | frame, if needed Upgrading a stream: When the stream's visible region is bigger than the one of the last frame, we will send an updated screenshot of the visible region, instead of sending the last frame losslessly.
* server/red_worker/video: maintain visible region and clip region for streamsYonit Halperin2012-05-031-12/+27
| | | | | | | | | | | | | | | | | | | | | Differentiate between the clipping of the video stream, and the region that currently displays fragments of the video stream (henceforth, vis_region). The latter equals or contains the former one. For example, let c1 be the clip area at time t1, and c2 be the clip area at time t2, where t1 < t2. If c1 contains c2, and at least part of c1/c2, hasn't been covered by a non-video images, vis_region will contain c2, and also the part of c1/c2 that still displays fragments of the video. When we consider if a stream should be "upgraded" (1), due to its area being used by a rendering operation, or due to stopping the video, we should take into account the vis_region, and not the clip region (next patch: not upgrade by the last frame, but rather by vis_region). This fix will be more necessary when sized frames are introduced (see the following patches). Then, the vis_region might be larger than the last frame, and contain it, more frequently than before. (1) "upgrading a stream" stands for sending its last frame losslessly. Or more precisely, lossless resending of all the currently displayed lossy areas, that were sent as part of the stream.
* server/red_worker: add get_stream_idYonit Halperin2012-05-031-11/+16
|
* Force 64 bit multiplication on 32 bit systems; fixes a bug where the server ↵Jeremy White2012-04-271-1/+1
| | | | times out the display channel freakily fast.
* Add some more 'noreturn' annotationsDaniel P. Berrange2012-04-251-2/+4
| | | | | | | | Methods which longjump, unconditionally raise an exception, or call _exit() cannot return control to the caller so should be annotated with 'noreturn' Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
* Fix typo in is_equal_brushDaniel P. Berrange2012-04-251-1/+1
| | | | | | | The 3 part of the conditional in the is_equal_brush method compared the b1->u.color field to itself, instead of b2->u.color Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
* Ensure config.h is the first include in the fileDaniel P. Berrange2012-04-251-1/+1
| | | | Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
* Make some int->pointer casts explicitDaniel P. Berrange2012-04-251-2/+2
| | | | | | | | | Tell the compiler that was really do intend to cast from int to pointer, to prevent warnings about implicit casts * server/tests/test_display_base.c: Add explicit casts Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
* VSCMsgHeader.reader_id is unsigned, so don't check for >= 0Daniel P. Berrange2012-04-251-2/+1
| | | | | | | * server/smartcard.c: Fix assertion to not check for >= 0 on unsigned variable Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
* Avoid jumping across variables declarations with initializersDaniel P. Berrange2012-04-251-1/+2
| | | | | | | | | | If a 'goto' statement jumps across a variable declaration which also has an initializer, the variable is in an undefined state. Splitting the the declaration & initialization doesn't change that, but the compiler can at least now detect use of the unintialized variable Signed-off-by: Daniel P. Berrange <berrange@redhat.com>