Commit Graph

498 Commits

Author SHA1 Message Date
Michael Scherle
d72466053e added upsampling variants 2025-05-12 11:49:11 +02:00
Michael Scherle
1c6ea5851b added support for AV1 and 4:4:4 support for Vp9, h264, h265 and AV1 2025-05-12 11:49:02 +02:00
Marc-André Lureau
c5c2f26422 Release v0.14.5
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2025-04-30 11:28:57 +04:00
correctmost
3a9e3668f1 build-sys: Fix build error when sanitizers are enabled
Re-running 'meson setup' with sanitizer flags caused the following
error: 'ERROR: Unknown options: "b_lundef, b_sanitize"'

This is a workaround for an upstream Meson issue:
https://github.com/mesonbuild/meson/issues/13651

Signed-off-by: correctmost <126085-correctmost@users.noreply.gitlab.freedesktop.org>
Signed-off-by: Frediano Ziglio <freddy77@gmail.com>
2025-04-02 06:39:27 +01:00
Qiang Yu
2117405f95 Add enum for gl scanout2 message
This message is a replacement for the original gl scanout
message which does not support multi plane and modifier.

Signed-off-by: Qiang Yu <yuq825@gmail.com>
2025-03-23 20:54:09 +08:00
Akihiko Odaki
c92b54a55f Define SPICE_ENDIAN for MSVC Arm64
It is necessary to build for Windows Arm64.

Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
2025-03-01 01:05:37 +09:00
Victor Toso
4f31c18536 build-sys: post-release version bump 0.14.5
Signed-off-by: Victor Toso <victortoso@redhat.com>
2022-02-10 12:13:32 +01:00
Victor Toso
6f453a775d Release 0.14.4
Signed-off-by: Victor Toso <victortoso@redhat.com>
2022-02-07 13:14:43 +00:00
Frediano Ziglio
7aaa521361 ci: Remove invalid option from rpmlint
The "-o" option is not accepted anymore by rpmlint on newer Fedora.

Signed-off-by: Frediano Ziglio <freddy77@gmail.com>
2022-02-07 12:44:14 +00:00
Stefan Weil
969baca93e stream-device: Fix some typos in comments (found by codespell)
Signed-off-by: Stefan Weil <sw@weilnetz.de>
2021-04-09 19:03:59 +02:00
Frediano Ziglio
06aa9375ad Add some notes on how to prepare a release
That's what I did for last release.

Signed-off-by: Frediano Ziglio <freddy77@gmail.com>
Acked-by: Jakub Janků <jjanku@redhat.com>
2021-01-19 13:23:49 +00:00
Frediano Ziglio
ce0c4211e6 protocol: Fix enumeration deprecation for Visual Studio
Deprecation on enumeration items is not supported by Microsoft
compiler.
Define and use SPICE_GNUC_DEPRECATED_ENUMERATOR.

Signed-off-by: Frediano Ziglio <freddy77@gmail.com>
Acked-by: Uri Lublin <uril@redhat.com>
2020-11-04 12:14:48 +00:00
Frediano Ziglio
3c4309a517 build-sys: post-release version bump to 0.14.4
Signed-off-by: Frediano Ziglio <freddy77@gmail.com>
2020-10-01 09:49:11 +01:00
Frediano Ziglio
90b57dace4 Release 0.14.3
Signed-off-by: Frediano Ziglio <freddy77@gmail.com>
Acked-by: Victor Toso <victortoso@redhat.com>
2020-10-01 09:20:21 +01:00
Marc-André Lureau
6918bacfe5 vdagent: add a MonitorsMM field to VDAgentMonitorsConfig
Allow to update the physcial dimensions of the monitors,
only sent if the flag PHYSICAL_SIZE is present.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Frediano Ziglio <fziglio@redhat.com>
2020-09-14 09:41:01 +01:00
SimonP
cbe7b2c285 protocol: Add support for side mouse buttons
Side mouse buttons currently do not exist in the protocol, causing them
to be inexplicably ignored by VMs in virt-manager and such. This lays
the groundwork for fixing that issue.

Acked-by: Frediano Ziglio <fziglio@redhat.com>
2020-08-19 15:11:38 +01:00
Frediano Ziglio
11af68a513 build: Do not use mingw_ninja_install macro in spec file
Some distribution like RHEL 8 does not define this macro.
Use mingw_ninja instead.

