#include <QFrame>
#include <QTimer>
+#include <stdint.h>
+
class VideoPreviewContainer : public QFrame
{
Q_OBJECT
public:
VideoPreviewContainer(QWidget *parent = 0);
~VideoPreviewContainer();
+ /** @brief Set the image to be displayed, will be put in the queue. */
void setImage(QImage img);
+ /** @brief Start the display refresh timer. */
void start();
+ /** @brief Stop the display refresh timer. */
void stop();
+ /** @brief Set the display ratio for this display. */
+ void setRatio(double ratio);
protected:
virtual void paintEvent(QPaintEvent */*event*/);
+ virtual void resizeEvent(QResizeEvent * event);
private:
+ /** @brief The display aspect ratio for profile. */
+ double m_dar;
+ /** @brief When true, the whole widget surface will be repainted, useful when resizing widget. */
+ bool m_refresh;
+ /** @brief The rectangle defining the area for painting our image. */
+ QRect m_displayRect;
+ /** @brief The queue of images to be displayed. */
QList <QImage *> m_imageQueue;
+ /** @brief We refresh the image with a timer, since this widget is only for preview during capture. */
QTimer m_refreshTimer;
+ /** @brief Re-calculate the display zone after a resize or aspect ratio change. */
+ void updateDisplayZone();
};
* @param name A unique identifier for this renderer
* @param winid The parent widget identifier (required for SDL display). Set to 0 for OpenGL rendering
* @param profile The MLT profile used for the renderer (default one will be used if empty). */
- AbstractRender(const QString &name, QWidget *parent = 0):QObject(parent), m_name(name), sendFrameForAnalysis(false) {};
+ AbstractRender(const QString &name, QWidget *parent = 0):QObject(parent), sendFrameForAnalysis(false), m_name(name) {};
/** @brief Destroy the MLT Renderer. */
virtual ~AbstractRender() {};