From b2ba93f762d1e0ff75f3ec77a8aa9b2e19f76c09 Mon Sep 17 00:00:00 2001
From: Andreas Traczyk <andreas.traczyk@savoirfairelinux.com>
Date: Fri, 18 Oct 2019 11:17:34 -0400
Subject: [PATCH] avmodel: catch exception when trying to init preview renderer

Change-Id: Id5c9872554d327da8bad182f977e2b3bcf9ac9c8
Gitlab: #506
---
 src/avmodel.cpp | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/src/avmodel.cpp b/src/avmodel.cpp
index 63f19b87..0f8f68e8 100644
--- a/src/avmodel.cpp
+++ b/src/avmodel.cpp
@@ -636,9 +636,15 @@ AVModelPimpl::AVModelPimpl(AVModel& linked, const CallbacksHandler& callbacksHan
 {
     std::srand(std::time(nullptr));
     // add preview renderer
-    renderers_.insert(std::make_pair(video::PREVIEW_RENDERER_ID,
-                                     std::make_unique<video::Renderer>(video::PREVIEW_RENDERER_ID,
-                                                                       linked_.getDeviceSettings(linked_.getDefaultDeviceName()),"", useAVFrame_)));
+    try {
+        renderers_.insert(std::make_pair(video::PREVIEW_RENDERER_ID,
+                                         std::make_unique<video::Renderer>(video::PREVIEW_RENDERER_ID,
+                                                                           linked_.getDeviceSettings(linked_.getDefaultDeviceName()),
+                                                                           "",
+                                                                           useAVFrame_)));
+    } catch (const std::out_of_range& e) {
+        qWarning() << "Couldn't setup video input renderer: " << e.what();
+    }
 #ifndef ENABLE_LIBWRAP
     SIZE_RENDERER = renderers_.size();
 #endif
-- 
GitLab