digiKam
Loading...
Searching...
No Matches
videothumbnailer.h
Go to the documentation of this file.
1/* ============================================================
2 *
3 * This file is a part of digiKam project
4 * https://www.digikam.org
5 *
6 * Date : 2016-04-21
7 * Description : video thumbnails extraction based on ffmpeg
8 *
9 * SPDX-FileCopyrightText: 2010 by Dirk Vanden Boer <dirk dot vdb at gmail dot com>
10 * SPDX-FileCopyrightText: 2016-2018 by Maik Qualmann <metzpinguin at gmail dot com>
11 * SPDX-FileCopyrightText: 2016-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
12 *
13 * SPDX-License-Identifier: GPL-2.0-or-later
14 *
15 * ============================================================ */
16
17#pragma once
18
19// Qt includes
20
21#include <QString>
22#include <QImage>
23
24// Local includes
25
26#include "digikam_export.h"
27
28namespace Digikam
29{
30
31class VideoFrame;
32class VideoThumbWriter;
33class VideoThumbDecoder;
34class VideoStripFilter;
35
36class DIGIKAM_EXPORT VideoThumbnailer
37{
38public:
39
41 VideoThumbnailer(int thumbnailSize,
42 bool workaroundIssues,
43 bool maintainAspectRatio,
44 bool smartFrameSelection);
46
47public:
48
49 void generateThumbnail(const QString& videoFile, QImage& image);
50
51 void setThumbnailSize(int size);
52 void setSeekPercentage(int percentage);
53 void setSeekTime(const QString& seekTime);
54 void setWorkAroundIssues(bool workAround);
55 void setMaintainAspectRatio(bool enabled);
56 void setSmartFrameSelection(bool enabled);
57 void addFilter(VideoStripFilter* const filter);
58 void removeFilter(const VideoStripFilter* const filter);
59 void clearFilters();
60
61private:
62
63 void generateThumbnail(const QString& videoFile, VideoThumbWriter& imageWriter, QImage& image);
64 void generateSmartThumbnail(VideoThumbDecoder& movieDecoder, VideoFrame& videoFrame);
65
66 void applyFilters(VideoFrame& frameData);
67 int timeToSeconds(const QString& time) const;
68
69private:
70
71 // Disable
72 VideoThumbnailer(const VideoThumbnailer&) = delete;
73 VideoThumbnailer& operator=(const VideoThumbnailer&) = delete;
74
75private:
76
77 class Private;
78 Private* const d = nullptr;
79};
80
81} // namespace Digikam
Definition videothumbwriter.h:29
Definition videostripfilter.h:29
Definition videothumbdecoder.h:31
Definition videothumbwriter.h:47
Definition videothumbnailer.h:37
Definition datefolderview.cpp:34