]> git.sesse.net Git - kdenlive/commitdiff
Fix scopes: http://kdenlive.org/mantis/view.php?id=3052
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Sat, 13 Apr 2013 19:31:16 +0000 (21:31 +0200)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Sat, 13 Apr 2013 19:32:17 +0000 (21:32 +0200)
effects/dust.xml
effects/grain.xml
effects/oldfilm.xml
src/colorcorrection/histogramgenerator.cpp
src/colorcorrection/rgbparadegenerator.cpp
src/colorcorrection/vectorscopegenerator.cpp
src/colorcorrection/waveformgenerator.cpp
src/renderer.cpp
src/scopes/colorscopes/abstractgfxscopewidget.cpp

index 863cf461cceca82a6fe4f68be2038a48295a49e3..aaef73bca4f9460640f2132b8c1863ad87740946 100644 (file)
@@ -3,7 +3,7 @@
        <name>Dust</name>
        <description>Add dust and specks to the video, as in old movies</description>
        <author>Marco Gittler</author>
-       <parameter type="double" name="maxdiameter" max="100" min="0" default="2">
+       <parameter type="double" name="maxdiameter" max="100" min="0" default="2" suffix="%">
                <name>Maximal Diameter</name>
        </parameter>
        <parameter type="double" name="maxcount" max="400" min="0" default="10">
index 6fa29b25831541364fec7e7816d8d84e15b27ca5..6b6ea549f522a910372b007ef036b92df1d14b3f 100644 (file)
@@ -3,7 +3,7 @@
        <name>Grain</name>
        <description>Grain over the image</description>
        <author>Marco Gittler</author>
-       <parameter type="double" name="noise" max="200" min="0" default="40">
+       <parameter type="double" name="noise" max="200" min="0" default="40" suffix="%">
                <name>Noise</name>
        </parameter>
        <parameter type="double" name="contrast" max="400" min="0" default="160">
index 10293de1e6f09837c41fc7bfae673b2aeba8a140..c905402685f1b515a084321418eaa4dd501c55b8 100644 (file)
@@ -6,7 +6,7 @@
        <parameter type="double" name="delta" max="400" min="0" default="14">
                <name>Y-Delta</name>
        </parameter>
-       <parameter type="double" name="every" max="100" min="0" default="20">
+       <parameter type="double" name="every" max="100" min="0" default="20" suffix="%">
                <name>% of picture have a delta</name>
        </parameter>
        <parameter type="double" name="brightnessdelta_up" max="100" min="0" default="20">
@@ -15,7 +15,7 @@
        <parameter type="double" name="brightnessdelta_down" max="100" min="0" default="30">
                <name>Brightness down</name>
        </parameter>
-       <parameter type="double" name="brightnessdelta_every" max="100" min="0" default="70">
+       <parameter type="double" name="brightnessdelta_every" max="100" min="0" default="70" suffix="%">
                <name>Brightness every</name>
        </parameter>
        <parameter type="double" name="unevendevelop_up" max="100" min="0" default="60">
