LinGui: Add rotate filter
authorJohn Stebbins <jstebbins.hb@gmail.com>
Tue, 23 Aug 2016 18:25:42 +0000 (11:25 -0700)
committerJohn Stebbins <jstebbins.hb@gmail.com>
Tue, 23 Aug 2016 18:25:42 +0000 (11:25 -0700)
gtk/src/ghb-3.12.ui
gtk/src/ghb-3.14.ui
gtk/src/ghb.ui
gtk/src/hb-backend.c

index 53179cee0fd142def9f6f00ba952476a84849e44..df47285398aa55903cf982efdc7ad7cfd5401fc3 100644 (file)
@@ -3264,6 +3264,46 @@ SpatialLuma:SpatialChroma:TemporalLuma:TemporalChroma</property>
                             </child>
                           </object>
                         </child>
+                        <child>
+                          <object class="GtkGrid" id="table16">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="column_spacing">5</property>
+                            <property name="halign">start</property>
+                            <property name="valign">start</property>
+                            <child>
+                              <object class="GtkLabel" id="PictureRotateLabel">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="halign">start</property>
+                                <property name="label" translatable="yes">Rotate Filter:</property>
+                              </object>
+                              <packing>
+                                <property name="top_attach">1</property>
+                                <property name="left_attach">0</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkComboBox" id="PictureRotate">
+                                <property name="valign">GTK_ALIGN_CENTER</property>
+                                <property name="width_request">100</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                                <property name="tooltip_text" translatable="yes">Rotate the video in clockwise 90 degree increments.</property>
+                                <signal name="changed" handler="deint_filter_changed_cb" swapped="no"/>
+                              </object>
+                              <packing>
+                                <property name="top_attach">1</property>
+                                <property name="left_attach">1</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                          </object>
+                        </child>
                         <child>
                           <object class="GtkCheckButton" id="VideoGrayScale">
                             <property name="label" translatable="yes">Grayscale</property>
index 7311327353e6d7da22aa3250486a1a83c9bcab30..7c5e00d3ea975eb3afa8e0db73211eeface18a40 100644 (file)
@@ -3265,6 +3265,46 @@ SpatialLuma:SpatialChroma:TemporalLuma:TemporalChroma</property>
                             </child>
                           </object>
                         </child>
+                        <child>
+                          <object class="GtkGrid" id="table16">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="column_spacing">5</property>
+                            <property name="halign">start</property>
+                            <property name="valign">start</property>
+                            <child>
+                              <object class="GtkLabel" id="PictureRotateLabel">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="halign">start</property>
+                                <property name="label" translatable="yes">Rotate Filter:</property>
+                              </object>
+                              <packing>
+                                <property name="top_attach">1</property>
+                                <property name="left_attach">0</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkComboBox" id="PictureRotate">
+                                <property name="valign">GTK_ALIGN_CENTER</property>
+                                <property name="width_request">100</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                                <property name="tooltip_text" translatable="yes">Rotate the video in clockwise 90 degree increments.</property>
+                                <signal name="changed" handler="deint_filter_changed_cb" swapped="no"/>
+                              </object>
+                              <packing>
+                                <property name="top_attach">1</property>
+                                <property name="left_attach">1</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                          </object>
+                        </child>
                         <child>
                           <object class="GtkCheckButton" id="VideoGrayScale">
                             <property name="label" translatable="yes">Grayscale</property>
index 3f3f6ba73bd5bd10a91a4d473de88fbb26112a15..6ae3d6b9de819d7b27ff3003b7eed6e4b86bdbae 100644 (file)
@@ -3292,6 +3292,52 @@ SpatialLuma:SpatialChroma:TemporalLuma:TemporalChroma</property>
                             <property name="height">1</property>
                           </packing>
                         </child>
+                        <child>
+                          <object class="GtkGrid" id="table16">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="column_spacing">5</property>
+                            <property name="halign">start</property>
+                            <property name="valign">start</property>
+                            <child>
+                              <object class="GtkLabel" id="PictureRotateLabel">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="halign">start</property>
+                                <property name="label" translatable="yes">Rotate Filter:</property>
+                              </object>
+                              <packing>
+                                <property name="top_attach">1</property>
+                                <property name="left_attach">0</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkComboBox" id="PictureRotate">
+                                <property name="valign">GTK_ALIGN_CENTER</property>
+                                <property name="width_request">100</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                                <property name="tooltip_text" translatable="yes">Rotate the video in clockwise 90 degree increments.</property>
+                                <signal name="changed" handler="deint_filter_changed_cb" swapped="no"/>
+                              </object>
+                              <packing>
+                                <property name="top_attach">1</property>
+                                <property name="left_attach">1</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="top_attach">1</property>
+                            <property name="left_attach">2</property>
+                            <property name="width">1</property>
+                            <property name="height">1</property>
+                          </packing>
+                        </child>
                         <child>
                           <object class="GtkCheckButton" id="VideoGrayScale">
                             <property name="label" translatable="yes">Grayscale</property>
@@ -3307,7 +3353,7 @@ SpatialLuma:SpatialChroma:TemporalLuma:TemporalChroma</property>
                           </object>
                           <packing>
                             <property name="top_attach">1</property>
-                            <property name="left_attach">2</property>
+                            <property name="left_attach">3</property>
                             <property name="width">1</property>
                             <property name="height">1</property>
                           </packing>
index 3afd41a830d6a92a96c5da38d7aec813b5fa6a23..5feababa5138939ad1a3ed8f3435121bcc4eb244 100644 (file)
@@ -220,6 +220,19 @@ combo_opts_t denoise_opts =
     d_denoise_opts
 };
 
+static options_map_t d_rotate_opts[] =
+{
+    {N_("Off"),         "disable=1",   0, ""},
+    {N_("90 Degrees"),  "angle=90",   90, ""},
+    {N_("180 Degrees"), "angle=180", 180, ""},
+    {N_("270 Degrees"), "angle=270", 270, ""},
+};
+combo_opts_t rotate_opts =
+{
+    sizeof(d_rotate_opts)/sizeof(options_map_t),
+    d_rotate_opts
+};
+
 static options_map_t d_direct_opts[] =
 {
     {N_("None"),      "none",     0, "none"},
@@ -540,6 +553,12 @@ combo_name_map_t combo_name_map[] =
         filter_opts_set,
         filter_opt_get
     },
+    {
+        "PictureRotate",
+        &rotate_opts,
+        small_opts_set,
+        generic_opt_get
+    },
     {
         "x264_direct",
         &direct_opts,