[Spice-devel] [PATCH spice-gtk v2] streaming: Unify codec checking

Victor Toso victortoso at redhat.com
Fri Feb 3 14:06:16 UTC 2017


Hi,

On Fri, Feb 03, 2017 at 02:27:01PM +0100, Pavel Grunt wrote:
> Avoid copy-pasting to add a new codec

Looks good to me,
Acked-by: Victor Toso <victortoso at redhat.com>

> ---
>  src/channel-display.c | 41 ++++++++++++++++++-----------------------
>  1 file changed, 18 insertions(+), 23 deletions(-)
> 
> diff --git a/src/channel-display.c b/src/channel-display.c
> index 06d433b..ad92fab 100644
> --- a/src/channel-display.c
> +++ b/src/channel-display.c
> @@ -701,6 +701,18 @@ static HDC create_compatible_dc(void)
>  
>  static void spice_display_channel_reset_capabilities(SpiceChannel *channel)
>  {
> +    guint i;
> +    static const struct {
> +        SpiceVideoCodecType type;
> +        int cap;
> +        const gchar name[8];
> +    } gst_codecs[] = {
> +        {SPICE_VIDEO_CODEC_TYPE_MJPEG, SPICE_DISPLAY_CAP_CODEC_MJPEG, "mjpeg"},
> +        {SPICE_VIDEO_CODEC_TYPE_VP8, SPICE_DISPLAY_CAP_CODEC_VP8, "vp8"},
> +        {SPICE_VIDEO_CODEC_TYPE_H264, SPICE_DISPLAY_CAP_CODEC_H264, "h264"},
> +        {SPICE_VIDEO_CODEC_TYPE_VP9, SPICE_DISPLAY_CAP_CODEC_VP9, "vp9"},
> +    };
> +
>      spice_channel_set_capability(SPICE_CHANNEL(channel), SPICE_DISPLAY_CAP_SIZED_STREAM);
>      spice_channel_set_capability(SPICE_CHANNEL(channel), SPICE_DISPLAY_CAP_MONITORS_CONFIG);
>      spice_channel_set_capability(SPICE_CHANNEL(channel), SPICE_DISPLAY_CAP_COMPOSITE);
> @@ -718,29 +730,12 @@ static void spice_display_channel_reset_capabilities(SpiceChannel *channel)
>  #ifdef HAVE_BUILTIN_MJPEG
>      spice_channel_set_capability(SPICE_CHANNEL(channel), SPICE_DISPLAY_CAP_CODEC_MJPEG);
>  #endif
> -    if (gstvideo_has_codec(SPICE_VIDEO_CODEC_TYPE_MJPEG)) {
> -        spice_channel_set_capability(SPICE_CHANNEL(channel),
> -                                     SPICE_DISPLAY_CAP_CODEC_MJPEG);
> -    } else {
> -        SPICE_DEBUG("GStreamer does not support the mjpeg codec");
> -    }
> -    if (gstvideo_has_codec(SPICE_VIDEO_CODEC_TYPE_VP8)) {
> -        spice_channel_set_capability(SPICE_CHANNEL(channel),
> -                                     SPICE_DISPLAY_CAP_CODEC_VP8);
> -    } else {
> -        SPICE_DEBUG("GStreamer does not support the vp8 codec");
> -    }
> -    if (gstvideo_has_codec(SPICE_VIDEO_CODEC_TYPE_H264)) {
> -        spice_channel_set_capability(SPICE_CHANNEL(channel),
> -                                     SPICE_DISPLAY_CAP_CODEC_H264);
> -    } else {
> -        SPICE_DEBUG("GStreamer does not support the h264 codec");
> -    }
> -    if (gstvideo_has_codec(SPICE_VIDEO_CODEC_TYPE_VP9)) {
> -        spice_channel_set_capability(SPICE_CHANNEL(channel),
> -                                     SPICE_DISPLAY_CAP_CODEC_VP9);
> -    } else {
> -        SPICE_DEBUG("GStreamer does not support the vp9 codec");
> +    for (i = 0; i < G_N_ELEMENTS(gst_codecs); i++) {
> +        if (gstvideo_has_codec(gst_codecs[i].type)) {
> +            spice_channel_set_capability(SPICE_CHANNEL(channel), gst_codecs[i].cap);
> +        } else {
> +            SPICE_DEBUG("GStreamer does not support the %s codec", gst_codecs[i].name);
> +        }
>      }
>  }
>  
> -- 
> 2.11.0
> 
> _______________________________________________
> 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/20170203/f580d34f/attachment.sig>


More information about the Spice-devel mailing list