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:
committed by
Qt by Nokia
parent
b7f4b2decb
commit
b915c5e0e7
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user