static void thumb_app_setup_play (ThumbApp *app) { GstElement *play; GstElement *audio_sink, *video_sink; GstRegistry *registry; GstPluginFeature *feature; play = gst_element_factory_make ("playbin", "play"); audio_sink = gst_element_factory_make ("fakesink", "audio-fake-sink"); video_sink = gst_element_factory_make ("fakesink", "video-fake-sink"); g_object_set (video_sink, "sync", TRUE, NULL); g_object_set (play, "audio-sink", audio_sink, "video-sink", video_sink, "flags", GST_PLAY_FLAG_VIDEO | GST_PLAY_FLAG_AUDIO, NULL); app->play = play; /* Disable the vaapi plugin as it will not work with the * fakesink we use: * See: https://bugzilla.gnome.org/show_bug.cgi?id=700186 */ registry = gst_registry_get (); feature = gst_registry_find_feature (registry, "vaapidecode", GST_TYPE_ELEMENT_FACTORY); if (!feature) return; gst_registry_remove_feature (registry, feature); }
void bacon_video_widget_gst_missing_plugins_blacklist (void) { struct { const char *name; gboolean remove; } blacklisted_elements[] = { { "ffdemux_flv", 0 }, { "avdemux_flv", 0 }, { "dvdreadsrc" , 1 } }; GstRegistry *registry; guint i; registry = gst_registry_get (); for (i = 0; i < G_N_ELEMENTS (blacklisted_elements); ++i) { GstPluginFeature *feature; feature = gst_registry_find_feature (registry, blacklisted_elements[i].name, GST_TYPE_ELEMENT_FACTORY); if (!feature) continue; if (blacklisted_elements[i].remove) gst_registry_remove_feature (registry, feature); else gst_plugin_feature_set_rank (feature, GST_RANK_NONE); } }
void check_remove_gst_feature (gchar * feature_name) { GstRegistry *registry = gst_registry_get (); GstPluginFeature *feature; if ((feature = gst_registry_lookup_feature (registry, feature_name))) { gst_registry_remove_feature (registry, feature); gst_object_unref (feature); } else { GST_WARNING ("feature not found"); } }