index 2681c504619ecc9d081a6a4300927a381051fcd4..05a41f5978a4168ca667033410843bf2acaf3efe 100644 (file)
@@ -44,7 +44,7 @@ QImage HistogramGenerator::calculateHistogram(const QSize &paradeSize, const QIm
     const uint ww = paradeSize.width();
     const uint wh = paradeSize.height();
     const uint byteCount = iw*ih;
-    const uint stepsize = 4*accelFactor;
+    const uint stepsize = image.depth() / 8 *accelFactor;
 
     const uchar *bits = image.bits();
     QRgb *col;
index f8ad5cd0c6d3481e3bb61daef08d93586c099d6c..e81cdc459a1db01f5c44bb5cb68d8198ea3e73a1 100644 (file)
@@ -89,7 +89,7 @@ QImage RGBParadeGenerator::calculateRGBParade(const QSize &paradeSize, const QIm
         }
 
         const uchar *bits = image.bits();
-        const uint stepsize = 4*accelFactor;
+        const uint stepsize = image.depth() / 8 *accelFactor;
 
         for (uint i = 0, x = 0; i < byteCount; i += stepsize) {
             col = (QRgb *)bits;
index 1c8e08dbb4011eca6fece8b9fa52866124a87a8a..f398e64834dee9384d52b82ac04c59fd4aed2a23 100644 (file)
@@ -138,11 +138,11 @@ QImage VectorscopeGenerator::calculateVectorscope(const QSize &vectorscopeSize,
     QPoint pt;
     QRgb px;
 
-    const int stepsize = 4 * accelFactor;
+    const int stepsize = image.depth() / 8 * accelFactor;
 
     // Just an average for the number of image pixels per scope pixel.
     // NOTE: byteCount() has to be replaced by (img.bytesPerLine()*img.height()) for Qt 4.5 to compile, see: http://doc.trolltech.org/4.6/qimage.html#bytesPerLine
-    double avgPxPerPx = (double) 4*(image.bytesPerLine()*image.height())/scope.size().width()/scope.size().height()/accelFactor;
+    double avgPxPerPx = (double) image.depth() / 8 *(image.bytesPerLine()*image.height())/scope.size().width()/scope.size().height()/accelFactor;
 
     for (int i = 0; i < (image.bytesPerLine()*image.height()); i+= stepsize) {
         QRgb *col = (QRgb *) bits;
index 971471e711a59b630a655ee859bca599f6993554..a1d2162f8dcf38fd985fdf6186222a16e660a261 100644 (file)
@@ -76,8 +76,9 @@ QImage WaveformGenerator::calculateWaveform(const QSize &waveformSize, const QIm
         const float wPrediv = (float)(ww-1)/(iw-1);
 
         const uchar *bits = image.bits();
+       const int bpp = image.depth() / 8;
 
-        for (uint i = 0, x = 0; i < byteCount; i += 4) {
+        for (uint i = 0, x = 0; i < byteCount; i += bpp) {
 
             Q_ASSERT(bits < image.bits() + byteCount);
 
@@ -96,13 +97,13 @@ QImage WaveformGenerator::calculateWaveform(const QSize &waveformSize, const QIm
             dx = x*wPrediv;
             waveValues[(int)dx][(int)dy]++;
 
-            bits += 4;
-            x += 4;
+            bits += bpp;
+            x += bpp;
             if (x > iw) {
                 x -= iw;
                 if (accelFactor > 1) {
-                    bits += 4*iw*(accelFactor-1);
-                    i += 4*iw*(accelFactor-1);
+                    bits += bpp*iw*(accelFactor-1);
+                    i += bpp*iw*(accelFactor-1);
                 }
             }
         }
index 9a2a314c4ba965f45233d24748f630588d79d9ce..b5d87ddfa5027c01e6dfda4bb2af8daf16b4c62c 100644 (file)
@@ -1899,7 +1899,7 @@ void Render::showFrame(Mlt::Frame* frame)
        delete frame;
        emit showImageSignal(qimage);
        if (sendFrameForAnalysis) {
-           emit frameUpdated(qimage);//.rgbSwapped());
+           emit frameUpdated(qimage);
        }
     } else delete frame;
     showFrameSemaphore.release();
index 39343490951b048891f8868a598a681509d2c969..cfc771af1a219e050d9b3b6b5c3b9f15932e8d55 100644 (file)
@@ -54,7 +54,7 @@ void AbstractGfxScopeWidget::mouseReleaseEvent(QMouseEvent *event)
 void AbstractGfxScopeWidget::slotRenderZoneUpdated(const QImage frame)
 {
     QMutexLocker lock(&m_mutex);
-    m_scopeImage = frame;
+    m_scopeImage = frame.rgbSwapped();
     AbstractScopeWidget::slotRenderZoneUpdated();
 }