X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=thumbnailer%2Fwestleypreview.cpp;h=91132787f6cef51f6431a56404eba5fbc70a346e;hb=e6644e3ca7a7e0abdf8d15c011547be77c0e4ca9;hp=d9036031acf0940f2b6004440d621ade16487530;hpb=cf7e3af4665e39b5c0352103f6bc4b26b7f410fb;p=kdenlive diff --git a/thumbnailer/westleypreview.cpp b/thumbnailer/westleypreview.cpp index d9036031..91132787 100644 --- a/thumbnailer/westleypreview.cpp +++ b/thumbnailer/westleypreview.cpp @@ -40,8 +40,7 @@ #define DBG_AREA //#include "config.h" -extern "C" -{ +extern "C" { KDE_EXPORT ThumbCreator *new_creator() { return new MltPreview; } @@ -63,9 +62,7 @@ MltPreview::~MltPreview() bool MltPreview::create(const QString &path, int width, int height, QImage &img) { Mlt::Profile *profile = new Mlt::Profile("dv_pal"); - char *tmp = (char *) qstrdup(path.toUtf8().data()); - Mlt::Producer *producer = new Mlt::Producer(*profile, tmp); - delete[] tmp; + Mlt::Producer *producer = new Mlt::Producer(*profile, path.toUtf8().data()); if (producer->is_blank()) { @@ -126,20 +123,30 @@ uint MltPreview::imageVariance(QImage image) uint delta = 0; uint avg = 0; uint bytes = image.numBytes(); + if (bytes == 0) return 0; uint STEPS = bytes / 2; QVarLengthArray pivot(STEPS); kDebug(DBG_AREA) << "Using " << STEPS << " steps\n"; - uchar *bits = image.bits(); + const 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= 0x040700 + avg+=pivot.at(i); +#else + avg+=pivot[i]; +#endif } - 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= 0x040700 + int curdelta=abs(int(avg - pivot.at(i))); +#else + int curdelta=abs(int(avg - pivot[i])); +#endif + delta+=curdelta; } return delta / STEPS; }