Signed-off-by: Frediano Ziglio <freddy77@gmail.com>
Acked-by: Uri Lublin <uril@redhat.com>
2020-08-10 09:52:07 +01:00
Jakub Janků
7689b6922b vdagent: add VD_AGENT_CLIPBOARD_FILE_LIST
Signed-off-by: Jakub Janků <jjanku@redhat.com>
Acked-by: Frediano Ziglio <fziglio@redhat.com>
2020-07-08 15:47:41 +01:00
Jakub Janků
55ff87d93c build-sys: post-release version bump to 0.14.3
Signed-off-by: Jakub Janků <jjanku@redhat.com>
Acked-by: Frediano Ziglio <fziglio@redhat.com>
2020-07-08 13:29:33 +01:00
Frediano Ziglio
959717a3a2 Release 0.14.2
Signed-off-by: Frediano Ziglio <freddy77@gmail.com>
Acked-by: Victor Toso <victortoso@redhat.com>
2020-05-15 15:17:17 +01:00
Frediano Ziglio
dcf21aafb9 vd_agent: Add some documentation
Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Victor Toso <victortoso@redhat.com>
2020-05-15 14:32:40 +01:00
Victor Toso
5ab1474cb5 Formally deprecated celt 0.5.1 usage
Quoting git log from spice-common 72b0d60 "build: Disable celt 0.5.1
by default" in 2018-06-05 [0]

  |  build: Disable celt 0.5.1 by default
  |
  |  This version of the CELT codec has long been obsolete, and
  |  Opus support has been added nearly 5 years ago. It's time
  |  we move on and try to stop using Celt ;)
  |  This commit disables CELT by default, but since
  |  this could be an unexpected change for packagers, if CELT
  |  0.5.1 development headers are installed, it will error
  |  out unless --enable-celt051/--disable-celt051 has
  |  been explicitly specified.

[0] https://gitlab.freedesktop.org/spice/spice-common/commit/72b0d60

This change is part of spice server since f5785db1 or v0.14.1 and
spice-gtk e6e9d7a or v0.35.

It is time to formally deprecated it and remove from all  components
in favor of opus mode.

Signed-off-by: Victor Toso <victortoso@redhat.com>
Acked-by: Frediano Ziglio <fziglio@redhat.com>
2020-04-07 10:31:57 +01:00
Kevin Pouget
896aacee50 enums: add quality_indicator messages
These messages are used to exchange Streaming Quality messages between
SPICE client and SPICE server:

- `SPICE_MSGC_MAIN_QUALITY_INDICATOR`: a client->server message on the
  Main channel. This message is used by the client to share streaming
  quality observation with the server and the adaptive streaming
  control center. The format of the string message is not specified
  yet, it will depend of the sender/receiver final implementation.

- `SPICE_MSG_DISPLAY_QUALITY_INDICATOR`: a server->client message on
  the Display channel. This message is used to inform the client about
  adaptive-streaming specific details. The client should use it to
  configure its quality-message generation algorithms. The format of
  the string message is not specified yet, it will depend of the
  sender/receiver final implementation.

As an example, a `SPICE_MSG_DISPLAY_QUALITY_INDICATOR` message can
inform the client about the requested framerate (say, 60 FPS); and the
client will send a `SPICE_MSGC_MAIN_QUALITY_INDICATOR` warning message
when the measured framerate drops below 45 FPS.

Signed-off-by: Kevin Pouget <kpouget@redhat.com>
Acked-by: Frediano Ziglio <fziglio@redhat.com>
2020-04-02 13:34:35 +01:00
Frediano Ziglio
2d3324b899 vd_agent: Fix incompatibility with Microsoft compiler
Do not nest a zero-size array in another zero size array.

Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Marek Kedzierski <mkedzier@redhat.com>
2020-04-01 12:24:57 +01:00
Frediano Ziglio
edd2bb7143 vd_agent: Add some documentation
Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Victor Toso <victortoso@redhat.com>
2020-03-26 09:31:02 +00:00
Frediano Ziglio
0ceb92087e vd_agent: Fix indentation
Use 4 spaces, not 3.

Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
2020-03-20 08:55:13 +00:00
Frediano Ziglio
dfc27e60d7 vd_agent: Add structure for VD_AGENT_FILE_XFER_STATUS_NOT_ENOUGH_SPACE details
Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Victor Toso <victortoso@redhat.com>
2020-03-19 14:36:05 +00:00
Frediano Ziglio
f224422c0d vd_agent: Add a new detail for VD_AGENT_FILE_XFER_STATUS_ERROR status
This will allow the agent to send back a more detailed error code.
More comments on header file.

Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Victor Toso <victortoso@redhat.com>
2020-03-19 14:35:58 +00:00
Frediano Ziglio
f79ad62a6d build-sys: Allows spec file to build MingW packages
Add MingW support. This allows to build MingW packages easily with a

  $ rpmbuild -ta spice-protocol-XXXX.tar.xz

