]> git.sesse.net Git - kdenlive/blobdiff - thumbnailer/westleypreview.cpp
SVN_SILENT made messages (.desktop file)
[kdenlive] / thumbnailer / westleypreview.cpp
index 0ce57323a73c33d150f113c8d74724ca8ff211f2..91132787f6cef51f6431a56404eba5fbc70a346e 100644 (file)
@@ -123,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<uchar> 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<STEPS ; i++ ){
+        pivot[i] = bits[2 * i];
+#if QT_VERSION >= 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<STEPS; i++)
+    {
+#if QT_VERSION >= 0x040700
+        int curdelta=abs(int(avg - pivot.at(i)));
+#else
+        int curdelta=abs(int(avg - pivot[i]));
+#endif
+        delta+=curdelta;
     }
     return delta / STEPS;
 }