avvidenc/dec: Disable more hardware encoder/decoders
authorleigh123linux@googlemail.com <leigh123linux@googlemail.com>
Fri, 11 Nov 2016 16:03:00 +0000 (16:03 +0000)
committerSebastian Dröge <sebastian@centricular.com>
Sat, 12 Nov 2016 08:33:51 +0000 (10:33 +0200)
Important when using a system ffmpeg/libav.

https://bugzilla.gnome.org/show_bug.cgi?id=774278

ext/libav/gstavviddec.c
ext/libav/gstavvidenc.c

index 53f4f67..65a3253 100644 (file)
@@ -2245,6 +2245,13 @@ gst_ffmpegviddec_register (GstPlugin * plugin)
       goto next;
     }
 
+    if (g_str_has_suffix (in_plugin->name, "_qsv")) {
+      GST_DEBUG
+          ("Ignoring qsv decoder %s. We can't handle this outside of ffmpeg",
+          in_plugin->name);
+      goto next;
+    }
+
     GST_DEBUG ("Trying plugin %s [%s]", in_plugin->name, in_plugin->long_name);
 
     /* no codecs for which we're GUARANTEED to have better alternatives */
index 6def859..671f2f1 100644 (file)
@@ -991,13 +991,20 @@ gst_ffmpegvidenc_register (GstPlugin * plugin)
       goto next;
     }
 
-    if (g_str_has_suffix (in_plugin->name, "_nvenc")) {
+    if (strstr (in_plugin->name, "nvenc")) {
       GST_DEBUG
           ("Ignoring nvenc encoder %s. We can't handle this outside of ffmpeg",
           in_plugin->name);
       goto next;
     }
 
+    if (g_str_has_suffix (in_plugin->name, "_qsv")) {
+      GST_DEBUG
+          ("Ignoring qsv encoder %s. We can't handle this outside of ffmpeg",
+          in_plugin->name);
+      goto next;
+    }
+
     /* only video encoders */
     if (!av_codec_is_encoder (in_plugin)
         || in_plugin->type != AVMEDIA_TYPE_VIDEO)