Currently exception from a plugin are not handled when creating a capture engine. Capture the exception and try to use another plugin instead of bailing out. This was tested with an experimental GStreamer plugin. Signed-off-by: Frediano Ziglio <fziglio@xxxxxxxxxx> --- src/concrete-agent.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/concrete-agent.cpp b/src/concrete-agent.cpp index 0720782..112ef93 100644 --- a/src/concrete-agent.cpp +++ b/src/concrete-agent.cpp @@ -113,7 +113,14 @@ FrameCapture *ConcreteAgent::GetBestFrameCapture(const std::set<SpiceVideoCodecT // check client supports the codec if (codecs.find(plugin.second->VideoCodecType()) == codecs.end()) continue; - FrameCapture *capture = plugin.second->CreateCapture(); + + FrameCapture *capture; + try { + capture = plugin.second->CreateCapture(); + } catch (const std::runtime_error &err) { + syslog(LOG_ERR, "Error getting capture engine: %s", err.what()); + continue; + } if (capture) { return capture; } -- 2.14.3 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel