[Spice-devel] [PATCH spice-streaming-agent v2] Detect and handle exception creating capture engine
Frediano Ziglio
fziglio at redhat.com
Mon May 21 10:41:05 UTC 2018
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 at redhat.com>
---
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());
+ continue;
+ }
if (capture) {
return capture;
}
--
2.17.0
More information about the Spice-devel
mailing list