On Thu, Jul 13, 2017 at 5:33 AM, Victor Toso <victortoso@xxxxxxxxxx> wrote: > From: Victor Toso <me@xxxxxxxxxxxxxx> > > This patch fixes the avdec_h264 element not being present on > gstvideo_has_codec() which get all decoder elements from GstRegistry > and filter them on our GstCaps in order to get the ones for given > codec. > > The issue is around the filtering. The current GstCaps for h264 is not > consider a subset of avdec_h264's capabilites and that will fiter this > element out of the list. > > The proposed solution for that is to set `subsetonly` parameter from > gst_element_factory_list_filter() to false. > > While at it, the cap "stream-format=byte-stream" is less useful now > because it isn't needed to play the stream - see 6fe88871240c53b8 > > In my system, our debug shows: > .. gstvideo_debug_available_decoders: From 228 video decoder elements, > - 4 can handle caps image/jpeg: jpegdec, nvdec, avdec_mjpeg, vaapijpegdec > - 3 can handle caps video/x-vp8: vaapidecodebin, vp8dec, avdec_vp8 > - 4 can handle caps video/x-h264: vaapidecodebin, avdec_h264, nvdec, vaapih264dec > - 3 can handle caps video/x-vp9: vaapidecodebin, vp9dec, avdec_vp9 > > Signed-off-by: Victor Toso <victortoso@xxxxxxxxxx> ack (you may add the irc log to the commit imho) > --- > src/channel-display-gst.c | 2 +- > src/channel-display-priv.h | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/src/channel-display-gst.c b/src/channel-display-gst.c > index 20d236a..1bd7df1 100644 > --- a/src/channel-display-gst.c > +++ b/src/channel-display-gst.c > @@ -647,7 +647,7 @@ gboolean gstvideo_has_codec(int codec_type) > } > > caps = gst_caps_from_string(gst_opts[codec_type].dec_caps); > - codec_decoders = gst_element_factory_list_filter(all_decoders, caps, GST_PAD_SINK, TRUE); > + codec_decoders = gst_element_factory_list_filter(all_decoders, caps, GST_PAD_SINK, FALSE); > gst_caps_unref(caps); > > if (codec_decoders == NULL) { > diff --git a/src/channel-display-priv.h b/src/channel-display-priv.h > index 04cb4d1..9bfd4ac 100644 > --- a/src/channel-display-priv.h > +++ b/src/channel-display-priv.h > @@ -181,7 +181,7 @@ static const struct { > * (hardcoded in spice-server), let's add it here to avoid the warning. > */ > { SPICE_DISPLAY_CAP_CODEC_H264, "h264", > - "h264parse ! avdec_h264", "video/x-h264,stream-format=byte-stream" }, > + "h264parse ! avdec_h264", "video/x-h264" }, > > /* SPICE_VIDEO_CODEC_TYPE_VP9 */ > { SPICE_DISPLAY_CAP_CODEC_VP9, "vp9", > -- > 2.13.0 > > _______________________________________________ > Spice-devel mailing list > Spice-devel@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/spice-devel -- Marc-André Lureau _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel