]> git.sesse.net Git - vlc/blobdiff - modules/video_filter/transform.c
Qt4 - Preferences, improve a bit the Hotkeys. Preparatory work to merge the Hotkeys...
[vlc] / modules / video_filter / transform.c
index 7da68bbe3c3fd1b8d6718bc5ff5a538162067218..db2153b860d8da4aec8686ad9217157c3ae47bbf 100644 (file)
@@ -1,7 +1,7 @@
 /*****************************************************************************
  * transform.c : transform image module for vlc
  *****************************************************************************
- * Copyright (C) 2000-2004 the VideoLAN team
+ * Copyright (C) 2000-2006 the VideoLAN team
  * $Id$
  *
  * Authors: Samuel Hocevar <sam@zoy.org>
 /*****************************************************************************
  * Preamble
  *****************************************************************************/
-#include <stdlib.h>                                      /* malloc(), free() */
-#include <string.h>
 
 #include <vlc/vlc.h>
-#include <vlc/vout.h>
+#include <vlc_vout.h>
 
 #include "filter_common.h"
 
@@ -57,11 +55,13 @@ static int  SendEvents( vlc_object_t *, char const *,
 #define TYPE_TEXT N_("Transform type")
 #define TYPE_LONGTEXT N_("One of '90', '180', '270', 'hflip' and 'vflip'")
 
-static char *type_list[] = { "90", "180", "270", "hflip", "vflip" };
-static char *type_list_text[] = { N_("Rotate by 90 degrees"),
+static const char *type_list[] = { "90", "180", "270", "hflip", "vflip" };
+static const char *type_list_text[] = { N_("Rotate by 90 degrees"),
   N_("Rotate by 180 degrees"), N_("Rotate by 270 degrees"),
   N_("Flip horizontally"), N_("Flip vertically") };
 
+#define CFG_PREFIX "transform-"
+
 vlc_module_begin();
     set_description( _("Video transformation filter") );
     set_shortname( _("Transformation"));
@@ -69,7 +69,7 @@ vlc_module_begin();
     set_category( CAT_VIDEO );
     set_subcategory( SUBCAT_VIDEO_VFILTER );
 
-    add_string( "transform-type", "90", NULL,
+    add_string( CFG_PREFIX "type", "90", NULL,
                           TYPE_TEXT, TYPE_LONGTEXT, VLC_FALSE);
         change_string_list( type_list, type_list_text, 0);
 
@@ -77,6 +77,10 @@ vlc_module_begin();
     set_callbacks( Create, Destroy );
 vlc_module_end();
 
+static const char *ppsz_filter_options[] = {
+    "type", NULL
+};
+
 /*****************************************************************************
  * vout_sys_t: Transform video output method descriptor
  *****************************************************************************
@@ -123,8 +127,11 @@ static int Create( vlc_object_t *p_this )
     p_vout->pf_display = NULL;
     p_vout->pf_control = Control;
 
+    config_ChainParse( p_vout, CFG_PREFIX, ppsz_filter_options,
+                           p_vout->p_cfg );
+
     /* Look what method was requested */
-    psz_method = config_GetPsz( p_vout, "transform-type" );
+    psz_method = var_CreateGetNonEmptyString( p_vout, "transform-type" );
 
     if( psz_method == NULL )
     {
@@ -180,9 +187,10 @@ static int Init( vout_thread_t *p_vout )
 {
     int i_index;
     picture_t *p_pic;
-    video_format_t fmt = {0};
+    video_format_t fmt;
 
     I_OUTPUTPICTURES = 0;
+    memset( &fmt, 0, sizeof(video_format_t) );
 
     /* Initialize the output structure */
     p_vout->output.i_chroma = p_vout->render.i_chroma;