Kill QtCamViewfinderRendererGeneric
authorMohammed Sameer <msameer@foolab.org>
Sun, 28 Jul 2013 18:20:11 +0000 (21:20 +0300)
committerMohammed Sameer <msameer@foolab.org>
Sun, 28 Jul 2013 18:20:11 +0000 (21:20 +0300)
It's broken and unused.

lib/lib.pro
lib/qtcamconfig.h
lib/qtcamviewfinderrenderer.cpp
lib/qtcamviewfinderrenderergeneric.cpp [deleted file]
lib/qtcamviewfinderrenderergeneric.h [deleted file]

index 0f27035..3e27453 100644 (file)
@@ -13,11 +13,11 @@ PKGCONFIG = gstreamer-0.10 gstreamer-interfaces-0.10 gstreamer-video-0.10 gstrea
             gstreamer-pbutils-0.10
 
 harmattan:PKGCONFIG += meego-gstreamer-interfaces-0.10
+nemo:PKGCONFIG += nemo-gstreamer-interfaces-0.10
 
 HEADERS += qtcamconfig.h qtcamera.h qtcamscanner.h qtcamdevice.h qtcamviewfinder.h \
            qtcammode.h qtcamgstreamermessagehandler.h qtcamgstreamermessagelistener.h \
-           qtcamviewfinderrenderer.h \
-           qtcamviewfinderrenderergeneric.h qtcamimagesettings.h qtcamvideosettings.h \
+           qtcamviewfinderrenderer.h qtcamimagesettings.h qtcamvideosettings.h \
            qtcamimagemode.h qtcamvideomode.h qtcammetadata.h qtcamcapability.h \
            qtcamzoom.h qtcamflash.h qtcamscene.h qtcamevcomp.h qtcamvideotorch.h \
            qtcamwhitebalance.h qtcamcolortone.h qtcamflickerreduction.h \
@@ -27,8 +27,7 @@ HEADERS += qtcamconfig.h qtcamera.h qtcamscanner.h qtcamdevice.h qtcamviewfinder
 
 SOURCES += qtcamconfig.cpp qtcamera.cpp qtcamscanner.cpp qtcamdevice.cpp qtcamviewfinder.cpp \
            qtcammode.cpp qtcamgstreamermessagehandler.cpp qtcamgstreamermessagelistener.cpp \
-           qtcamviewfinderrenderer.cpp \
-           qtcamviewfinderrenderergeneric.cpp qtcamimagesettings.cpp qtcamvideosettings.cpp \
+           qtcamviewfinderrenderer.cpp qtcamimagesettings.cpp qtcamvideosettings.cpp \
            qtcamimagemode.cpp qtcamvideomode.cpp qtcammetadata.cpp qtcamcapability.cpp \
            qtcamzoom.cpp qtcamflash.cpp qtcamscene.cpp qtcamevcomp.cpp qtcamvideotorch.cpp \
            qtcamwhitebalance.cpp qtcamcolortone.cpp qtcamflickerreduction.cpp \
index a5eac06..7ae3a25 100644 (file)
@@ -32,7 +32,6 @@
 #define SCANNER_TYPE_ENUM                     "enum"
 
 #define RENDERER_TYPE_MEEGO                   "meego"
-#define RENDERER_TYPE_GENERIC                 "generic"
 
 #ifndef DATA_DIR
 #define DATA_DIR                              "/usr/share/qtcamera/config/"