This is base on some work by Eduardo Lima adding MingW support to SPEC
files.
Part of dependencies, description and names came from Fedora SPEC file
for mingw-spice-protocol package.

Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Signed-off-by: Victor Toso <victortoso@redhat.com>
Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>
2020-03-12 15:14:42 +00:00
Victor Toso
b0891e4c79 Remove foreign-menu and controller interfaces
Both were formally deprecated and announced for 0.14.1 release and can
be removed from the codebase.

    4816ae5 "foreign-menu: mark as deprecated" in 2020-03-06
    2981f21 "controller: mark as deprecated" in 2020-03-06

Signed-off-by: Victor Toso <victortoso@redhat.com>
Acked-by: Frediano Ziglio <fziglio@redhat.com>
2020-03-10 16:07:48 +00:00
Frediano Ziglio
e3dcbcb72f Package SPEC file into Meson distribution file
Put final SPEC file in GIT repository directly to avoid having
to bump Meson version to use distribution script. To avoid
having incoherent version numbers check the versions from CI.
Remove 'c' as project language, project don't need to compile
any files.
Meson however needs C compiler even if is not used so add to package
requirements.
Update CI to build RPM from package directly.

Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>
2020-03-09 19:00:42 +00:00
Eduardo Lima (Etrunko)
33946522aa Remove autotools files in favor of meson
Signed-off-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>
Acked-by: Frediano Ziglio <fziglio@redhat.com>
2020-03-09 19:00:36 +00:00
Eduardo Lima (Etrunko)
bbad3fb944 Update spec file and ci script to use meson as default
Signed-off-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>
Acked-by: Frediano Ziglio <fziglio@redhat.com>
2020-03-09 19:00:28 +00:00
Frediano Ziglio
0724605efc build-sys: post-release version bump 0.14.2
Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
2020-03-09 10:35:54 +00:00
Victor Toso
e0ec178a72 Release 0.14.1
Signed-off-by: Victor Toso <victortoso@redhat.com>
2020-03-06 17:05:07 +01:00
Frediano Ziglio
47c931ce2f build: Fix typo in SPEC file name
Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
2020-03-06 13:45:38 +00:00
Victor Toso
4816ae58d2 foreign-menu: mark as deprecated
This patch deprecates this interface and suggests to drop it in the
next release.

I don't know any user for this interface in the past 5 years. Spice
clients like remote-viewer do use oVirt API for foreign menu.

Signed-off-by: Victor Toso <victortoso@redhat.com>
Acked-by: Frediano Ziglio <fziglio@redhat.com>
2020-03-06 10:46:00 +00:00
Victor Toso
2981f214d3 controller: mark as deprecated
This patch deprecates this interface and suggests to drop it in the
next release.

The last known user of this interface was spice-gtk, which dropped its
implementation in 2017-08-01 with

    spice-gtk@8da3378f "build-sys: remove the spice-controller library"

The commit log there has good enough justification to also drop this
in the protocol.

Signed-off-by: Victor Toso <victortoso@redhat.com>
Acked-by: Frediano Ziglio <fziglio@redhat.com>
2020-03-06 10:45:55 +00:00
Marc-André Lureau
045a6978d6 vdagent: introduce VD_AGENT_CAP_CLIPBOARD_GRAB_SERIAL
When this capability is negoticated by both the client & the agent,
the clipboard grab messages have an associated serial counter.

The serial is reset to 0 upon client connection.

The counter is increment by 1 on each grab message, by both sides.

The sender of the message with the highest serial should be the
clipboard grab owner, and the current session serial should be
updated.

If a lower serial than the current session serial is received, the
grab should be discarded.

Whenever two grabs share the same serial, the one coming from the
client should have a higher priority and the client should gain the
clipboard ownership.

No special treatement is done for the unlikely case of overflowing the
counter. It may temporarily inverse the priority, until both side have
overflown and/or synchronized.

