diff options
author | Arno <arno@disconnect.de> | 2016-09-03 21:03:34 +0200 |
---|---|---|
committer | Arno <arno@disconnect.de> | 2016-09-03 21:03:34 +0200 |
commit | e11e257f88726fd04774bf0ca4584d1678bc7f9b (patch) | |
tree | 848c1f16d09f1a06afd7d638f40b6e39e4cd6ead /helper.cpp | |
parent | b49c6828a92590311712d766d54c15596f13addf (diff) | |
download | ShemovCleaner-e11e257f88726fd04774bf0ca4584d1678bc7f9b.tar.gz ShemovCleaner-e11e257f88726fd04774bf0ca4584d1678bc7f9b.tar.bz2 ShemovCleaner-e11e257f88726fd04774bf0ca4584d1678bc7f9b.zip |
Add detailed video dialog
Show each and everything ffprobe can extract from a video file and
display it as a tree.
Diffstat (limited to 'helper.cpp')
-rw-r--r-- | helper.cpp | 67 |
1 files changed, 67 insertions, 0 deletions
@@ -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; + } } |