Commit Graph

1572 Commits

Author SHA1 Message Date
Marc-André Lureau
b61bd286bc worker: move display_channel_draw
Acked-by: Frediano Ziglio <fziglio@redhat.com>
2015-11-25 11:51:18 +00:00
Marc-André Lureau
30e0aabace worker: simplify surface_update_dest()
Acked-by: Frediano Ziglio <fziglio@redhat.com>
2015-11-25 11:51:18 +00:00
Francois Gouget
9e5363d483 server: Remove MJPEG's video callback assert
A NULL get_roundtrip_ms() callback simply disables rate control so
that mjpeg_encoder_get_source_fps() will not be called.
Should it be called despite this, simply return the highest allowed
framerate (get_source_fps()'s value is only an estimate anyway).
Finally update_client_playback_delay() is always checked before use.

Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
2015-11-25 09:51:23 +01:00
Francois Gouget
751576b173 server: Encapsulate the get_source_fps() video encoder callback
Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
2015-11-25 09:51:23 +01:00
Frediano Ziglio
790707b9ee worker: simplify handle_dev_oom
Do not check if worker->display_channel is NULL as we are already using
to get some field so must be not NULL.
Reuse display_red_channel variable.

Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Uri Lublin <uril@redhat.com>
2015-11-24 17:30:45 +00:00
Frediano Ziglio
ca41ff2be0 dcc: remove possible dandling pointers
Set pointers to NULL after releasing encoders.
This to make sure no further access will occurs.

Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Victor Toso <victortoso@redhat.com>
Acked-by: Pavel Grunt <pgrunt@redhat.com>
2015-11-24 17:00:18 +00:00
Marc-André Lureau
fcb57e686a worker: Change validate_area to surface_update_dest
Acked-by: Frediano Ziglio <fziglio@redhat.com>
2015-11-24 15:05:52 +00:00
Marc-André Lureau
58e14915d8 worker: rename red_connect_cursor and tidy up a bit
Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>
Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Pavel Grunt <pgrunt@redhat.com>
2015-11-24 13:21:39 +00:00
Frediano Ziglio
2efb507adb worker: fix constant
Use mnemonic instead of constant to return enumeration value

Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-24 09:04:47 +00:00
Marc-André Lureau
4e8f24e351 worker: move drawable_draw
Acked-by: Fabiano Fidêncio <fabiano@fidencio.org>
Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
Acked-by: Frediano Ziglio <fziglio@redhat.com>
2015-11-24 09:04:16 +00:00
Marc-André Lureau
56e0ef7c33 worker: remove display_channel prefix from channel callbacks
Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
2015-11-24 09:03:55 +00:00
Marc-André Lureau
742e3666ab worker: move dcc_release_item
Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
2015-11-24 09:03:39 +00:00
Marc-André Lureau
956600cbc5 worker: simplify handle_migrate_data functions
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-24 09:03:18 +00:00
Marc-André Lureau
5bd0fd9fe4 worker: move dcc_handle_migrate_data
Acked-by: Fabiano Fidêncio <fabiano@fidencio.org>
2015-11-24 09:03:07 +00:00
Marc-André Lureau
acba59bb9b worker: move attach_stream
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-24 08:57:01 +00:00
Marc-André Lureau
6df1558523 worker: move dcc_add_drawable*
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-24 08:56:33 +00:00
Marc-André Lureau
1549f751b8 worker: move dcc_handle_message
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-24 08:55:59 +00:00
Marc-André Lureau
1b6881c83b worker: do not set worker image compression on client request
Display client can ask to change the preferred compression.
Previously this setting change the entire worker setting
so every future client created would have this setting.
Remove the setting in the worker make the change only to the
current client.

Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>
Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-24 08:55:16 +00:00
Marc-André Lureau
81da00bf09 worker: rename update_area
Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
Acked-by: Fabiano Fidêncio <fabiano@fidencio.org>
2015-11-23 14:38:11 +00:00
Marc-André Lureau
4acf97cae1 worker: move display_channel_free_some
Author:    Marc-André Lureau <marcandre.lureau@gmail.com>
Acked-by: Fabiano Fidêncio <fabiano@fidencio.org>
2015-11-23 14:21:09 +00:00
Marc-André Lureau
b9ea3c9145 worker: replace some precondition checks
Acked-by: Fabiano Fidêncio <fabiano@fidencio.org>
2015-11-23 14:03:57 +00:00
Marc-André Lureau
e624a6169b worker: generalize surface_dirty_region_to_rects
Acked-by: Fabiano Fidêncio <fabiano@fidencio.org>
2015-11-23 14:01:48 +00:00
Marc-André Lureau
029b4beb73 worker: move dcc_add_surface_area_image
Author:    Marc-André Lureau <marcandre.lureau@gmail.com>
Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
2015-11-23 13:50:44 +00:00
Pavel Grunt
cfa022c656 main channel: Remove unused main_channel_client_get_link_id
It was introduced in 9cece23ba3
but never used.

Signed-off-by: Pavel Grunt <pgrunt@redhat.com>
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-23 11:52:04 +00:00
Pavel Grunt
e20b44bf51 main channel: Remove unused main_channel_push_notify
It is not needed since 8d44aa0328

Signed-off-by: Pavel Grunt <pgrunt@redhat.com>
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-23 11:51:05 +00:00
Pavel Grunt
70971e9923 red channel: Remove unused red_channel_apply_clients_data
It was introduced in 7e8e13593e
but never used.

Signed-off-by: Pavel Grunt <pgrunt@redhat.com>
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-23 11:50:13 +00:00
Pavel Grunt
96049b7c3a red channel: Remove unused declaration of red_channel_pipes_remove
It was introduced in 09ae4700d2
but never used.

Signed-off-by: Pavel Grunt <pgrunt@redhat.com>
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-23 11:49:07 +00:00
Pavel Grunt
380b9f6aff red channel: Remove unused red_channel_push_set_ack
It is not needed since 8e7b22b786

Signed-off-by: Pavel Grunt <pgrunt@redhat.com>
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-23 11:48:14 +00:00
Pavel Grunt
2d79b39d96 red dispatcher: Remove unused declaration of red_dispatcher_set_mm_time
It is not used since c541d7e29d

Signed-off-by: Pavel Grunt <pgrunt@redhat.com>
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-23 11:46:22 +00:00
Pavel Grunt
fd1eff352d dispatcher: Remove unused dispatcher_read_message
It is not needed since d3153f8610

Signed-off-by: Pavel Grunt <pgrunt@redhat.com>
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-23 11:45:20 +00:00
Frediano Ziglio
6bc1aa90c6 worker: move red_drawable_count to DisplayChannel
Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Pavel Grunt <pgrunt@redhat.com>
2015-11-23 11:29:03 +00:00
Frediano Ziglio
454e521b17 reuse red_get_monotonic_time function
Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Pavel Grunt <pgrunt@redhat.com>
2015-11-23 11:07:33 +00:00
Marc-André Lureau
c5c176a5c7 server: remove OpenGL
This is really not supported, requires X11, so better to remove it for
now. Some day it might be revived, using DRM, ..

Note for later, this could be removed too (not used by client):
- spice-common/common/ogl_ctx

Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-21 13:50:46 +00:00
Marc-André Lureau
1f27043b82 stream: remove red_stream_ prefix from mjpeg callbacks
Author:    Marc-André Lureau <marcandre.lureau@gmail.com>
Acked-by: Frediano Ziglio <fziglio@redhat.com>
2015-11-21 13:41:35 +00:00
Marc-André Lureau
f5c109573f stream: rename {red_stream_, }get_initial_bit_rate
Author:    Marc-André Lureau <marcandre.lureau@gmail.com>
Acked-by: Frediano Ziglio <fziglio@redhat.com>
2015-11-21 13:41:32 +00:00
Marc-André Lureau
d78b44ec26 stream: remove dcc parameter from stream_agent_stop()
Author:    Marc-André Lureau <marcandre.lureau@gmail.com>
Acked-by: Frediano Ziglio <fziglio@redhat.com>
2015-11-21 13:41:12 +00:00
Marc-André Lureau
75ab0c6817 worker: move more free_glz_drawable
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
Acked-by: Frediano Ziglio <fziglio@redhat.com>
2015-11-20 14:35:20 +00:00
Pavel Grunt
25203e9a6e worker: Free encoders when client disconnects
Signed-off-by: Pavel Grunt <pgrunt@redhat.com>
2015-11-20 14:30:55 +01:00
Pavel Grunt
2c2e26579f dcc: Fix unused display_channel variable
Avoid problem when compiling with lz4 and without COMPRESS_STAT

dcc.c: In function 'dcc_compress_image_lz4':
dcc.c:657:21: error: unused variable 'display_channel' [-Werror=unused-variable]
     DisplayChannel *display_channel = DCC_TO_DC(dcc);

Acked-by: Frediano Ziglio <fziglio@redhat.com>
2015-11-20 11:26:12 +00:00
Marc-André Lureau
ff070be68f worker: move stream_clip_item_unref()
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-20 10:22:00 +00:00
Marc-André Lureau
f06ce6c1c4 worker: merge red_draw_qxl_drawable in drawable_draw
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-20 10:20:52 +00:00
Marc-André Lureau
8ef5be6cd9 worker: move dcc_pixmap_cache_add
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-20 10:20:38 +00:00
Marc-André Lureau
036451cce9 worker: move dcc_freeze_glz
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-20 10:17:36 +00:00
Marc-André Lureau
44b2d00246 worker: few function renames
Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
2015-11-20 09:49:49 +00:00
Marc-André Lureau
30a963d53a worker: add display_channel_free_glz_drawables_to_free()
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-20 09:49:49 +00:00
Marc-André Lureau
aa8f2a1a95 worker: move dcc_free_glz_drawable_instance
Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
2015-11-20 09:49:49 +00:00
Marc-André Lureau
920f857c2d worker: move display_channel_flush_all_surfaces
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-20 09:49:49 +00:00
Frediano Ziglio
422d67dde4 worker: move compress to dcc_compress_image()
Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>
Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
2015-11-20 09:49:49 +00:00
Frediano Ziglio
5229613d51 worker: move glz_drawable_count to DisplayChannel
Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
2015-11-20 09:49:49 +00:00
Marc-André Lureau
1cbf6b3ab6 worker: move display_channel_wait_for_migrate_data
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-19 12:43:33 +00:00
Marc-André Lureau
0e224d04fb worker: move dcc_start()
Author:    Marc-André Lureau <marcandre.lureau@gmail.com>
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-19 12:43:33 +00:00
Marc-André Lureau
85920bb2e9 worker: start a DisplayChannelClient unit
Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>
Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-19 12:43:02 +00:00
Marc-André Lureau
501c5ed8ca worker: simplify GlzDrawableInstanceItem fields name
Acked-by: Frediano Ziglio <fziglio@redhat.com>
2015-11-19 11:33:42 +00:00
Marc-André Lureau
e8d8ff458b worker: move encoders to dcc-encoders
Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>
Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com>
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-19 10:26:45 +00:00
Marc-André Lureau
d9a488a62f worker: painfully move display_channel_add_drawable
Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
Acked-by: Frediano Ziglio <fziglio@redhat.com>
2015-11-18 15:34:01 +00:00
Marc-André Lureau
960e0321b6 worker: add compression parameters to dcc
This allow different dcc to have different settings from default one.
The parameters are copied initially from default settings but then they
can change independently for each client.
Even having a single client a future client is not affected by a
previous setting on the old dcc.

Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>
[updated for the preferred compression]
Signed-off-by: Pavel Grunt <pgrunt@redhat.com>
Acked-by: Frediano Ziglio <fziglio@redhat.com>
2015-11-18 15:32:50 +00:00
Jonathon Jongsma
9b36936a31 Rename red_display_free_* to dcc_free_*
Acked-by: Pavel Grunt <pgrunt@redhat.com>
2015-11-18 14:36:14 +00:00
Marc-André Lureau
92d9b782bd worker: simplify RedCompressBuf
Make sure an allocated buffer is correctly referenced by the marshaller,
and can't be free and reused by mistake. Simplify the code by using
GSlice

Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
2015-11-18 14:30:32 +00:00
Marc-André Lureau
3941d03d11 worker: move surfaces to DisplayChannel
Ok. this one was painful.Note that in some cases, DCC_TO_DC should be
made safer (there used to be a if !dcc guard in some places, although
that looks wrong anyway)...

Acked-by: Pavel Grunt <pgrunt@redhat.com>
2015-11-18 14:27:45 +00:00
Jonathon Jongsma
b12b248cae Move stream creation and maintenance functions to stream.[ch]
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-18 14:21:45 +00:00
Marc-André Lureau
8c750746f3 worker: move stream_agent_stop and friends
Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
2015-11-18 14:10:45 +00:00
Pavel Grunt
39e1cbe321 worker: Remove unused red_show_tree
Acked-by: Frediano Ziglio <fziglio@redhat.com>
2015-11-18 13:53:39 +00:00
Marc-André Lureau
c66c9e6669 display-channel: Keep macro definition in one line
Acked-by: Frediano Ziglio <fziglio@redhat.com>
2015-11-18 13:53:22 +00:00
Frediano Ziglio
3fc8d6ab9a worker: simplify red_marshall_image
Remove some nested blocks using else if.

Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Pavel Grunt <pgrunt@redhat.com>
2015-11-18 10:13:20 +00:00
Jonathon Jongsma
ac2a854fbf worker: Move stream functions to stream.c
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-18 08:37:21 +00:00
Jonathon Jongsma
5897952f46 Move some tree item functions to tree.[ch]
Also rename some functions slightly:
     __find_shadow -> tree_item_find_shadow()
     __contained_by -> tree_item_contained_by()
     ring_of -> tree_item_container_items();

Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
Acked-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
2015-11-17 17:22:05 +00:00
Jonathon Jongsma
a26b4daf98 Move some more drawable functions to display channel
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-16 13:36:08 +00:00
Jonathon Jongsma
1e8b2fe324 worker: Rename current_clear() to current_remove_all()
Acked-by: Pavel Grunt <pgrunt@redhat.com>
2015-11-16 12:45:03 +00:00
Jonathon Jongsma
e49072492a Move dcc_push_stream_agent_clip() to display channel
rename to dcc_add_stream_agent_clip()

Acked-by: Pavel Grunt <pgrunt@redhat.com>
2015-11-16 12:44:32 +00:00
Francois Gouget
37763930cd server: Duplicate typedef definitions are not allowed in C99
This fixes some compilation errors with gcc 4.4.7 on RHEL 6.

Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-16 10:21:32 +00:00
Francois Gouget
bd2bbe2fdd server: Include stdint.h for int64_t
This fixes a compilation error with gcc 4.4 on RHEL 6.

Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-16 10:21:14 +00:00
Francois Gouget
dc169cea90 server: Remove the display_channel_attach_stream() prototype
It is unused.

Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
Acked-by: Frediano Ziglio <fziglio@redhat.com>
2015-11-13 17:36:30 +00:00
Marc-André Lureau
105fad7e87 worker: don't use weird RedCompressedBuf nbytes shifting
Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>
Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Pavel Grunt <pgrunt@redhat.com>
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-13 13:43:35 +00:00
Victor Toso
08230ee171 spicevmc: set state of DeviceInstance to NULL
After spice_char_device_state_destroy is called spicevmc should not keep
reference to that memory. state->chardev_st and sin->st point to the
same SpiceCharDeviceState and both should be set to NULL when it is
destroyed.
2015-11-13 12:01:26 +01:00
Victor Toso
c429574bb6 char-device: set to NULL freed pointers on destroy
As SpiceCharDeviceState is only unref'ed on
spice_char_device_state_destroy the same device could be destroyed more
then once so the pointers that are freed should be set to NULL.

Related: https://bugzilla.redhat.com/show_bug.cgi?id=1281455
2015-11-13 12:01:26 +01:00
Pavel Grunt
57fe8ce268 reds: Do not abort due to wrong header
Just prevent the buggy client from connecting.

 #0  0x00007fffe83b2a98 in raise () at /lib64/libc.so.6
 #1  0x00007fffe83b469a in abort () at /lib64/libc.so.6
 #2  0x00007ffff7b1533d in spice_logv (log_domain=0x7ffff7b87226 "Spice", log_level=SPICE_LOG_LEVEL_ERROR, strloc=0x7ffff7b92aba "reds.c:1373", function=0x7ffff7b94f40 <__FUNCTION__.31775> "reds_send_link_ack", format=0x7ffff7b871fe "assertion `%s' failed", args=args@entry=0x7fffffffcb68) at log.c:109
 #3  0x00007ffff7b15468 in spice_log (log_domain=log_domain@entry=0x7ffff7b87226 "Spice", log_level=log_level@entry=SPICE_LOG_LEVEL_ERROR, strloc=strloc@entry=0x7ffff7b92aba "reds.c:1373", function=function@entry=0x7ffff7b94f40 <__FUNCTION__.31775> "reds_send_link_ack", format=format@entry=0x7ffff7b871fe "assertion `%s' failed") at log.c:123
 #4  0x00007ffff7aee335 in reds_handle_read_link_done (link=0x555556b27c70)
     at reds.c:1373
 #5  0x00007ffff7aee335 in reds_handle_read_link_done (opaque=0x555556b27c70)
     at reds.c:2139
 #6  0x000055555588acc6 in qemu_iohandler_poll ()
 #7  0x000055555588a8e1 in main_loop_wait ()
 #8  0x0000555555614064 in main ()

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1281442

Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
Acked-by: Frediano Ziglio <fziglio@redhat.com>
2015-11-13 09:15:02 +00:00
Victor Toso
a263c651e1 char-device: free all memory pool when no clients
When no client is connect we should not need to keep the memory pool
used by char-device. In most situations this is not significant but
when using webdav this could mean freeing MAX_POOL_SIZE bytes

Related: https://bugs.freedesktop.org/show_bug.cgi?id=91350
2015-11-13 08:15:38 +01:00
Victor Toso
2832fdf25a char-device: Define a memory pool limit
Otherwise the amount of unused memory could grow while transfering big
chunks of data. This change only means that once the memory was used it
will not be stored again after the limit was reached.

Related: https://bugs.freedesktop.org/show_bug.cgi?id=91350
2015-11-13 08:15:38 +01:00
Victor Toso
d7bee1bc56 char-device: fix usage of free/unref on WriteBuffer
There are places were the could should definetly free the
SpiceCharDeviceWriteBuffer and places that it should only unref it. The
current use of spice_char_device_write_buffer_free was missleading.

This patch creates the spice_char_device_write_buffer_unref and properly
call these two functions.

Related: https://bugs.freedesktop.org/show_bug.cgi?id=91350
2015-11-13 08:14:31 +01:00
Frediano Ziglio
1ab8df03ce worker: fix compiling with COMPRESS_STAT enabled
Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>
Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-12 13:25:09 +00:00
Pavel Grunt
f4810b0065 worker: Remove usage of streaming_video global in DisplayChannel
Avoid creating streams for every image due to not properly initialized
DisplayChannel->stream_video field.

Regression since: 4987df8e67

Acked-by: Frediano Ziglio <fziglio@redhat.com>
2015-11-12 12:32:27 +00:00
Marc-André Lureau
120c9ae38b worker: move some tree container functions
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-12 12:26:47 +00:00
Marc-André Lureau
cc8107c830 worker: rename a bit current_add functions
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
Acked-by: Frediano Ziglio <fziglio@redhat.com>
2015-11-12 12:09:34 +00:00
Jonathon Jongsma
6380c43258 worker: Remove duplicate DISPLAY_CLIENT_TIMEOUT define
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-11 15:48:56 +00:00
Marc-André Lureau
7b1d03508d worker: move RED_WORKER_STAT, make it compile again
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-11 15:42:10 +00:00
Jonathon Jongsma
892feff458 worker: Move drawable utility functions to display channel
Functions that check the equality of a path, brush, etc are moved the
display channel source file to prepare for moving the surfaces to the
display channel.

Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-11 12:01:29 +00:00
Jonathon Jongsma
0e7617e51f worker: Move is_opaque_item() to tree.h
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-11 11:59:58 +00:00
Marc-André Lureau
a7fc621750 worker: move drawable to display
Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
2015-11-11 09:53:40 +00:00
Marc-André Lureau
7b3f277a72 worker: move current to display
Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
2015-11-10 17:38:48 +00:00
Marc-André Lureau
4a1668a755 worker: move red_destroy_surface_item()
Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
2015-11-10 17:38:48 +00:00
Marc-André Lureau
4987df8e67 worker: move stream to display channel
Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
2015-11-10 17:38:39 +00:00
Marc-André Lureau
5a216d2eb1 worker: move DisplayChannel/DisplayChannelClient functions together
Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>
Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
2015-11-10 17:18:45 +00:00
Marc-André Lureau
921ec344bc worker: rename functions that handle DisplayChannelClient
Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>
Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-10 16:10:07 +00:00
Marc-André Lureau
885557f117 worker: move stream functions to a new stream.c file
Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>
Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-10 16:09:28 +00:00
Marc-André Lureau
1e4abdc15d worker: move stream definitions to a new stream.h file
Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>
Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-10 16:06:08 +00:00
Marc-André Lureau
ab2e8a9cc0 worker: fix RED_STREAM_TIMOUT macro spelling
Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-10 15:43:22 +00:00
Frediano Ziglio
1763e7ebf2 remove server/stream.h file added by mistake in previous commit
Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Pavel Grunt <pgrunt@redhat.com>
2015-11-10 15:42:08 +00:00
Marc-André Lureau
face40e19e worker: move image cache to display
Acked-by: Frediano Ziglio <fziglio@redhat.com>
2015-11-10 10:02:08 +00:00
Marc-André Lureau
1b9d767ca7 worker s/surfaces_dest/surface_deps
Acked-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
2015-11-10 09:35:42 +00:00
Pavel Grunt
0426524546 syntax-check: Add missing #include <config.h> 2015-11-09 19:41:28 +01:00
Pavel Grunt
1eb94c0fb0 red_dispatcher: Remove unused signal.h include 2015-11-09 19:41:22 +01:00
Marc-André Lureau
9c57505849 worker: group add_memslot
Acked-by: Frediano Ziglio <fziglio@redhat.com>
2015-11-09 17:03:34 +00:00
Marc-André Lureau
873639abf7 worker: remove unused NUM_CURSORS define
Acked-by: Frediano Ziglio <fziglio@redhat.com>
2015-11-09 16:59:28 +00:00
Marc-André Lureau
66ed1f63b8 worker: make more functions static
Acked-by: Pavel Grunt <pgrunt@redhat.com>
2015-11-09 14:51:19 +00:00
Marc-André Lureau
df716c5c53 worker: remove unused function
Acked-by: Pavel Grunt <pgrunt@redhat.com>
2015-11-09 14:50:45 +00:00
Marc-André Lureau
7eee2de67c worker: rename {put,ref}_red_drawable
Acked-by: Pavel Grunt <pgrunt@redhat.com>
2015-11-09 14:34:45 +00:00
Marc-André Lureau
88ce49b661 worker: s/destroy_surface/surface_unref
Acked-by: Frediano Ziglio <fziglio@redhat.com>
2015-11-09 11:34:43 +00:00
Frediano Ziglio
4ef2618f52 worker: remove unused parameter from remove_shadow
Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
2015-11-09 10:46:50 +00:00
Marc-André Lureau
e2a3d57735 worker: remove some useless counters
Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
2015-11-09 10:46:36 +00:00
Marc-André Lureau
cd15fcb627 dispatcher: remove receive_data and send_data functions
Use read_safe/write_safe instead which do the same stuff

Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
2015-11-09 10:25:32 +00:00
Marc-André Lureau
452edd8f7a server: create display and cursor channels in RedWorker constructor
Instead of requiring the dispatcher to send a message to the worker to
create the display channel and cursor channel, just create them when
the worker is created.

Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
2015-11-09 10:24:21 +00:00
Marc-André Lureau
ff1b0b88b8 worker: use RED_CHANNEL_CLIENT for dcc
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-06 13:38:03 +00:00
Pavel Grunt
6ebb2ebe2a spicevmc: Return early when instance has no device state
Same approach as in spice_server_char_device_wakeup().
Avoid segmentation fault when the webdav channel (spice port channel) is
used with the vnc display:
 #0  0x00007ffff7aab734 in spice_char_device_state_opaque_get (dev=0x0)
     at char_device.c:720
 #1  0x00007ffff7b0850c in spice_server_port_event (sin=<optimized out>, event=<optimized out>) at spicevmc.c:578
 #2  0x0000555555787ba4 in set_guest_connected (port=<optimized out>, guest_connected=1) at hw/char/virtio-console.c:89
 #3  0x0000555555678d7c in control_out (len=<optimized out>, buf=0x55555775c3a0, vser=0x5555578d1540) at /home/pgrunt/RH/qemu/hw/char/virtio-serial-bus.c:404
 #4  0x0000555555678d7c in control_out (vdev=0x5555578d1540, vq=0x555557941bc8)
     at /home/pgrunt/RH/qemu/hw/char/virtio-serial-bus.c:441
 #5  0x000055555588eb98 in aio_dispatch (ctx=0x5555562e1a50) at aio-posix.c:160
 #6  0x00005555558829ee in aio_ctx_dispatch (source=<optimized out>, callback=<optimized out>, user_data=<optimized out>) at async.c:226
 #7  0x00007ffff2010e3a in g_main_context_dispatch () at /lib64/libglib-2.0.so.0
 #8  0x000055555588d8fb in main_loop_wait () at main-loop.c:211
 #9  0x000055555588d8fb in main_loop_wait (timeout=<optimized out>)
     at main-loop.c:256
 #10 0x000055555588d8fb in main_loop_wait (nonblocking=<optimized out>)
     at main-loop.c:504
 #11 0x000055555561b664 in main () at vl.c:1891
2015-11-06 11:26:17 +01:00
Marc-André Lureau
e76f402952 worker: move shadow_new() and container_new()
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-06 10:10:40 +00:00
Marc-André Lureau
c9bb089869 worker: use more DCC_TO_WORKER
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-06 10:03:12 +00:00
Marc-André Lureau
ed70743f7c worker: move some compress stats to display
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-06 09:35:16 +00:00
Marc-André Lureau
e839dc23b3 worker: rename WORKER_FOREACH_DCC_SAFE macro to FOREACH_DCC
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-06 09:28:49 +00:00
Marc-André Lureau
de1ab756b0 worker: remove unused WORKER_TO_DCC macro
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-06 09:23:02 +00:00
Marc-André Lureau
13888ae6a2 worker: rename red_pipe_add_drawable* to dcc_add_drawable*
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-06 09:22:51 +00:00
Marc-André Lureau
f1c7bca4d4 worker: move delta computation
Move delta computation from red_add_drawable to red_current_add_with_shadow.

Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-06 09:16:02 +00:00
Marc-André Lureau
e603e96837 worker: move MonitorsConfig to display channel
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-05 12:40:55 +00:00
Marc-André Lureau
81cf3997db worker: minor simplification
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-05 11:13:25 +00:00
Frediano Ziglio
63b8ea5afb worker: don't process drawable if it can't be allocated
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-05 11:12:55 +00:00
Marc-André Lureau
d29ebe4590 worker: move DisplayChannel struct
Acked-by: Frediano Ziglio <fziglio@redhat.com>
2015-11-05 11:12:29 +00:00
Jonathon Jongsma
ac53e6a3c3 style: prefer early return to large if blocks
Acked-by: Frediano Ziglio <fziglio@redhat.com>
2015-11-04 18:25:50 +00:00
Jonathon Jongsma
b26c4a7898 Remove unnecessary typedef from pixmap-cache.h
Acked-by: Frediano Ziglio <fziglio@redhat.com>
2015-11-04 13:04:17 +00:00
Marc-André Lureau
5f1bdb2166 worker: Move some dpi code to display channel
This commit moves some DrawablePipeItem declarations to
display-channel.h, though the function implementations remain in
red_worker.c until they can be disentangled some more.

Acked-by: Frediano Ziglio <fziglio@redhat.com>
2015-11-04 13:03:53 +00:00
Fabiano Fidêncio
3cc2513d33 cursor: fix wrong logic when initializing the channel
It's a regression introduced by commit e601e920bd. The logic error was
introduced when trying to achieve the following code[0]. but rewritten
to prefer an early return, which was wrogly negated.

[0]:
if (cursor_is_connected(worker)
    && !COMMON_CHANNEL(worker->cursor_channel)->during_target_migrate) {
        red_channel_pipes_add_type(RED_CHANNEL(worker->cursor_channel),
                                   PIPE_ITEM_TYPE_CURSOR_INIT);
}

Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com>
Acked-by: Frediano Ziglio <fziglio@redhat.com>
2015-11-04 11:20:48 +00:00
Jonathon Jongsma
cf3ca136e6 Palette cache: Use correct marshal function
In order to invalidate a single palette cache item, we were using
spice_marshall_msg_cursor_inval_one(), which is the marshal function
used to send an invalidation message for the Cursor channel's cache.
This didn't cause any problems because SPICE_MSG_CURSOR_INVAL_ONE and
SPICE_MSG_DISPLAY_INVAL_PALETTE have the same message ID and parameters,
but it's better to use the correct marshalling function.

Acked-by: Frediano Ziglio <fziglio@redhat.com>
2015-11-04 11:09:35 +00:00
Marc-André Lureau
d8f89125fb Various changes in RedWorker and CursorChannel related to error and warning messages.
Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com>
Acked-by: Frediano Ziglio <fziglio@redhat.com>
2015-11-04 10:27:09 +00:00
Marc-André Lureau
fae3f7a062 Move monitors_config to display
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-04 10:00:08 +00:00
Marc-André Lureau
791d5a2d46 s/process_drawable/process_draw
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-04 09:46:38 +00:00
Marc-André Lureau
b323afa6e8 server: move renderer members to DisplayChannel
Acked-by: Frediano Ziglio <fziglio@redhat.com>
2015-11-03 17:18:33 +00:00
Frediano Ziglio
996ce40d7f worker: remove only assigned set_client_capabilities_pending field
This field is only assigned and never readed so can be removed.

Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-03 16:36:51 +00:00
Marc-André Lureau
23e17c2fc9 server: move bitmap related to spice-bitmap-utils
Also remove some unused function parameters from
bitmap_get_graduality_level()

Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
2015-11-03 16:32:26 +00:00
Marc-André Lureau
1a787f0e99 worker: remove unused worker parameter
Acked-by: Pavel Grunt <pgrunt@redhat.com>
Acked-by: Frediano Ziglio <fziglio@redhat.com>
2015-11-03 14:02:35 +00:00
Marc-André Lureau
d9a0629bc1 Store QXLInstance in CursorItem
Doing so allows us to remove the extra QXLInstance parameter from
cursor_item_unref() and makes the code a bit cleaner.

Also add cursor_item_ref().

Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com>
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-03 09:53:46 +00:00
Marc-André Lureau
e601e920bd server: make more of cursor private
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-03 09:07:18 +00:00
Marc-André Lureau
c9e3b058e4 server: make cursor channel private
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-03 09:06:55 +00:00
Marc-André Lureau
fb84cc956f Move pipe item enumerations out of red_worker.h
Move the cursor-specific pipe item types to cursor-channel.h, and the
display-specific types to red_worker.c. Only leave the common
definitions in red_worker.h. This prepares for splitting the display
channel into a separate file.

Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com>
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2015-11-02 16:02:23 +00:00
Marc-André Lureau
7198a06433 server: move display_channel_client_create() to dcc_new()
Move function from server/red_worker.c to new server/display-channel.c.

Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
Acked-by: Frediano Ziglio <fziglio@redhat.com>
2015-11-02 14:00:54 +00:00
Marc-André Lureau
372eb0072a tree: move that to a separate unit
Acked-by: Frediano Ziglio <fziglio@redhat.com>
2015-11-02 12:12:14 +00:00
Marc-André Lureau
9e42647101 worker: s/repoll/poll_tries
Acked-by: Frediano Ziglio <fziglio@redhat.com>
2015-11-02 09:46:41 +00:00
Marc-André Lureau
0eedafaf0c Various minor style changes to worker and cursor channel
Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com>
Acked-by: Frediano Ziglio <fziglio@redhat.com>
2015-10-30 17:55:59 +00:00
Marc-André Lureau
5c7e248445 worker: remove assertion on alloc_drawable
There is no guarantee in the code that this can't be hit, so we should
cope with it (the condition can be reached easily by running the server
without waiting for blocked clients or pipe size)

The following commit will attempt to address this.

Acked-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Christophe Fergeau <cfergeau@redhat.com>
2015-10-30 17:18:31 +00:00
Marc-André Lureau
2eb732bd4d __new_channel -> red_worker_new_channel()
Rename and lightly refactor the function that creates new common
channels for RedWorker (essentially Cursor and Display channels).

Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com>
Acked-by: Frediano Ziglio <fziglio@redhat.com>
2015-10-30 17:15:18 +00:00
Marc-André Lureau
2d934ed82e Make cursor_channel_disconnect a CursorChannel method
The first argument should be CursorChannel* rather than RedChannel*
since it's essentially a CursorChannel method.

Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com>
Acked-by: Frediano Ziglio <fziglio@redhat.com>
2015-10-30 16:56:13 +00:00
Francois Gouget
f2c8609985 server: Hide the MJPEG encoder internals from red_worker.c
Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
2015-10-30 15:35:47 +01:00
Francois Gouget
3708bf9cf0 server: Move the MJPEG encoder functions to mjpeg_encoder.c
Note that this requires some adjustments to the encode_frame()
parameters to avoid red_worker-specific types.

Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
2015-10-30 15:35:47 +01:00
Francois Gouget
fd451860df server: Move mjpeg_encoder_new() to the end of mjpeg_encoder.c
This also allows getting rid of a couple of forward definitions.

Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
2015-10-30 15:35:47 +01:00