Player example histogram: Process frames on a separate thread

Change-Id: I6989f9ea9cb6e45c54ed75079a5b5748e15ee0d8
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
This commit is contained in:
Lev Zelenskiy
2012-07-19 14:55:52 +10:00
committed by Qt by Nokia
parent b7f4b2decb
commit b915c5e0e7
2 changed files with 93 additions and 50 deletions

View File

@@ -43,18 +43,31 @@
#include <QWidget>
#include <qvideoframe.h>
#include <QThread>
QT_USE_NAMESPACE
class FrameProcessor: public QObject {
Q_OBJECT
public slots:
void processFrame(QVideoFrame frame, int levels);
signals:
void histogramReady(QVector<qreal> histogram);
};
class HistogramWidget : public QWidget
{
Q_OBJECT
public:
explicit HistogramWidget(QWidget *parent = 0);
~HistogramWidget();
void setLevels(int levels) { m_levels = levels; }
public slots:
void processFrame(QVideoFrame frame);
void setHistogram(QVector<qreal> histogram);
protected:
void paintEvent(QPaintEvent *event);
@@ -62,6 +75,9 @@ protected:
private:
QVector<qreal> m_histogram;
int m_levels;
FrameProcessor m_processor;
QThread m_processorThread;
bool m_isBusy;
};
#endif // HISTOGRAMWIDGET_H