index ff92c4d..9dd7028 100644 (file)
@@ -38,8 +38,8 @@ QtCamViewfinderRenderer::~QtCamViewfinderRenderer() {
 QtCamViewfinderRenderer *QtCamViewfinderRenderer::create(QtCamConfig *config, QObject *parent) {
   QString key = config->viewfinderRenderer();
   if (!_renderers.contains(key)) {
-    qCritical() << "Unknown renderer" << key << "will fallback to" << RENDERER_TYPE_GENERIC;
-    key = RENDERER_TYPE_GENERIC;
+    qCritical() << "Unknown renderer" << key;
+    return 0;
   }
 
   QObject *obj = _renderers[key].newInstance(Q_ARG(QtCamConfig *, config),
diff --git a/lib/qtcamviewfinderrenderergeneric.cpp b/lib/qtcamviewfinderrenderergeneric.cpp
deleted file mode 100644 (file)
index 9c8d40a..0000000
+++ /dev/null
@@ -1,179 +0,0 @@
-/*!
- * This file is part of CameraPlus.
- *
- * Copyright (C) 2012-2013 Mohammed Sameer <msameer@foolab.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#include "qtcamviewfinderrenderergeneric.h"
-#include <QDebug>
-#include <gst/video/video.h>
-#include <QPainter>
-#include "qtcamconfig.h"
-
-QT_CAM_VIEWFINDER_RENDERER(RENDERER_TYPE_GENERIC, QtCamViewfinderRendererGeneric);
-
-#define CAPS "video/x-raw-rgb, bpp = (int) 32, depth = (int) 24, red_mask = (int) 65280, green_mask = (int) 16711680, blue_mask = (int) -16777216"
-
-// TODO: this needs to be debugged or rewritten. There are race conditions.
-QtCamViewfinderRendererGeneric::QtCamViewfinderRendererGeneric(QtCamConfig *config,
-                                                              QObject *parent) :
-  QtCamViewfinderRenderer(config, parent), m_elem(0), m_sink(0), m_id(0) {
-
-}
-
-QtCamViewfinderRendererGeneric::~QtCamViewfinderRendererGeneric() {
-  m_mutex.lock();
-
-  if (m_elem) {
-    g_object_remove_toggle_ref(G_OBJECT(m_elem), (GToggleNotify)sink_notify, this);
-    m_elem = 0;
-
-    g_signal_handler_disconnect(m_sink, m_id);
-  }
-
-  m_mutex.unlock();
-}
-
-void QtCamViewfinderRendererGeneric::paint(QPainter *painter) {
-  // TODO: scale and keep aspect ratio.
-  m_mutex.lock();
-
-  if (!m_image.isNull()) {
-    painter->drawImage(QRectF(QPointF(0, 0), m_size), m_image);
-  }
-
-  m_mutex.unlock();
-}
-
-void QtCamViewfinderRendererGeneric::resize(const QSizeF& size) {
-  m_size = size;
-}
-
-void QtCamViewfinderRendererGeneric::reset() {
-  m_image = QImage();
-}
-
-GstElement *QtCamViewfinderRendererGeneric::sinkElement() {
-  if (!m_elem) {
-    m_elem = gst_bin_new("QtCamViewfinderRendererGenericBin");
-    if (!m_elem) {
-      qCritical() << "Failed to create sink bin";
-      return 0;
-    }
-
-    GstElement *sink = gst_element_factory_make("fakesink", "QtCamViewfinderRendererGenericSink");
-    if (!sink) {
-      qCritical() << "Failed to create fakesink";
-      gst_object_unref(m_elem);
-      m_elem = 0;
-      return 0;
-    }
-
-    g_object_set(G_OBJECT(sink), "signal-handoffs", TRUE, "sync", TRUE, NULL);
-    m_id = g_signal_connect(sink, "handoff", G_CALLBACK(on_gst_buffer), this);
-
-    GstElement *csp = gst_element_factory_make("ffmpegcolorspace",
-                                              "QtCamViewfinderRendererGenericCsp");
-    if (!csp) {
-      qCritical() << "Failed to create ffmpegcolorspace";
-      gst_object_unref(sink);
-      gst_object_unref(m_elem);
-      m_elem = 0;
-      return 0;
-    }
-
-    GstElement *filter = gst_element_factory_make("capsfilter",
-                                                 "QtCamViewfinderRendererGenericCapsFilter");
-    if (!filter) {
-      qCritical() << "Failed to create capsfilter";
-      gst_object_unref(sink);
-      gst_object_unref(csp);
-      gst_object_unref(m_elem);
-      m_elem = 0;
-      return 0;
-    }
-
-    GstCaps *caps = gst_caps_from_string(CAPS);
-    g_object_set(filter, "caps", caps, NULL);
-    gst_caps_unref(caps);
-
-    gst_bin_add_many(GST_BIN(m_elem), csp, filter, sink, NULL);
-    gst_element_link_many(csp, filter, sink, NULL);
-
-    GstPad *pad = gst_element_get_static_pad(csp, "sink");
-    gst_element_add_pad(m_elem, gst_ghost_pad_new("sink", pad));
-    gst_object_unref(pad);
-
-    g_object_add_toggle_ref(G_OBJECT(m_elem), (GToggleNotify)sink_notify, this);
-
-    m_sink = sink;
-  }
-
-  return m_elem;
-}
-
-QRectF QtCamViewfinderRendererGeneric::renderArea() {
-  // TODO: calculate this and emit renderAreaChanged() signal when needed
-  return QRectF();
-}
-
-QSizeF QtCamViewfinderRendererGeneric::videoResolution() {
-  // TODO:
-
-  return QSizeF();
-}
-
-void QtCamViewfinderRendererGeneric::on_gst_buffer(GstElement *element,
-                                                  GstBuffer *buf, GstPad *pad,
-                                                  QtCamViewfinderRendererGeneric *q) {
-
-  Q_UNUSED(element);
-
-  q->m_mutex.lock();
-
-  if (!q->m_elem) {
-    q->m_mutex.unlock();
-    return;
-  }
-
-  int width, height;
-
-  if (!gst_video_get_size(pad, &width, &height)) {
-    return;
-  }
-
-  QImage image(buf->data, width, height, QImage::Format_RGB32);
-
-  q->m_image = image.copy();
-
-  QMetaObject::invokeMethod(q, "updateRequested", Qt::QueuedConnection);
-
-  q->m_mutex.unlock();
-}
-
-void QtCamViewfinderRendererGeneric::sink_notify(QtCamViewfinderRendererGeneric *q,
-                                                GObject *object,
-                                                gboolean is_last_ref) {
-
-  Q_UNUSED(object);
-
-  if (is_last_ref) {
-    g_object_remove_toggle_ref(G_OBJECT(q->m_elem), (GToggleNotify)sink_notify, q);
-    q->m_elem = 0;
-    q->m_sink = 0;
-  }
-}
diff --git a/lib/qtcamviewfinderrenderergeneric.h b/lib/qtcamviewfinderrenderergeneric.h
deleted file mode 100644 (file)
index 9b3fee8..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-// -*- c++ -*-
-
-/*!
- * This file is part of CameraPlus.
- *
- * Copyright (C) 2012-2013 Mohammed Sameer <msameer@foolab.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef QT_CAM_VIEWFINDER_RENDERER_GENERIC_H
-#define QT_CAM_VIEWFINDER_RENDERER_GENERIC_H
-
-#include "qtcamviewfinderrenderer.h"
-#include <QImage>
-#include <QMutex>
-
-class QtCamViewfinderRendererGeneric : public QtCamViewfinderRenderer {
-  Q_OBJECT
-
-public:
-  Q_INVOKABLE QtCamViewfinderRendererGeneric(QtCamConfig *config, QObject *parent = 0);
-
-  ~QtCamViewfinderRendererGeneric();
-
-  virtual void paint(QPainter *painter);
-  virtual void resize(const QSizeF& size);
-  virtual void reset();
-  virtual GstElement *sinkElement();
-  QRectF renderArea();
-  QSizeF videoResolution();
-
-private:
-  static void on_gst_buffer(GstElement *element, GstBuffer *buf, GstPad *pad,
-                           QtCamViewfinderRendererGeneric *q);
-
-  static void sink_notify(QtCamViewfinderRendererGeneric *q, GObject *object,
-                         gboolean is_last_ref);
-
-  GstElement *m_elem;
-  GstElement *m_sink;
-  QImage m_image;
-  QMutex m_mutex;
-  QSizeF m_size;
-  unsigned long m_id;
-};
-
-#endif /* QT_CAM_VIEWFINDER_RENDERER_GENERIC_H */