]> git.sesse.net Git - kdenlive/commitdiff
Westley thumbnailer: reindent + cleanup useless includes
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Mon, 19 Jan 2009 12:09:46 +0000 (12:09 +0000)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Mon, 19 Jan 2009 12:09:46 +0000 (12:09 +0000)
svn path=/branches/KDE4/; revision=2930

thumbnailer/westleypreview.cpp
thumbnailer/westleypreview.desktop
thumbnailer/westleypreview.h

index af1a58c0d3dbc6924370fbaf330d6eaae66aff5b..c792f7dac8285a8841cb734489867bb2560a853f 100644 (file)
 #include <QtCore/QVarLengthArray>
 
 #include <kstandarddirs.h>
-#include <kmimetype.h>
-#include <QDir>
-#include <qpainter.h>
 #include <krandomsequence.h>
 #include <qdatetime.h>
-#include <qregexp.h>
 #include <QProcess>
 #include <kdebug.h>
 #include <ktempdir.h>
 #include <kurl.h>
-#include <math.h>
 #include <qfileinfo.h>
-#include <kcodecs.h>
 #include <KTemporaryFile>
 
 #include <unistd.h>
 #define DBG_AREA
 
 //#include "config.h"
-extern "C"
-{
-    KDE_EXPORT ThumbCreator *new_creator()
-    {
+extern "C" {
+    KDE_EXPORT ThumbCreator *new_creator() {
         return new WestleyPreview;
     }
 }
 
 WestleyPreview::WestleyPreview()
-{
+        : m_rand(0), m_inigoprocess(0) {
 }
 
-WestleyPreview::~WestleyPreview()
-{
-    delete rand;
-    delete inigoprocess;
+WestleyPreview::~WestleyPreview() {
+    delete m_rand;
+    delete m_inigoprocess;
 }
 
 bool WestleyPreview::startAndWaitProcess(const QStringList &args) {
     kDebug(DBG_AREA) << "westleypreview: starting process with args: " << args << endl;
-    inigoprocess->start( args.join(" ") );
-    if(! inigoprocess->waitForStarted() ) {
+    m_inigoprocess->start(args.join(" "));
+    if (! m_inigoprocess->waitForStarted()) {
         kDebug(DBG_AREA) << "westleypreview: PROCESS NOT STARTED!!! exiting\n";
         return false;
     }
-    if(! inigoprocess->waitForFinished() ) {
+    if (! m_inigoprocess->waitForFinished()) {
         kDebug(DBG_AREA) << "westleypreview: PROCESS DIDN'T FINISH!! exiting\n";
-        inigoprocess->close();
+        m_inigoprocess->close();
         return false;
     }
-  kDebug() << "westleypreview: process started and ended correctly\n";
-  return true;
+    kDebug() << "westleypreview: process started and ended correctly\n";
+    return true;
 }
 
-bool WestleyPreview::create(const QString &path, int width, int height, QImage &img)
-{
+bool WestleyPreview::create(const QString &path, int width, int height, QImage &img) {
     QFileInfo fi(path);
     /*if (fi.suffix().trimmed() != "westley" && fi.suffix().trimmed() != "kdenlive")
     {
         kDebug(DBG_AREA) << "westleypreview: matched extension " << fi.suffix().prepend('.') << "; exiting.\n";
         return false;
     }*/
-    playerBin=KStandardDirs::findExe("inigo");
-    if(playerBin.isEmpty())
-    {
-       kDebug(DBG_AREA) << "westleypreview: inigo not found, exiting.\n";
+    playerBin = KStandardDirs::findExe("inigo");
+    if (playerBin.isEmpty()) {
+        kDebug(DBG_AREA) << "westleypreview: inigo not found, exiting.\n";
         return false;
     }
 
-    fileinfo.seconds=0;
-    fileinfo.fps=0;
+    fileinfo.seconds = 0;
+    fileinfo.fps = 0;
 
-    rand=new KRandomSequence(QDateTime::currentDateTime().toTime_t());
-    inigoprocess=new QProcess();
+    m_rand = new KRandomSequence(QDateTime::currentDateTime().toTime_t());
+    m_inigoprocess = new QProcess();
     KUrl furl(path);
     kDebug(DBG_AREA) << "videopreview: url=" << furl << "; local:" << furl.isLocalFile() << endl;
-    fileinfo.towidth=width;
-    fileinfo.toheight=height;
+    fileinfo.towidth = width;
+    fileinfo.toheight = height;
     QPixmap pix;
 //    if(furl.isLocalFile())
 //    {
     QStringList args;
-    //TODO: modify inigo so that it can return some infos about a westley clip (duration, track number,fps,...) 
+    //TODO: modify inigo so that it can return some infos about a westley clip (duration, track number,fps,...)
     // without actually playing the file
-/*
-    args << playerBin << QString("\"" + path + "\"") << "-file-info";
-
-    kDebug(DBG_AREA) << "videopreview: starting process: --_" << " " << args.join(" ") << "_--\n";
-    if (! startAndWaitProcess(args) ) return NULL;
-
-    QString information=QString(inigoprocess->readAllStandardOutput() );
-    QRegExp findInfos("ID_VIDEO_FPS=([\\d]*).*ID_LENGTH=([\\d]*).*");
-    if(findInfos.indexIn( information) == -1 )
-    {
-        kDebug(DBG_AREA) << "videopreview: No information found, exiting\n";
-        return NULL;
-    }
-    fileinfo.seconds =findInfos.cap(2).toInt();
-    fileinfo.fps=findInfos.cap(1).toInt();
-    */
+    /*
+        args << playerBin << QString("\"" + path + "\"") << "-file-info";
+
+        kDebug(DBG_AREA) << "videopreview: starting process: --_" << " " << args.join(" ") << "_--\n";
+        if (! startAndWaitProcess(args) ) return NULL;
+
+        QString information=QString(inigoprocess->readAllStandardOutput() );
+        QRegExp findInfos("ID_VIDEO_FPS=([\\d]*).*ID_LENGTH=([\\d]*).*");
+        if(findInfos.indexIn( information) == -1 )
+        {
+            kDebug(DBG_AREA) << "videopreview: No information found, exiting\n";
+            return NULL;
+        }
+        fileinfo.seconds =findInfos.cap(2).toInt();
+        fileinfo.fps=findInfos.cap(1).toInt();
+        */
     fileinfo.seconds = 250;
     fileinfo.fps = 25;
-    
+
     //kDebug(DBG_AREA) << "videopreview: find length=" << fileinfo.seconds << ", fps=" << fileinfo.fps << endl;
 
     const int LASTTRY = 3;
-    for(int i=0; i<=LASTTRY; i++)
-    {
-        pix=getFrame(path);
-        if(!pix.isNull()) {
-            uint variance=imageVariance(pix.toImage()/*.bits(),( (width+ 7) & ~0x7), width, height, 1 */);
-            kDebug(DBG_AREA) << "videopreview: " << QFileInfo(path).fileName() << " frame variance: " << variance << "; " << 
-                    ((variance<=40 && ( i!=LASTTRY-1))? "!!!DROPPING!!!" : "GOOD :-)" ) << endl;
-            if(variance>40 || i==LASTTRY-1 ) break;
+    for (int i = 0; i <= LASTTRY; i++) {
+        pix = getFrame(path);
+        if (!pix.isNull()) {
+            uint variance = imageVariance(pix.toImage()/*.bits(),( (width+ 7) & ~0x7), width, height, 1 */);
+            kDebug(DBG_AREA) << "videopreview: " << QFileInfo(path).fileName() << " frame variance: " << variance << "; " <<
+            ((variance <= 40 && (i != LASTTRY - 1)) ? "!!!DROPPING!!!" : "GOOD :-)") << endl;
+            if (variance > 40 || i == LASTTRY - 1) break;
         }
     }
-    if(pix.isNull() )
-    {
+    if (pix.isNull()) {
         return false;
     }
     img = pix.toImage();
     return true;
 }
 
-QPixmap WestleyPreview::getFrame(const QString &path)
-{
+QPixmap WestleyPreview::getFrame(const QString &path) {
     QStringList args;
-    #define START ((fileinfo.seconds*15)/100)
-    #define END ((fileinfo.seconds*70)/100)
+#define START ((fileinfo.seconds*15)/100)
+#define END ((fileinfo.seconds*70)/100)
     args.clear();
     args << playerBin << "\"" + path + "\"";
-    if(fileinfo.towidth>fileinfo.toheight) fileinfo.toheight=-2; else fileinfo.towidth=-2;
+    if (fileinfo.towidth > fileinfo.toheight) fileinfo.toheight = -2;
+    else fileinfo.towidth = -2;
 //     switch( flags ){
 //         case random
 //     }
-    unsigned long start=(unsigned long)(START+(rand->getDouble() * (END - START) ) );
-    args << QString("in=%1").arg(start)<< QString("out=%1").arg(start)<<"-consumer";
+    unsigned long start = (unsigned long)(START + (m_rand->getDouble() * (END - START)));
+    args << QString("in=%1").arg(start) << QString("out=%1").arg(start) << "-consumer";
 
     KTemporaryFile temp;
     temp.setSuffix(".png");
     temp.open();
-    args << QString("avformat:%1").arg(temp.fileName()) << "vframes=1"<< "f=rawvideo"<< "vcodec=png"<< QString("s=%1x%2").arg(fileinfo.towidth).arg(fileinfo.toheight);
-    if (! startAndWaitProcess(args) ) return NULL;
+    args << QString("avformat:%1").arg(temp.fileName()) << "vframes=1" << "f=rawvideo" << "vcodec=png" << QString("s=%1x%2").arg(fileinfo.towidth).arg(fileinfo.toheight);
+    if (! startAndWaitProcess(args)) return NULL;
     QPixmap retpix(temp.fileName());
     temp.close();
     return retpix;
 }
 
 
-uint WestleyPreview::imageVariance(QImage image )
-{
-    uint delta=0;
-    uint avg=0;
-    uint bytes=image.numBytes();
-    uint STEPS=bytes/2;
+uint WestleyPreview::imageVariance(QImage image) {
+    uint delta = 0;
+    uint avg = 0;
+    uint bytes = image.numBytes();
+    uint STEPS = bytes / 2;
     QVarLengthArray<uchar> pivot(STEPS);
     kDebug(DBG_AREA) << "Using " << STEPS << " steps\n";
-    uchar *bits=image.bits();
+    uchar *bits = image.bits();
     // First pass: get pivots and taking average
-    for( uint i=0; i<STEPS ; i++ ){
-        pivot[i]=bits[i*(bytes/STEPS)];
-        avg+=pivot[i];
+    for (uint i = 0; i < STEPS ; i++) {
+        pivot[i] = bits[i*(bytes/STEPS)];
+        avg += pivot[i];
     }
-    avg=avg/STEPS;
+    avg = avg / STEPS;
     // Second Step: calculate delta (average?)
-    for (uint i=0; i<STEPS; i++)
-    {
-        int curdelta=abs(int(avg-pivot[i]));
-        delta+=curdelta;
+    for (uint i = 0; i < STEPS; i++) {
+        int curdelta = abs(int(avg - pivot[i]));
+        delta += curdelta;
     }
-    return delta/STEPS;
+    return delta / STEPS;
 }
+
+ThumbCreator::Flags WestleyPreview::flags() const {
+    return DrawFrame;
+}
+
 #include "westleypreview.moc"
 
index 1e0dd15157308f46b7389831e1bd55ed614a6975..88b48e2569478a83f02d64966a6fcce01d5f33d4 100644 (file)
@@ -1,4 +1,5 @@
 [Desktop Entry]
+Encoding=UTF-8
 Type=Service
 Name=Westley Playlists
 ServiceTypes=ThumbCreator
index 4595d453c4a6f90158e53512bc727866bc6f3128..76209c595da98943c035e0800db118842fc80c35 100644 (file)
 #define _westleypreview_H_
 
 #include <qstring.h>
-#include <q3cstring.h>
 
 #include <qpixmap.h>
 #include <kio/thumbcreator.h>
+#include <qobject.h>
 
 class QProcess;
-class Q3CString;
 class KTempDir;
 class KRandomSequence;
-#include <qobject.h>
 
 
 
-class WestleyPreview : public QObject, public ThumbCreator
-{
-Q_OBJECT
-    public:
-        WestleyPreview();
-        virtual ~WestleyPreview();
-        virtual bool create(const QString &path, int width, int height, QImage &img);
-    protected:
-        QPixmap getFrame(const QString &path);
-        static uint imageVariance(QImage image );
-
-    private:
-        QPixmap m_pixmap;
-        QProcess *inigoprocess;
-        QStringList customargs;
-        KRandomSequence *rand;
-        QString playerBin;
-        bool startAndWaitProcess(const QStringList &args);
-        enum frameflags { framerandom=0x1, framestart=0x2, frameend=0x4 };
-        struct { int towidth; int toheight; int fps; int seconds; } fileinfo;
+
+class WestleyPreview : public QObject, public ThumbCreator {
+    Q_OBJECT
+public:
+    WestleyPreview();
+    virtual ~WestleyPreview();
+    virtual bool create(const QString &path, int width, int height, QImage &img);
+    virtual Flags flags() const;
+
+protected:
+    QPixmap getFrame(const QString &path);
+    static uint imageVariance(QImage image);
+
+private:
+    QPixmap m_pixmap;
+    QProcess *m_inigoprocess;
+    QStringList customargs;
+    KRandomSequence *m_rand;
+    QString playerBin;
+    bool startAndWaitProcess(const QStringList &args);
+    enum frameflags { framerandom = 0x1, framestart = 0x2, frameend = 0x4 };
+    struct {
+        int towidth;
+        int toheight;
+        int fps;
+        int seconds;
+    } fileinfo;
 };
 
 #endif