Qt: video filters
authorJean-Baptiste Kempf <jb@videolan.org>
Mon, 1 Nov 2010 16:46:27 +0000 (17:46 +0100)
committerJean-Baptiste Kempf <jb@videolan.org>
Mon, 1 Nov 2010 16:46:27 +0000 (17:46 +0100)
Add grain in first page, move away blur
Renaming gradfun
Tab reorder

modules/gui/qt4/components/extended_panels.cpp
modules/gui/qt4/ui/video_effects.ui

index ba37b07..9a8bad9 100644 (file)
@@ -215,6 +215,9 @@ ExtVideo::ExtVideo( intf_thread_t *_p_intf, QTabWidget *_parent ) :
     SETUP_VFILTER( gradfun )
     SETUP_VFILTER_OPTION( gradfunRadiusSlider, valueChanged( int ) )
 
+    SETUP_VFILTER( grain )
+    SETUP_VFILTER_OPTION( grainVarianceSlider, valueChanged( int ) )
+
     if( module_exists( "atmo" ) )
     {
         SETUP_VFILTER( atmo )
index 2ecb66f..ed6b748 100644 (file)
@@ -7,7 +7,7 @@
     <x>0</x>
     <y>0</y>
     <width>542</width>
-    <height>276</height>
+    <height>286</height>
    </rect>
   </property>
   <property name="currentIndex">
@@ -17,7 +17,7 @@
    <attribute name="title">
     <string>Basic</string>
    </attribute>
-   <layout class="QGridLayout" name="gridLayout_4">
+   <layout class="QGridLayout" name="gridLayout_8">
     <item row="0" column="0" rowspan="3">
      <widget class="QGroupBox" name="adjustEnable">
       <property name="enabled">
      </widget>
     </item>
     <item row="1" column="1">
-     <widget class="QGroupBox" name="motionblurEnable">
+     <widget class="QGroupBox" name="gradfunEnable">
       <property name="title">
-       <string>Motion blur</string>
+       <string>Banding removal</string>
       </property>
       <property name="checkable">
        <bool>true</bool>
       <property name="checked">
        <bool>false</bool>
       </property>
-      <layout class="QGridLayout" name="_3">
+      <layout class="QGridLayout" name="gridLayout_2">
        <item row="0" column="0">
-        <widget class="QLabel" name="label_34">
+        <widget class="QLabel" name="label_32">
          <property name="text">
-          <string>Factor</string>
+          <string>Radius</string>
          </property>
          <property name="buddy">
-          <cstring>blurFactorSlider</cstring>
+          <cstring>gradfunRadiusSlider</cstring>
          </property>
         </widget>
        </item>
        <item row="0" column="1">
-        <widget class="QSlider" name="blurFactorSlider">
+        <widget class="QSlider" name="gradfunRadiusSlider">
          <property name="minimum">
-          <number>1</number>
+          <number>4</number>
          </property>
          <property name="maximum">
-          <number>127</number>
+          <number>32</number>
          </property>
-         <property name="value">
-          <number>80</number>
+         <property name="pageStep">
+          <number>4</number>
          </property>
          <property name="orientation">
           <enum>Qt::Horizontal</enum>
           <enum>QSlider::TicksBelow</enum>
          </property>
          <property name="tickInterval">
-          <number>16</number>
+          <number>4</number>
          </property>
         </widget>
        </item>
      </widget>
     </item>
     <item row="2" column="1">
-     <widget class="QGroupBox" name="gradfunEnable">
+     <widget class="QGroupBox" name="grainEnable">
       <property name="title">
-       <string>Gradient</string>
+       <string>Film Grain</string>
       </property>
       <property name="checkable">
        <bool>true</bool>
       <property name="checked">
        <bool>false</bool>
       </property>
-      <layout class="QGridLayout" name="gridLayout_2">
+      <layout class="QGridLayout" name="gridLayout_4">
        <item row="0" column="0">
-        <widget class="QLabel" name="label_32">
+        <widget class="QLabel" name="label_50">
          <property name="text">
-          <string>Radius</string>
+          <string>Variance</string>
          </property>
          <property name="buddy">
-          <cstring>gradfunRadiusSlider</cstring>
+          <cstring>grainVarianceSlider</cstring>
          </property>
         </widget>
        </item>
        <item row="0" column="1">
-        <widget class="QSlider" name="gradfunRadiusSlider">
+        <widget class="QSlider" name="grainVarianceSlider">
          <property name="minimum">
-          <number>4</number>
+          <number>0</number>
          </property>
          <property name="maximum">
-          <number>32</number>
+          <number>40</number>
          </property>
          <property name="pageStep">
           <number>4</number>
    </attribute>
    <layout class="QGridLayout" name="gridLayout_5">
     <item row="0" column="0">
-     <widget class="QGroupBox" name="transformEnable">
-      <property name="title">
-       <string>Transform</string>
-      </property>
-      <property name="checkable">
-       <bool>true</bool>
-      </property>
-      <property name="checked">
-       <bool>false</bool>
-      </property>
-      <layout class="QGridLayout" name="_4">
-       <item row="0" column="0">
-        <widget class="QComboBox" name="transformTypeCombo"/>
-       </item>
-      </layout>
-     </widget>
-    </item>
-    <item row="0" column="1">
-     <widget class="QCheckBox" name="magnifyEnable">
-      <property name="text">
-       <string>Magnification/Zoom</string>
-      </property>
-     </widget>
-    </item>
-    <item row="1" column="0">
      <widget class="QGroupBox" name="rotateEnable">
       <property name="title">
        <string>Rotate</string>
        <bool>false</bool>
       </property>
       <layout class="QGridLayout">
-       <item row="0" column="1">
+       <item row="1" column="0">
+        <widget class="QLabel" name="label_28">
+         <property name="text">
+          <string>Angle</string>
+         </property>
+         <property name="buddy">
+          <cstring>rotateAngleDial</cstring>
+         </property>
+        </widget>
+       </item>
+       <item row="1" column="1">
         <widget class="QDial" name="rotateAngleDial">
          <property name="maximum">
           <number>359</number>
          </property>
         </widget>
        </item>
+      </layout>
+     </widget>
+    </item>
+    <item row="2" column="0">
+     <widget class="QGroupBox" name="transformEnable">
+      <property name="title">
+       <string>Transform</string>
+      </property>
+      <property name="checkable">
+       <bool>true</bool>
+      </property>
+      <property name="checked">
+       <bool>false</bool>
+      </property>
+      <layout class="QGridLayout" name="_4">
        <item row="0" column="0">
-        <widget class="QLabel" name="label_28">
-         <property name="text">
-          <string>Angle</string>
-         </property>
-         <property name="buddy">
-          <cstring>rotateAngleDial</cstring>
-         </property>
-        </widget>
+        <widget class="QComboBox" name="transformTypeCombo"/>
        </item>
       </layout>
      </widget>
     </item>
-    <item row="1" column="1">
+    <item row="0" column="1">
      <widget class="QGroupBox" name="puzzleEnable">
       <property name="title">
        <string>Puzzle game</string>
       </layout>
      </widget>
     </item>
+    <item row="2" column="1">
+     <widget class="QCheckBox" name="magnifyEnable">
+      <property name="text">
+       <string>Magnification/Zoom</string>
+      </property>
+     </widget>
+    </item>
    </layout>
   </widget>
   <widget class="QWidget" name="tab_2">
     <string>Color</string>
    </attribute>
    <layout class="QGridLayout" name="gridLayout_7">
-    <item row="0" column="0">
+    <item row="0" column="0" rowspan="2">
      <widget class="QGroupBox" name="colorthresEnable">
       <property name="title">
        <string>Color threshold</string>
       </layout>
      </widget>
     </item>
-    <item row="0" column="1">
+    <item row="0" column="1" rowspan="2" colspan="2">
      <widget class="QGroupBox" name="gradientEnable">
       <property name="title">
        <string>Gradient</string>
       </layout>
      </widget>
     </item>
-    <item row="1" column="0" rowspan="5">
-     <widget class="QGroupBox" name="extractEnable">
+    <item row="0" column="3">
+     <widget class="QGroupBox" name="posterizeEnable">
       <property name="title">
-       <string>Color extraction</string>
+       <string>Posterize</string>
       </property>
       <property name="checkable">
        <bool>true</bool>
       <property name="checked">
        <bool>false</bool>
       </property>
-      <layout class="QGridLayout">
+      <layout class="QGridLayout" name="gridLayout_3">
        <item row="0" column="0">
-        <widget class="QLabel" name="label_6">
+        <widget class="QLabel" name="label_33">
          <property name="text">
-          <string>Color</string>
+          <string>Posterize level</string>
          </property>
         </widget>
        </item>
        <item row="0" column="1">
-        <widget class="QLineEdit" name="extractComponentText">
-         <property name="inputMask">
-          <string>&gt;HHHHHH;#</string>
+        <widget class="QSpinBox" name="posterizeLevelSpin">
+         <property name="minimum">
+          <number>2</number>
+         </property>
+         <property name="maximum">
+          <number>256</number>
+         </property>
+         <property name="value">
+          <number>3</number>
          </property>
         </widget>
        </item>
       </layout>
      </widget>
     </item>
-    <item row="0" column="2">
-     <widget class="QGroupBox" name="posterizeEnable">
+    <item row="1" column="3" rowspan="3">
+     <widget class="QGroupBox" name="motionblurEnable">
       <property name="title">
-       <string>Posterize</string>
+       <string>Motion blur</string>
       </property>
       <property name="checkable">
        <bool>true</bool>
       <property name="checked">
        <bool>false</bool>
       </property>
-      <layout class="QGridLayout" name="gridLayout_3">
+      <layout class="QGridLayout" name="_3">
        <item row="0" column="0">
-        <widget class="QLabel" name="label_33">
+        <widget class="QLabel" name="label_34">
          <property name="text">
-          <string>Posterize level</string>
+          <string>Factor</string>
+         </property>
+         <property name="buddy">
+          <cstring>blurFactorSlider</cstring>
          </property>
         </widget>
        </item>
        <item row="0" column="1">
-        <widget class="QSpinBox" name="posterizeLevelSpin">
+        <widget class="QSlider" name="blurFactorSlider">
          <property name="minimum">
-          <number>2</number>
+          <number>1</number>
          </property>
          <property name="maximum">
-          <number>256</number>
+          <number>127</number>
          </property>
          <property name="value">
-          <number>3</number>
+          <number>80</number>
+         </property>
+         <property name="orientation">
+          <enum>Qt::Horizontal</enum>
+         </property>
+         <property name="tickPosition">
+          <enum>QSlider::TicksBelow</enum>
+         </property>
+         <property name="tickInterval">
+          <number>16</number>
          </property>
         </widget>
        </item>
       </layout>
      </widget>
     </item>
-    <item row="1" column="1">
+    <item row="2" column="0" rowspan="6">
+     <widget class="QGroupBox" name="extractEnable">
+      <property name="title">
+       <string>Color extraction</string>
+      </property>
+      <property name="checkable">
+       <bool>true</bool>
+      </property>
+      <property name="checked">
+       <bool>false</bool>
+      </property>
+      <layout class="QGridLayout">
+       <item row="0" column="0">
+        <widget class="QLabel" name="label_6">
+         <property name="text">
+          <string>Color</string>
+         </property>
+        </widget>
+       </item>
+       <item row="0" column="1">
+        <widget class="QLineEdit" name="extractComponentText">
+         <property name="inputMask">
+          <string>&gt;HHHHHH;#</string>
+         </property>
+        </widget>
+       </item>
+      </layout>
+     </widget>
+    </item>
+    <item row="2" column="1">
      <widget class="QCheckBox" name="invertEnable">
       <property name="text">
        <string>Invert colors</string>
       </property>
      </widget>
     </item>
-    <item row="2" column="2">
+    <item row="4" column="3">
      <widget class="QCheckBox" name="rippleEnable">
       <property name="text">
        <string>Water effect</string>
       </property>
      </widget>
     </item>
-    <item row="2" column="1">
-     <widget class="QCheckBox" name="motiondetectEnable">
+    <item row="5" column="3">
+     <widget class="QCheckBox" name="waveEnable">
       <property name="text">
-       <string>Motion detect</string>
+       <string>Waves</string>
       </property>
      </widget>
     </item>
-    <item row="1" column="2">
-     <widget class="QCheckBox" name="waveEnable">
+    <item row="5" column="1">
+     <widget class="QCheckBox" name="psychedelicEnable">
       <property name="text">
-       <string>Waves</string>
+       <string>Psychedelic</string>
       </property>
      </widget>
     </item>
     <item row="3" column="1">
-     <widget class="QCheckBox" name="noiseEnable">
+     <widget class="QCheckBox" name="motiondetectEnable">
       <property name="text">
-       <string>Noise</string>
+       <string>Motion detect</string>
       </property>
      </widget>
     </item>
-    <item row="3" column="2">
-     <widget class="QCheckBox" name="psychedelicEnable">
+    <item row="4" column="1">
+     <widget class="QCheckBox" name="noiseEnable">
       <property name="text">
-       <string>Psychedelic</string>
+       <string>Noise</string>
       </property>
      </widget>
     </item>
   <tabstop>gammaSlider</tabstop>
   <tabstop>sharpenEnable</tabstop>
   <tabstop>sharpenSigmaSlider</tabstop>
-  <tabstop>motionblurEnable</tabstop>
-  <tabstop>blurFactorSlider</tabstop>
   <tabstop>gradfunEnable</tabstop>
   <tabstop>gradfunRadiusSlider</tabstop>
+  <tabstop>grainEnable</tabstop>
+  <tabstop>grainVarianceSlider</tabstop>
   <tabstop>cropTopPx</tabstop>
   <tabstop>cropLeftPx</tabstop>
   <tabstop>cropRightPx</tabstop>
   <tabstop>cropBotPx</tabstop>
   <tabstop>topBotCropSync</tabstop>
   <tabstop>leftRightCropSync</tabstop>
-  <tabstop>transformEnable</tabstop>
-  <tabstop>transformTypeCombo</tabstop>
   <tabstop>rotateEnable</tabstop>
   <tabstop>rotateAngleDial</tabstop>
-  <tabstop>magnifyEnable</tabstop>
+  <tabstop>transformEnable</tabstop>
+  <tabstop>transformTypeCombo</tabstop>
   <tabstop>puzzleEnable</tabstop>
   <tabstop>puzzleRowsSpin</tabstop>
   <tabstop>puzzleColsSpin</tabstop>
   <tabstop>puzzleBlackSlotCheck</tabstop>
+  <tabstop>magnifyEnable</tabstop>
   <tabstop>colorthresEnable</tabstop>
   <tabstop>colorthresColorText</tabstop>
+  <tabstop>eraseXSpin</tabstop>
   <tabstop>colorthresSaturationthresSlider</tabstop>
   <tabstop>colorthresSimilaritythresSlider</tabstop>
   <tabstop>extractEnable</tabstop>
   <tabstop>invertEnable</tabstop>
   <tabstop>motiondetectEnable</tabstop>
   <tabstop>noiseEnable</tabstop>
+  <tabstop>psychedelicEnable</tabstop>
   <tabstop>posterizeEnable</tabstop>
   <tabstop>posterizeLevelSpin</tabstop>
-  <tabstop>waveEnable</tabstop>
+  <tabstop>motionblurEnable</tabstop>
+  <tabstop>blurFactorSlider</tabstop>
   <tabstop>rippleEnable</tabstop>
-  <tabstop>psychedelicEnable</tabstop>
+  <tabstop>waveEnable</tabstop>
   <tabstop>atmoEnable</tabstop>
   <tabstop>atmoEdgeweightningSlider</tabstop>
   <tabstop>atmoBrightnessSlider</tabstop>
   <tabstop>atmoDarknesslimitSlider</tabstop>
+  <tabstop>atmoFiltermodeCombo</tabstop>
+  <tabstop>atmoShowdotsCheck</tabstop>
   <tabstop>atmoMeanlengthSlider</tabstop>
   <tabstop>atmoMeanthresholdSlider</tabstop>
   <tabstop>atmoPercentnewSlider</tabstop>
-  <tabstop>atmoFiltermodeCombo</tabstop>
-  <tabstop>atmoShowdotsCheck</tabstop>
   <tabstop>wallEnable</tabstop>
   <tabstop>wallRowsSpin</tabstop>
   <tabstop>wallColsSpin</tabstop>
   <tabstop>eraseEnable</tabstop>
   <tabstop>eraseMaskText</tabstop>
   <tabstop>eraseYSpin</tabstop>
-  <tabstop>eraseXSpin</tabstop>
  </tabstops>
  <resources/>
  <connections/>