[PATCH 1/2] channel-display-gst: Prefer playbin3 to playbin (v2)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Linux Virtualization]     [Linux Virtualization]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]