diff options
author | David King <amigadave@amigadave.com> | 2013-09-08 12:20:55 +0100 |
---|---|---|
committer | David King <amigadave@amigadave.com> | 2013-09-09 11:04:58 +0100 |
commit | 76d16a7b05ec64fb8c6aa806d195e3afb0c659e3 (patch) | |
tree | 0544e5c3499163bad32d37fb1be6e02e378c92c7 | |
parent | d05da991bbcb1c00f2892dc7013d5d9b7e79e8d0 (diff) |
Skip loading effects with missing plugins
If effects modules are missing, do not load them into EffectsManager to
skip showing them in the UI. Fixes bug 702995.
-rw-r--r-- | src/cheese-effects-manager.vala | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/cheese-effects-manager.vala b/src/cheese-effects-manager.vala index 4ef6c3b..f31eca4 100644 --- a/src/cheese-effects-manager.vala +++ b/src/cheese-effects-manager.vala @@ -19,8 +19,6 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -using GLib; - internal class Cheese.EffectsManager : GLib.Object { public List<Effect> effects; @@ -60,7 +58,18 @@ internal class Cheese.EffectsManager : GLib.Object */ private void add_effect (string name, Effect effect) { - effects.insert_sorted (effect, sort_value); + try + { + // Test effect to see if it can be created. Bug 702995. + Gst.parse_bin_from_description (effect.pipeline_desc, false, null, + Gst.ParseFlags.FATAL_ERRORS); + effects.insert_sorted (effect, sort_value); + } + catch (Error err) + { + debug ("Effect '%s' did not parse correctly, skipping: %s", + effect.name, err.message); + } } /** |