Note: this mechanism isn't aiming at making "the most recent" (as in
time) side gaining the ownership. One side sending subsequent grab
messages earlier will likely take the ownership over a side sending a
single message simultaneously the other way. It only clears the
situation where both side believe that the other is the current
clipboard owner, by having a global ordering and priority in case of
serial conflict.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Acked-by: Victor Toso <victortoso@redhat.com>
2020-03-06 09:24:31 +01:00
Marc-André Lureau
4f397d695d vdagent: introduce VD_AGENT_CAP_CLIPBOARD_NO_RELEASE_ON_REGRAB
This capability means the peer will not send a release event between
two subsequent grabs. This helps with interaction issues with
clipboard managers which can be worked around by time-based filters at
this point. With this capability, there is no need for such filter.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Acked-by: Victor Toso <victortoso@redhat.com>
2020-03-06 09:24:26 +01:00
Eduardo Lima (Etrunko)
08a3c23407 meson: generate spice-protocol.spec
Signed-off-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>
Acked-by: Frediano Ziglio <fziglio@redhat.com>
2020-03-04 12:35:35 +00:00
Victor Toso
faed1bf410 vdi_dev: remove deprecated header
Deprecated since 2d7bf3e "vdi-dev: mark as deprecated" in 2014-12-04
and version 0.12.8.

Signed-off-by: Victor Toso <victortoso@redhat.com>
2020-03-02 18:23:16 +01:00
Victor Toso
1366a78cac vd_agent: remove VD_AGENT_CLIPBOARD_MAX_SIZE_[DEFAULT ENV]
Not used since fc1e7e "Mark VD_AGENT_CLIPBOARD_MAX as deprecated" in
2013-11-14, release v0.12.7

Signed-off-by: Victor Toso <victortoso@redhat.com>
2020-03-02 18:15:24 +01:00
Marc-André Lureau
01f49a97bd Add a .gitpublish
Set a default profile for git-publish.
(https://github.com/stefanha/git-publish)

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Acked-by: Frediano Ziglio <fziglio@redhat.com>
2020-02-29 13:22:26 +00:00
Kevin Pouget
96d7dd9eef stream-device: Define Quality Indicator messages
These messages are used to transmit streaming quality indicators from
the streaming device to SPICE Server.

The message is a variable-length, zero-terminated string.

A new capability is introduced (STREAM_CAP_QUALITY_INDICATOR) for
SPICE server and streaming agent capabilities negotiation.

Signed-off-by: Kevin Pouget <kpouget@redhat.com>
Acked-by: Frediano Ziglio <fziglio@redhat.com>
2019-11-08 14:35:48 +00:00
Kevin Pouget
8ee9c7822c protocol: Define an enumeration for Quality Indicator messages
These messages are used to transmit streaming quality indicators from
SPICE client to SPICE server.

The message data structure is defined in spice-common/spice.proto:

    message {
        Data data @to_ptr;
    } @declare quality_indicator;

Signed-off-by: Kevin Pouget <kpouget@redhat.com>
Acked-by: Frediano Ziglio <fziglio@redhat.com>
2019-11-08 14:35:44 +00:00
Denis Ollier
dbbe765a7e build-sys: remove codegen leftovers
Codegen has been removed since v0.12.11 (commit 2a6e51c7), no python
modules are used anymore by spice-protocol.

Signed-off-by: Denis Ollier <dollierp@redhat.com>
Acked-by: Frediano Ziglio <fziglio@redhat.com>
2019-11-04 15:48:26 +00:00
Frediano Ziglio
18c9917a71 build-sys: Provide spec file during build
Having the RPM spec file produced by the build is helpful in
different situation. Different tools like mock or code
scanners accept source RPMs as input.
Providing this file allows easily build of the source RPM (and
binaries) using a simple command like

  $ rpmbuild -ta spice-protocol-XXXX.tar.bz2

Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Signed-off-by: Victor Toso <victortoso@redhat.com>
Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>
2019-10-23 12:58:06 +01:00
Frediano Ziglio
21b06e6585 build-sys: Update URL in SPEC file
Use https instead of http, web server automatically redirects
to secure version.
Remove slash at the end, not needed.

Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>
2019-10-23 12:58:03 +01:00
Frediano Ziglio
fe0df3c546 build-sys: Import spec file from Fedora
Will be used by next commits.
The SPEC file will allow to an RPM from sources with a simple
rpmbuild command.
Package files are useful for easy deployment.
This will also be used to provide automatic package build.
This commit just contain a verbatim copy of upstream SPEC file
to make easier to see changes to it and have a start point.

Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>
2019-10-23 12:57:57 +01:00