21#include <MltProperties.h>
23#include <QColorDialog>
47 static QString baseName(
const QString &filePath,
bool trimQuery =
false);
48 static void setColorsToHighlight(QWidget *widget, QPalette::ColorRole role = QPalette::Window);
49 static void showInFolder(
const QString &path);
50 static bool warnIfNotWritable(
const QString &filePath, QWidget *parent,
const QString &caption);
51 static QString producerTitle(
const Mlt::Producer &producer);
52 static QString removeFileScheme(QUrl &url,
bool fromPercentEncoding =
true);
53 static const QStringList sortedFileList(
const QList<QUrl> &urls);
54 static int coerceMultiple(
int value,
int multiple = 2);
55 static QList<QUrl> expandDirectories(
const QList<QUrl> &urls);
56 static bool isDecimalPoint(QChar ch);
57 static bool isNumeric(QString &str);
58 static bool convertNumericString(QString &str, QChar decimalPoint);
59 static bool convertDecimalPoints(QString &str, QChar decimalPoint);
60 static void showFrameRateDialog(
const QString &caption,
62 QDoubleSpinBox *spinner,
63 QWidget *parent = Q_NULLPTR);
64 static QTemporaryFile *writableTemporaryFile(
const QString &filePath = QString(),
65 const QString &templateName = QString());
66 static void applyCustomProperties(Mlt::Producer &destination,
67 Mlt::Producer &source,
70 static QString getFileHash(
const QString &path);
71 static QString getHash(Mlt::Properties &properties);
72 static bool hasDriveLetter(
const QString &path);
73 static QColorDialog::ColorDialogOptions getColorDialogOptions();
74 static QFileDialog::Options getFileDialogOptions();
75 static bool isMemoryLow();
76 static QString removeQueryString(
const QString &s);
77 static int greatestCommonDivisor(
int m,
int n);
78 static void normalizeFrameRate(
double fps,
int &numerator,
int &denominator);
79 static QString textColor(
const QColor &color);
80 static void cameraFrameRateSize(
const QByteArray &deviceName, qreal &frameRate, QSize &size);
81 static bool ProducerIsTimewarp(Mlt::Producer *producer);
82 static QString GetFilenameFromProducer(Mlt::Producer *producer,
bool useOriginal =
true);
83 static double GetSpeedFromProducer(Mlt::Producer *producer);
84 static QString updateCaption(Mlt::Producer *producer);
85 static void passProducerProperties(Mlt::Producer *src, Mlt::Producer *dst);
86 static bool warnIfLowDiskSpace(
const QString &path);
87 static bool isFpsDifferent(
double a,
double b);
88 static QString getNextFile(
const QString &filePath);
89 static QString trcString(
int trc);
90 static bool trcIsSdrCompatible(
int trc);
91 static QString getConversionAdvice(Mlt::Producer *producer);
92 static mlt_color mltColorFromQColor(
const QColor &color);
93 static void offerSingleFileConversion(QString &message,
94 Mlt::Producer *producer,
96 static double getAndroidFrameRate(Mlt::Producer *producer);
97 static double getSuggestedFrameRate(Mlt::Producer *producer);
98 static Mlt::Producer openMltVirtualClip(
const QString &path);
99 static bool hasiPhoneAmbisonic(Mlt::Producer *producer);
100 static bool installFlatpakWrappers(QWidget *parent);
101 static QString getExecutable(QWidget *parent);
104 static QPair<bool, bool> dockerStatus(
const QString &imageName);
105 static bool isDockerImageCurrent(
const QString &imageRef);
109 static void isDockerImageCurrentAsync(
const QString &imageRef,
111 std::function<
void(
bool)> callback);
112 static bool isChromiumAvailable();
113 static bool startDetached(
const QString &program,
const QStringList &arguments);
114 static bool openUrl(
const QUrl &url);
115 static bool isHttpsOnHost(
const QString &urlString, QStringView host);
116 static bool cpuHasAVX2();
117 static int msToPosition(int64_t ms);
118 static bool isPostUserFilter(Mlt::Filter *filter);
119 static bool isPreUserFilter(Mlt::Filter *filter);
120 static bool isUserFilter(Mlt::Filter *filter);
121 static bool isUserLink(Mlt::Link *link);