From: Jin Chung Teng <jin.chung.teng@xxxxxxxxx> If playbin3 is available (checked in Gstreamer registry), it makes sense to prefer it given the major improvements and features it offers including the capability to handle higher bitrates. v2: (Frediano) - Cache the playbin3 is available check - Keep the playbin name for playbin3 element as well Cc: Frediano Ziglio <freddy77@xxxxxxxxx> Cc: Dongwon Kim <dongwon.kim@xxxxxxxxx> Cc: Hazwan Arif Mazlan <hazwan.arif.mazlan@xxxxxxxxx> Signed-off-by: Jin Chung Teng <jin.chung.teng@xxxxxxxxx> Signed-off-by: Vivek Kasireddy <vivek.kasireddy@xxxxxxxxx> --- src/channel-display-gst.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/channel-display-gst.c b/src/channel-display-gst.c index 36db3a3..5c9927b 100644 --- a/src/channel-display-gst.c +++ b/src/channel-display-gst.c @@ -495,11 +495,17 @@ static gboolean create_pipeline(SpiceGstDecoder *decoder) GstElement *playbin, *sink; SpiceGstPlayFlags flags; GstCaps *caps; + static bool playbin3_supported = true; - playbin = gst_element_factory_make("playbin", "playbin"); + playbin = playbin3_supported ? + gst_element_factory_make("playbin3", "playbin") : NULL; if (playbin == NULL) { - spice_warning("error upon creation of 'playbin' element"); - return FALSE; + playbin3_supported = false; + playbin = gst_element_factory_make("playbin", "playbin"); + if (playbin == NULL) { + spice_warning("error upon creation of 'playbin' element"); + return FALSE; + } } /* Passing the pipeline to widget, try to get window handle and -- 2.39.2