diff options
author | q5sys <jt@ixsystems.com> | 2017-09-24 19:58:16 -0400 |
---|---|---|
committer | q5sys <jt@ixsystems.com> | 2017-09-24 19:58:16 -0400 |
commit | a3092fb02a1905345e1311b2e64f4796acdb9f34 (patch) | |
tree | dce99af9b9536c26aa80ca247ae62a2a39c856f7 /src-qt5/desktop-utils/lumina-fm/widgets/vidnail.cpp | |
parent | Final fix - re-enable some backwards-compatible code and put a big warning at... (diff) | |
download | lumina-a3092fb02a1905345e1311b2e64f4796acdb9f34.tar.gz lumina-a3092fb02a1905345e1311b2e64f4796acdb9f34.tar.bz2 lumina-a3092fb02a1905345e1311b2e64f4796acdb9f34.zip |
rework video thumbnail code
Diffstat (limited to 'src-qt5/desktop-utils/lumina-fm/widgets/vidnail.cpp')
-rw-r--r-- | src-qt5/desktop-utils/lumina-fm/widgets/vidnail.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src-qt5/desktop-utils/lumina-fm/widgets/vidnail.cpp b/src-qt5/desktop-utils/lumina-fm/widgets/vidnail.cpp new file mode 100644 index 00000000..ee7fb9e3 --- /dev/null +++ b/src-qt5/desktop-utils/lumina-fm/widgets/vidnail.cpp @@ -0,0 +1,33 @@ +#include "vidnail.h" +vidnail::vidnail(QWidget *parent) : QMainWindow(parent), mplayer(parent, QMediaPlayer::VideoSurface){ //there is no UI, so not sure how to alter the constructor +} + +vidnail::~vidnail() +{ + +vidnail::grabvideothumbnail(){ + vsurface = new QAbstractVideoSurface(); + mplayer.setVideoOutput(vsurface); + mplayer.setMedia($file); // video file to get thumbnail of + imageCaptured = QPixmap(); + mplayer.setPosition(2000); // time in milliseconds + mplayer.setMuted(true); // just to make sure no sound is emited + mplayer.play(); + + currentFrame = frame; + const QImage::Format imageFormat = QVideoFrame::imageFormatFromPixelFormat(format.pixelFormat()); + const QSize size = format.frameSize(); + + this->imageFormat = imageFormat; + QAbstractVideoSurface::start(format); + QImage image( currentFrame.bits(), currentFrame.width(), currentFrame.height(), currentFrame.bytesPerLine(), imageFormat); + imageCaptured = QPixmap::fromImage(image.copy(image.rect())); + +// Now do scaling with regular thumbnail process to make proper size + + mplayer.stop(); + vsurface.stop(); +} + + + |