On Mon, 2018-05-21 at 11:41 +0100, Frediano Ziglio wrote: > Currently exception from a plugin are not handled when creating exception -> exceptions > a capture engine. > Capture the exception and try to use another plugin instead of Capture -> Catch > 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 58ce9c4..3d5282e 100644 > --- a/src/concrete-agent.cpp > +++ b/src/concrete-agent.cpp > @@ -129,7 +129,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::exception &err) { > + syslog(LOG_ERR, "Error getting capture engine: %s", > err.what()); Maybe "Error creating..." instead of "Error getting..."? It's a little bit unfortunate that we can't easily indicate here which plugin failed. Something like: syslog(LOG_ERR, "Error creating capture engine for %s: %s", plugin.second->name(), err.what()) > + continue; > + } > if (capture) { > return capture; > } Ack with commit log changes. Acked-by: Jonathon Jongsma <jjongsma@xxxxxxxxxx> _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel