summaryrefslogtreecommitdiffstats
path: root/helper.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'helper.cpp')
-rw-r--r--helper.cpp67
1 files changed, 67 insertions, 0 deletions
diff --git a/helper.cpp b/helper.cpp
index d19cdf1..db113ec 100644
--- a/helper.cpp
+++ b/helper.cpp
@@ -2,6 +2,8 @@
#include <QFileInfo>
#include <QCryptographicHash>
#include <QByteArray>
+#include <QSettings>
+#include <QProcess>
#include "helper.h"
@@ -47,4 +49,69 @@ namespace Helper {
}
return retval;
}
+
+ const QJsonDocument ffpmegData(const QString &path){
+ QSettings s;
+ QString ffProbe = s.value("ext/ffprobe").toString();
+ QStringList args;
+ args << "-v" << "quiet" << "-print_format" << "json" << "-show_format" << "-show_streams" << path;
+ QProcess ffproc;
+ ffproc.start(ffProbe, args);
+ if(!ffproc.waitForStarted()){
+ return QJsonDocument();
+ }
+ ffproc.waitForFinished();
+ QByteArray ffData = ffproc.readAllStandardOutput();
+
+ return QJsonDocument::fromJson(ffData);
+ }
+
+ Duration::Duration() : mHours(0), mMinutes(0), mSeconds(0) {}
+
+ Duration::Duration(qint64 seconds){
+ int sec(0), min(0), h(0);
+ // get hours
+ h = (seconds / 60 / 60);
+ // remaining minutes
+ min = (seconds / 60) % 60;
+ // seconds
+ sec = seconds % 60;
+ mHours = h;
+ mMinutes = min;
+ mSeconds = sec;
+ }
+
+ Duration::Duration(const QString &dur) : mHours(0), mMinutes(0), mSeconds(0){
+ QStringList parts = dur.split(':');
+ if(parts.size() == 3){
+ mHours = parts.at(0).toInt();
+ mMinutes = parts.at(1).toInt();
+ mSeconds = parts.at(2).toInt();
+ }
+ }
+
+ Duration Duration::operator+(const Duration &dur) const{
+ Duration retval;
+ retval.mSeconds = mSeconds + dur.mSeconds;
+ retval.mMinutes = mMinutes + dur.mMinutes + retval.mSeconds / 60;
+ retval.mSeconds %= 60;
+ retval.mHours = mHours + dur.mHours + retval.mMinutes / 60;
+ retval.mMinutes %= 60;
+ return retval;
+ }
+
+ const QString Duration::toString() const {
+ QString retval = QString("%1:%2:%3").arg(QString::number(mHours), 2, '0').arg(QString::number(mMinutes), 2, '0').arg(QString::number(mSeconds), 2, '0');
+ return retval;
+ }
+
+ bool Duration::isNull() const {
+ return mHours == 0 && mMinutes == 0 && mSeconds == 0;
+ }
+
+ qint64 Duration::toSeconds() const {
+ qint64 retval;
+ retval = mHours * 60 * 60 + mMinutes * 60 + mSeconds;
+ return retval;
+ }
}