From: Victor Toso <me@xxxxxxxxxxxxxx> By using this environment variable, we could use decodebin to let GStreamer automatically find the best elements to get the streaming decoded. It was disable by default, in an attempt to have a easy way to test it. Follow up patch will use Playbin to create the pipeline which does the similar behavior but with less work to maintain the pipeline. Remove this in a separated patch to reduce the code changes. Signed-off-by: Victor Toso <victortoso@xxxxxxxxxx> Signed-off-by: Victor Toso <me@xxxxxxxxxxxxxx> --- src/channel-display-gst.c | 22 ++++------------------ 1 file changed, 4 insertions(+), 18 deletions(-) diff --git a/src/channel-display-gst.c b/src/channel-display-gst.c index 000e3a9..2a20763 100644 --- a/src/channel-display-gst.c +++ b/src/channel-display-gst.c @@ -54,12 +54,8 @@ static struct { const gchar *dec_name; const gchar *dec_caps; } gst_opts[] = { - /* decodebin will use vaapi if installed, which for a time could - * intentionally crash the application. So only use decodebin as a - * fallback or when SPICE_GSTVIDEO_AUTO is set. - * See: https://bugs.freedesktop.org/show_bug.cgi?id=90884 - */ - { "decodebin", "" }, + /* Spice' video codec type starts on index 1 */ + { NULL, NULL }, /* SPICE_VIDEO_CODEC_TYPE_MJPEG */ { "jpegdec", "image/jpeg" }, @@ -312,21 +308,10 @@ static gboolean handle_pipeline_message(GstBus *bus, GstMessage *msg, gpointer v static gboolean create_pipeline(SpiceGstDecoder *decoder) { gchar *desc; - gboolean auto_enabled; - guint opt; GstAppSinkCallbacks appsink_cbs = { NULL }; GError *err = NULL; GstBus *bus; - auto_enabled = (g_getenv("SPICE_GSTVIDEO_AUTO") != NULL); - if (auto_enabled || !VALID_VIDEO_CODEC_TYPE(decoder->base.codec_type)) { - SPICE_DEBUG("Trying %s for codec type %d %s", - gst_opts[0].dec_name, decoder->base.codec_type, - (auto_enabled) ? "(SPICE_GSTVIDEO_AUTO is set)" : ""); - opt = 0; - } else { - opt = decoder->base.codec_type; - } /* - We schedule the frame display ourselves so set sync=false on appsink * so the pipeline decodes them as fast as possible. This will also @@ -338,7 +323,8 @@ static gboolean create_pipeline(SpiceGstDecoder *decoder) desc = g_strdup_printf("appsrc name=src is-live=true format=time max-bytes=0 block=true " "caps=%s ! %s ! videoconvert ! appsink name=sink " "caps=video/x-raw,format=BGRx sync=false drop=false", - gst_opts[opt].dec_caps, gst_opts[opt].dec_name); + gst_opts[decoder->base.codec_type].dec_caps, + gst_opts[decoder->base.codec_type].dec_name); SPICE_DEBUG("GStreamer pipeline: %s", desc); decoder->pipeline = gst_parse_launch_full(desc, NULL, GST_PARSE_FLAG_FATAL_ERRORS, &err); -- 2.12.2 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel