Don't try to manipulate the viewfinder renderer if we fail to create it.
authorMohammed Sameer <msameer@foolab.org>
Sun, 26 Aug 2012 08:46:33 +0000 (11:46 +0300)
committerMohammed Sameer <msameer@foolab.org>
Thu, 6 Sep 2012 16:10:09 +0000 (19:10 +0300)
lib/qtcamgraphicsviewfinder.cpp

index 76ccad1..342255a 100644 (file)
@@ -11,6 +11,11 @@ public:
   void ensureBackend() {
     if (!renderer) {
       renderer = QtCamViewfinderRenderer::create(conf, q_ptr);
   void ensureBackend() {
     if (!renderer) {
       renderer = QtCamViewfinderRenderer::create(conf, q_ptr);
+      if (!renderer) {
+       qCritical() << "Failed to create a viewfinder renderer";
+       return;
+      }
+
       renderer->resize(q_ptr->size());
       QObject::connect(renderer, SIGNAL(updateRequested()), q_ptr, SLOT(updateRequested()));
     }
       renderer->resize(q_ptr->size());
       QObject::connect(renderer, SIGNAL(updateRequested()), q_ptr, SLOT(updateRequested()));
     }
@@ -43,6 +48,10 @@ QtCamGraphicsViewfinder::~QtCamGraphicsViewfinder() {
 GstElement *QtCamGraphicsViewfinder::sinkElement() {
   d_ptr->ensureBackend();
 
 GstElement *QtCamGraphicsViewfinder::sinkElement() {
   d_ptr->ensureBackend();
 
+  if (!d_ptr->renderer) {
+    return 0;
+  }
+
   return d_ptr->renderer->sinkElement();
 }
 
   return d_ptr->renderer->sinkElement();
 }