[tracker-miners] extract/gstreamer: blacklist via plugin rather than feature



commit 3560b4606d064d75c7caa8a2e3ad3c69ac0e3345
Author: Robert McQueen <rob endlessm com>
Date:   Thu Nov 16 14:35:50 2017 +0000

    extract/gstreamer: blacklist via plugin rather than feature
    
    Using a features-based blacklist means that you need to keep adding
    new blacklist entries when new codecs are added, and makes it impossible
    to match plugins which generate features dynamically based on
    detected hardware.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=790457

 src/tracker-extract/tracker-extract-gstreamer.c |   20 ++++++--------------
 1 files changed, 6 insertions(+), 14 deletions(-)
---
diff --git a/src/tracker-extract/tracker-extract-gstreamer.c b/src/tracker-extract/tracker-extract-gstreamer.c
index c389a11..b26313b 100644
--- a/src/tracker-extract/tracker-extract-gstreamer.c
+++ b/src/tracker-extract/tracker-extract-gstreamer.c
@@ -1295,15 +1295,8 @@ tracker_extract_module_init (GError **error)
 {
        /* Lifted from totem-video-thumbnailer */
        const gchar *blacklisted[] = {
-               "vaapidecodebin",
-               "vaapidecode",
-               "vaapimpeg2dec",
-               "vaapih264dec",
-               "vaapivc1dec",
-               "vaapivp8dec",
-               "vaapivp9dec",
-               "vaapih265dec",
                "bcmdec",
+               "vaapi"
        };
        GstRegistry *registry;
        guint i;
@@ -1312,12 +1305,11 @@ tracker_extract_module_init (GError **error)
        registry = gst_registry_get ();
 
        for (i = 0; i < G_N_ELEMENTS (blacklisted); i++) {
-               GstPluginFeature *feature =
-                       gst_registry_find_feature (registry,
-                                                  blacklisted[i],
-                                                  GST_TYPE_ELEMENT_FACTORY);
-               if (feature)
-                       gst_registry_remove_feature (registry, feature);
+               GstPlugin *plugin =
+                       gst_registry_find_plugin (registry,
+                                                 blacklisted[i]);
+               if (plugin)
+                       gst_registry_remove_plugin (registry, plugin);
        }
 
        return TRUE;


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