[Spice-devel] [PATCH v7 01/23] protocol: Add support for the VP8 and h264 video codecs

Daniel P. Berrange berrange at redhat.com
Wed Dec 16 07:33:43 PST 2015


On Wed, Dec 16, 2015 at 04:16:04PM +0100, Francois Gouget wrote:
> Clients that support multiple codecs must advertise the
> SPICE_DISPLAY_CAP_MULTI_CODEC capability and one
> SPICE_DISPLAY_CAP_CODEC_XXX per supported codec.
> 
> Signed-off-by: Francois Gouget <fgouget at codeweavers.com>
> ---
>  configure.ac     | 2 +-
>  spice.proto      | 2 ++
>  spice/enums.h    | 2 ++
>  spice/protocol.h | 4 ++++
>  4 files changed, 9 insertions(+), 1 deletion(-)
> 
> Note:
> * This increases the version to 0.12.12 so the spice server and 
>   client can check for it. Adjust as appropriate.
> 
> diff --git a/configure.ac b/configure.ac
> index e8d118d..7486d81 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -2,7 +2,7 @@ AC_PREREQ([2.57])
>  
>  m4_define([SPICE_MAJOR], 0)
>  m4_define([SPICE_MINOR], 12)
> -m4_define([SPICE_MICRO], 11)
> +m4_define([SPICE_MICRO], 12)
>  
>  AC_INIT(spice-protocol, [SPICE_MAJOR.SPICE_MINOR.SPICE_MICRO], [], spice-protocol)
>  
> diff --git a/spice.proto b/spice.proto
> index 3bca900..b03d0db 100644
> --- a/spice.proto
> +++ b/spice.proto
> @@ -329,6 +329,8 @@ flags8 path_flags { /* TODO: C enum names changes */
>  
>  enum8 video_codec_type {
>      MJPEG = 1,
> +    VP8,
> +    H264,
>  };

I understand the general desire to support something better than
MJPEG, but what is the compelling rationale for adding both VP8
and H264, as opposed to just VP8 ?

Support for the H264 codec is pretty difficult given the open
source / free software hostile patent licensing situation around
it, which will effectively limit the ability to support it in
many spice server/client impls.

VP8 by comparison is open source friendly as its patents were
placed under an irrevokable royalty free license.

If we add H264 to the SPICE protocol then we are inevitably
going to cause interoperability issues with some clients not
being able to work with some servers & vica-verca. I think
this would be bad for SPICE in general - one of its strengths
over VNC is that we don't have fragmented codec support across
impls.

As such I'd much prefer to see us *only* add VP8 which is
not going to cause implementation problems wrt licensing,
and so will not cause the same kind of interoperability
issues as H264.

Regards,
Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|


More information about the Spice-devel mailing list