summaryrefslogtreecommitdiff
path: root/src/totem-video-thumbnailer.c
diff options
context:
space:
mode:
authorLionel Landwerlin <lionel.g.landwerlin@intel.com>2016-12-25 23:02:55 +0100
committerLionel Landwerlin <lionel.g.landwerlin@intel.com>2016-12-26 14:55:54 +0100
commit28bcfde30b7087c39dba3902885798fbdc888444 (patch)
tree4fb17820f9e78e3021c656bd3a2a3e9cc9a7daf6 /src/totem-video-thumbnailer.c
parent9e321b17f0e94652a74c17477e1421301714a290 (diff)
downloadtotem-28bcfde30b7087c39dba3902885798fbdc888444.tar.gz
thumbnailer: blacklist new vaapi plugin names
It appears the vaapi decode plugin has been split into different plugins with names for each supported codecs. https://bugzilla.gnome.org/show_bug.cgi?id=776489
Diffstat (limited to 'src/totem-video-thumbnailer.c')
-rw-r--r--src/totem-video-thumbnailer.c33
1 files changed, 20 insertions, 13 deletions
diff --git a/src/totem-video-thumbnailer.c b/src/totem-video-thumbnailer.c
index 97eebcf58..6670ab895 100644
--- a/src/totem-video-thumbnailer.c
+++ b/src/totem-video-thumbnailer.c
@@ -392,7 +392,17 @@ thumb_app_setup_play (ThumbApp *app)
GstElement *play;
GstElement *audio_sink, *video_sink;
GstRegistry *registry;
- GstPluginFeature *feature;
+ const char *blacklisted_plugins[] = {
+ "vaapidecodebin",
+ "vaapidecode",
+ "vaapimpeg2dec",
+ "vaapih264dec",
+ "vaapivc1dec",
+ "vaapivp8dec",
+ "vaapivp9dec",
+ "vaapih265dec"
+ };
+ guint i;
play = gst_element_factory_make ("playbin", "play");
audio_sink = gst_element_factory_make ("fakesink", "audio-fake-sink");
@@ -412,18 +422,15 @@ thumb_app_setup_play (ThumbApp *app)
* See: https://bugzilla.gnome.org/show_bug.cgi?id=700186 and
* https://bugzilla.gnome.org/show_bug.cgi?id=749605 */
registry = gst_registry_get ();
- feature = gst_registry_find_feature (registry,
- "vaapidecodebin",
- GST_TYPE_ELEMENT_FACTORY);
- if (feature)
- gst_registry_remove_feature (registry, feature);
-
- feature = gst_registry_find_feature (registry,
- "vaapidecode",
- GST_TYPE_ELEMENT_FACTORY);
- if (!feature)
- return;
- gst_registry_remove_feature (registry, feature);
+
+ for (i = 0; i < G_N_ELEMENTS (blacklisted_plugins); i++) {
+ GstPluginFeature *feature =
+ gst_registry_find_feature (registry,
+ blacklisted_plugins[i],
+ GST_TYPE_ELEMENT_FACTORY);
+ if (feature)
+ gst_registry_remove_feature (registry, feature);
+ }
}
static void