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 /src | |
parent | d05da991bbcb1c00f2892dc7013d5d9b7e79e8d0 (diff) | |
download | cheese-76d16a7b05ec64fb8c6aa806d195e3afb0c659e3.tar.gz |
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.
Diffstat (limited to 'src')
-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 4ef6c3b3..f31eca4f 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); + } } /** |