summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* usb-device-manager: Add spice_usb_device_manager_get_devices_with_filter ↵Hans de Goede2013-04-245-3/+48
| | | | | | (fdo#63807) Signed-off-by: Hans de Goede <hdegoede@redhat.com>
* usb-device-manager: Error check spice_usb_device_manager_device_to_libdev callsHans de Goede2013-04-241-2/+11
| | | | | | | Under Windows all calls to spice_usb_device_manager_device_to_libdev may fail, so error check them all. Signed-off-by: Hans de Goede <hdegoede@redhat.com>
* usb-device-manager: Avoid needless re-numeration of usb devs under LinuxHans de Goede2013-04-241-16/+31
| | | | | | | | | | | | | | libusb_get_device_list() is not exactly a cheap call (lots of sysfs and usbfs accesses), so it is worth to avoid it where possible. This patch restores the old (pre win32 support addition) of dealing with libusb-devices under Linux, it keeps the device from the first lookup in spice_usb_device_manager_add_dev cached and uses that throughout. This also means that spice_usb_device_manager_device_to_libdev can no longer fail under Linux, so no need to error check it. Signed-off-by: Hans de Goede <hdegoede@redhat.com>
* option: Allow multiple options in --disable-effectsChristophe Fergeau2013-04-231-20/+20
| | | | | | | | | Commit 82c367 added checks that the value passed to --disable-effects is valid, but it does not take into account that it's perfectly valid to pass multiple values separated by commas. This commit splits the value passed to --disable-effects and checks each component separatey. Fixes rhbz#955277
* Fix setting of SPICE_{GLIB,GTK}_REQUIRESChristophe Fergeau2013-04-231-4/+4
| | | | | | Because of a typo (REQUIRED vs REQUIRES), these variables only contained the last require that was set rather than a concatenation of all the needed libraries.
* Fix GNetworkAddress leak when opening spice sessionChristophe Fergeau2013-04-231-2/+7
|
* channel-display: trigger re-sync of audio playback latency when there are ↵Yonit Halperin2013-04-222-0/+11
| | | | | | | | frequent video frame drops This was added in order to respond more quickly when the audio and video playback are not synchronized, and when the latency between the client and the server is high (i.e., when the server response to the status is delayed).
* playback: support syncing the playback latency via sessionYonit Halperin2013-04-224-0/+26
|
* spice-pulse: adjust the playback latency when the min-latency property changesYonit Halperin2013-04-221-9/+59
| | | | | | | | | | | | | | If the current latency is smaller than the new min-latency value, we cork the playback till the target latency is achieved. Note: I didn't modify the prebuf configuration and used pa_stream_prebuf, because pulse updated the prebuf only if I set both prebuf and tlength to be target_latency*2. Then, due to the tlength growth, each time the playback latency deviated from the target latency, an underflow occurred. Since the latency that is computed by the server is not exact and is based on its current evaluation of the bit-rate, which is dynamic, it is better not to change the tlength (in order to avoid unnecessary underflows).
* channel-playback: support SPICE_MSG_PLAYBACK_LATENCYYonit Halperin2013-04-222-0/+31
| | | | | | | | Add a new property for minimum playback latency. This property is updated with the value from SPICE_MSG_PLAYBACK_LATENCY. I also increased the default latency from 100ms to 200ms in order to be more robust to different bandwidth settings. The patch also updates spice-common submodule.
* channel-display: video stream quality reportYonit Halperin2013-04-223-13/+113
| | | | | | Handle MSG_STREAM_ACTIVIATE_REPORT and send MSGC_STREAM_REPORT periodically, or when the playback is out of sync. The patch also updates spice-common submodule.
* channel-playback: provide access to playback properties via the sessionYonit Halperin2013-04-225-0/+82
| | | | | Support checking whether an audio playback is active and what its latency is.
* spice-pulse: update the playback latency automatically when it changesYonit Halperin2013-04-221-43/+26
|
* channel-display: collect and print video stream statsYonit Halperin2013-04-223-3/+73
| | | | also prints the number of underflows during a spice-pulse audio playback
* Revert "build-sys: keep common submodule up to date"Christophe Fergeau2013-04-122-2/+1
| | | | This reverts commit 5150285e1cba35570c29bd923df065d2c81f081e.
* session: enforce secure channelsMarc-André Lureau2013-04-113-4/+11
|
* option: add --spice-secure-channelsMarc-André Lureau2013-04-111-2/+45
|
* Add function to return Spice channel type from stringMarc-André Lureau2013-04-112-13/+28
|
* Add function to return list of supported channelsMarc-André Lureau2013-04-113-14/+23
|
* session: add secure-channels propertyMarc-André Lureau2013-04-112-1/+28
|
* channel: try TLS only onceMarc-André Lureau2013-04-111-1/+1
| | | | | A broken server may reply to switch to TLS again and again. spice-gtk should only try once.
* cosmetic: fix indentation and commentMarc-André Lureau2013-04-112-6/+6
|
* Release v0.19v0.19Marc-André Lureau2013-04-101-0/+10
|
* build-sys: bump spice-glib versionMarc-André Lureau2013-04-101-1/+1
| | | | new symbols in spice-glib, bump before release
* Update README/TODOMarc-André Lureau2013-04-102-31/+11
|
* spicy-ss: quit when channel errorMarc-André Lureau2013-04-101-0/+18
|
* Rename snappy to spicy-screenshotMarc-André Lureau2013-04-104-12/+12
| | | | | Following discussion on the ML: http://lists.freedesktop.org/archives/spice-devel/2013-April/012953.html
* build-sys: keep common submodule up to dateMarc-André Lureau2013-04-102-1/+2
| | | | | | This requires git 1.8.2 to work properly. With this we should no longer need to update the reference, assuming the tarball is always up to date (that doesn't change from before, you need to update the submodule)
* gnome-rr: keep user DPIAlex Efros2013-04-101-2/+53
| | | | | | | | I'm running startx -dpi 144, but after exiting from spicy's full screen mode Xorg DPI reset to 96. Attached patch fix this issue by keeping user's DPI. See also: https://bugs.gentoo.org/show_bug.cgi?id=448362 https://bugs.freedesktop.org/show_bug.cgi?id=58715
* build: fix parallel installTiziano Müller2013-04-101-0/+5
| | | | | | | | | | | | | This is a workaround for broken parallel install support in automake with LTLIBRARIES, see http://debbugs.gnu.org/cgi/bugreport.cgi?bug=7328 Broken parallel install can be reproduced when building with --with-gtk=2.0 and dies with: /home/teuf/redhat/spice-gtk/gtk/.libs/libspice-client-gtk-2.0.so: file not recognized: File truncated collect2: error: ld returned 1 exit status libtool: install: error: relink `SpiceClientGtk.la' with the above command before installing it make[5]: *** [install-pyexecLTLIBRARIES] Erreur 1 m
* Use a GHashTable for list of file transfer tasksChristophe Fergeau2013-04-101-21/+13
| | | | | | This list is used to lookup tasks by their numerical id, so a hash table is a more appropriate data structure for this kind of uses.
* spice-common: UpdateHans de Goede2013-04-101-0/+0
| | | | Signed-off-by: Hans de Goede <hdegoede@redhat.com>
* widget: don't send current configuration backMarc-André Lureau2013-04-091-2/+2
| | | | | | | spice-gtk keep the main channel monitor configuration in sync, but shouldn't send back to the remote if disabled, as this may results in different settings, for example if the remote has switched to 16 bits.
* main: add spice_main_update_display()Marc-André Lureau2013-04-094-6/+35
| | | | | Allow to change locally display resolution without sending it to remote, this is useful to keep local information without bothering the remote.
* channel_base: exit handle_migrate when expecting MIGRATE_DATA and receiving ↵Yonit Halperin2013-04-091-2/+4
| | | | | | | | something else Previously, when an error occurred on the src server side, and we received other message than MIGRATE_DATA, this messages was forwarded to the dest server, and made it crash.
* channel-main: Don't g_warn when not finding a file-xfer-idHans de Goede2013-04-091-2/+4
| | | | | | | | | | | | Since the agent channel can have a significant latency, it is possible for a cancel send from the client to the agent and a status message from the agent to cross each other. If this happens then the file-xfer will no longer be on the list. Printing a g_warning on this (rare but triggerable) condition will only get us hard to debug bug reports, so turn it into a SPICE_DEBUG. Signed-off-by: Hans de Goede <hdegoede@redhat.com>
* channel-main: Cancel active file-xfers on channel/agent disconnectHans de Goede2013-04-091-0/+12
| | | | Signed-off-by: Hans de Goede <hdegoede@redhat.com>
* channel-main: Check no callbacks are pending on xfer start and endHans de Goede2013-04-091-0/+8
| | | | | | | We should never have pending callbacks when we receive a file-xfer start or end (success) message from the agent. Signed-off-by: Hans de Goede <hdegoede@redhat.com>
* channel-main: Don't call g_input_stream_close on a NULL streamHans de Goede2013-04-091-0/+5
| | | | | | | If we fail to open a file, task->file_stream will be NULL, so we should not call g_input_stream_close on it. Signed-off-by: Hans de Goede <hdegoede@redhat.com>
* channel-main: Allow calling file_xfer_close_cb with a NULL objectHans de Goede2013-04-091-7/+8
| | | | | | | | | So that it can used for cleanup before we've a file_stream. Note this also gets rid of the weird double initialization of the local stream variable. Signed-off-by: Hans de Goede <hdegoede@redhat.com>
* channel-main: Don't close the file_stream if callbacks are pendingHans de Goede2013-04-091-9/+30
| | | | | | | | | | | | | | If file_xfer_completed gets called while callbacks are pending we should not call g_input_stream_close_async, because: 1) Doing so while another operation is pending on the file_stream will fail 2) Doing so while a non file_stream callback is pending may result in the task being freed before the callback runs, resulting in a use after free. This patch fixes this by setting a pending flag when any callbacks are scheduled, and clearing it when it runs + checking for task->error from all callbacks and if that is set call file_xfer_completed again. Signed-off-by: Hans de Goede <hdegoede@redhat.com>
* channel-main: Use file_xfer_completed where appropriateHans de Goede2013-04-091-26/+11
| | | | Signed-off-by: Hans de Goede <hdegoede@redhat.com>
* channel-main: file_xfer_failed -> file_xfer_completedHans de Goede2013-04-091-7/+8
| | | | | | Make file_xfer_failed usable for all file_stream closing. Signed-off-by: Hans de Goede <hdegoede@redhat.com>
* channel-main: Make SpiceFileXferTask-s ref the channelHans de Goede2013-04-091-1/+2
| | | | | | So that the channel sticks around while their callbacks are completing. Signed-off-by: Hans de Goede <hdegoede@redhat.com>
* channel-main: Reset agent message receive state on agent stopHans de Goede2013-04-091-5/+2
| | | | | | Discard any partially received messages from the agent on agent stop. Signed-off-by: Hans de Goede <hdegoede@redhat.com>
* channel-main: Add a spice_main_channel_reset_agent helper functionHans de Goede2013-04-091-3/+15
| | | | Signed-off-by: Hans de Goede <hdegoede@redhat.com>
* channel-main: Drop bogus xfer_id check from file_xfer_send_start_msg_asyncHans de Goede2013-04-091-2/+0
| | | | | | | | xfer_id > UINT32_MAX is never true since xfer_id is an uint32_t, and thus explicit wrapping is not necessary since it will wrap every UINT32_MAX + 1 itereations anyways. Signed-off-by: Hans de Goede <hdegoede@redhat.com>
* channel-main: Properly verify result in spice_main_file_copy_finishHans de Goede2013-04-091-2/+3
| | | | | | | Call g_simple_async_result_is_valid on the passed in result to verify it is what we expect. Signed-off-by: Hans de Goede <hdegoede@redhat.com>
* channel-main: Call g_simple_async_result_is_valid firstHans de Goede2013-04-091-5/+3
| | | | | | Call g_simple_async_result_is_valid before using the result. Signed-off-by: Hans de Goede <hdegoede@redhat.com>
* Revert "channel-main: Fix dangling references to freed file-xfer-tasks on ↵Hans de Goede2013-04-091-17/+0
| | | | | | | | | | | | | | | | | | | | | | agent cancel" The fix from commit 19313a133af0d2404b29914b5937219127ad455b is incomplete, this commit added code to file_xfer_close_cb, to remove any reference to the task being closed from the flushing queue. But file_xfer_flushed / file_xfer_flush_async execute file_xfer_data_flushed_cb from an idle handler, so it is possible that when file_xfer_close_cb runs and frees the task, it is not part of the flushing queue, but a file_xfer_data_flushed_cb with the task as user_data argument still needs to run, and when it will run it will refer to the now freed task. A related problem which is also addressed in this patchset happens when we receive a file-xfer-cancel from the agent when an async operation on the file_stream is pending, since we then cannot call g_input_stream_close_async on it. This is fixed in the patchset by adding a pending flag to the task struct, and the problem with pending flushes is solved in the same way. Signed-off-by: Hans de Goede <hdegoede@redhat.com>