[Spice-devel] [PATCH spice-server] Support VP9 encoder using GStreamer
Victor Toso
victortoso at redhat.com
Tue Jan 31 07:25:17 UTC 2017
Hi,
On Thu, Jan 05, 2017 at 03:01:52PM +0000, Frediano Ziglio wrote:
> Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
> ---
> configure.ac | 2 +-
> server/gstreamer-encoder.c | 4 ++++
> server/reds.c | 4 +++-
> 3 files changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/configure.ac b/configure.ac
> index a78b4ec..c155c35 100644
> --- a/configure.ac
> +++ b/configure.ac
You could also add the SPICE_CHECK_GSTREAMER_ELEMENTS for vp9enc
Besides that, works fine and
Acked-by: Victor Toso <victortoso at redhat.com>
> @@ -142,7 +142,7 @@ AS_IF([test x"$have_smartcard" = "xyes"], [
> AS_VAR_APPEND([SPICE_REQUIRES], [" libcacard >= 0.1.2"])
> ])
>
> -SPICE_PROTOCOL_MIN_VER=0.12.12
> +SPICE_PROTOCOL_MIN_VER=0.12.13
> PKG_CHECK_MODULES([SPICE_PROTOCOL], [spice-protocol >= $SPICE_PROTOCOL_MIN_VER])
> AC_SUBST([SPICE_PROTOCOL_MIN_VER])
>
> diff --git a/server/gstreamer-encoder.c b/server/gstreamer-encoder.c
> index 988d193..cb0af49 100644
> --- a/server/gstreamer-encoder.c
> +++ b/server/gstreamer-encoder.c
> @@ -878,6 +878,8 @@ static const gchar* get_gst_codec_name(SpiceGstEncoder *encoder)
> return "vp8enc";
> case SPICE_VIDEO_CODEC_TYPE_H264:
> return "x264enc";
> + case SPICE_VIDEO_CODEC_TYPE_VP9:
> + return "vp9enc";
> default:
> /* gstreamer_encoder_new() should have rejected this codec type */
> spice_warning("unsupported codec type %d", encoder->base.codec_type);
> @@ -907,6 +909,7 @@ static gboolean create_pipeline(SpiceGstEncoder *encoder)
> gstenc_opts = g_strdup("max-threads=1");
> #endif
> break;
> + case SPICE_VIDEO_CODEC_TYPE_VP9:
> case SPICE_VIDEO_CODEC_TYPE_VP8: {
> /* See http://www.webmproject.org/docs/encoder-parameters/
> * - Set mode/end-usage to get a constant bitrate to help with
> @@ -1694,6 +1697,7 @@ VideoEncoder *gstreamer_encoder_new(SpiceVideoCodecType codec_type,
> SPICE_VERIFY(SPICE_GST_FRAME_STATISTICS_COUNT <= SPICE_GST_HISTORY_SIZE);
> spice_return_val_if_fail(codec_type == SPICE_VIDEO_CODEC_TYPE_MJPEG ||
> codec_type == SPICE_VIDEO_CODEC_TYPE_VP8 ||
> + codec_type == SPICE_VIDEO_CODEC_TYPE_VP9 ||
> codec_type == SPICE_VIDEO_CODEC_TYPE_H264, NULL);
>
> GError *err = NULL;
> diff --git a/server/reds.c b/server/reds.c
> index 3b30928..e831ab7 100644
> --- a/server/reds.c
> +++ b/server/reds.c
> @@ -3405,7 +3405,7 @@ err:
>
> static const char default_renderer[] = "sw";
> #if defined(HAVE_GSTREAMER_1_0) || defined(HAVE_GSTREAMER_0_10)
> -#define GSTREAMER_CODECS "gstreamer:mjpeg;gstreamer:h264;gstreamer:vp8;"
> +#define GSTREAMER_CODECS "gstreamer:mjpeg;gstreamer:h264;gstreamer:vp8;gstreamer:vp9;"
> #else
> #define GSTREAMER_CODECS ""
> #endif
> @@ -3501,6 +3501,7 @@ static const EnumNames video_codec_names[] = {
> {SPICE_VIDEO_CODEC_TYPE_MJPEG, "mjpeg"},
> {SPICE_VIDEO_CODEC_TYPE_VP8, "vp8"},
> {SPICE_VIDEO_CODEC_TYPE_H264, "h264"},
> + {SPICE_VIDEO_CODEC_TYPE_VP9, "vp9"},
> {0, NULL},
> };
>
> @@ -3508,6 +3509,7 @@ static const int video_codec_caps[] = {
> SPICE_DISPLAY_CAP_CODEC_MJPEG,
> SPICE_DISPLAY_CAP_CODEC_VP8,
> SPICE_DISPLAY_CAP_CODEC_H264,
> + SPICE_DISPLAY_CAP_CODEC_VP9,
> };
>
>
> --
> 2.9.3
>
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/spice-devel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/spice-devel/attachments/20170131/69b5da71/attachment.sig>
More information about the Spice-devel
mailing list