]> git.sesse.net Git - vlc/blobdiff - modules/video_filter/osdmenu.c
VLC_OBJECT_FILTER: remove
[vlc] / modules / video_filter / osdmenu.c
index 69f43c9a65a0818fe7eed2976dd0b276a5f39036..105089eb757ae5005841562c610fc937cac466dd 100644 (file)
@@ -28,7 +28,7 @@
 # include "config.h"
 #endif
 
-#include <vlc/vlc.h>
+#include <vlc_common.h>
 #include <vlc_plugin.h>
 #include <vlc_vout.h>
 #include <vlc_filter.h>
@@ -80,8 +80,8 @@
     "means less transparency. The default is being not transparent " \
     "(value 255) the minimum is fully transparent (value 0)." )
 
-static int pi_pos_values[] = { 0, 1, 2, 4, 8, 5, 6, 9, 10 };
-static const char *ppsz_pos_descriptions[] =
+static const int pi_pos_values[] = { 0, 1, 2, 4, 8, 5, 6, 9, 10 };
+static const char *const ppsz_pos_descriptions[] =
 { N_("Center"), N_("Left"), N_("Right"), N_("Top"), N_("Bottom"),
   N_("Top-Left"), N_("Top-Right"), N_("Bottom-Left"), N_("Bottom-Right") };
 
@@ -131,8 +131,8 @@ vlc_module_begin();
         OSD_ALPHA_TEXT, OSD_ALPHA_LONGTEXT, true );
 
     set_capability( "sub filter", 100 );
-    set_description( _("On Screen Display menu") );
-    set_shortname( _("OSD menu") );
+    set_description( N_("On Screen Display menu") );
+    set_shortname( N_("OSD menu") );
     add_shortcut( "osdmenu" );
 
     set_category( CAT_VIDEO );
@@ -184,10 +184,7 @@ static int CreateFilter ( vlc_object_t *p_this )
 
     p_filter->p_sys = p_sys = (filter_sys_t *) malloc( sizeof(filter_sys_t) );
     if( !p_filter->p_sys )
-    {
-        msg_Err( p_filter, "out of memory" );
         return VLC_ENOMEM;
-    }
     memset( p_sys, 0, sizeof(filter_sys_t) );
 
     /* Populating struct */
@@ -300,12 +297,15 @@ static void DestroyFilter( vlc_object_t *p_this )
     var_DelCallback( p_filter, OSD_CFG "update", OSDMenuCallback, p_sys );
     var_DelCallback( p_filter, OSD_CFG "alpha", OSDMenuCallback, p_sys );
 
-    var_DelCallback( p_sys->p_menu, "osd-menu-update",
-                     OSDMenuUpdateEvent, p_filter );
-    var_DelCallback( p_sys->p_menu, "osd-menu-visible",
-                     OSDMenuVisibleEvent, p_filter );
+    if( p_sys )
+    {
+        var_DelCallback( p_sys->p_menu, "osd-menu-update",
+                         OSDMenuUpdateEvent, p_filter );
+        var_DelCallback( p_sys->p_menu, "osd-menu-visible",
+                         OSDMenuVisibleEvent, p_filter );
+    }
 
-    if( p_sys->p_vout )
+    if( p_sys && p_sys->p_vout )
     {
         var_DelCallback( p_sys->p_vout, "mouse-x",
                         MouseEvent, p_sys );
@@ -327,10 +327,13 @@ static void DestroyFilter( vlc_object_t *p_this )
     var_Destroy( p_this, OSD_CFG "update" );
     var_Destroy( p_this, OSD_CFG "alpha" );
 
-    osd_MenuDelete( p_filter, p_sys->p_menu );
+    if( p_sys )
+    {
+        osd_MenuDelete( p_filter, p_sys->p_menu );
 
-    free( p_sys->psz_file );
-    free( p_sys );
+        free( p_sys->psz_file );
+        free( p_sys );
+    }
 }
 
 /*****************************************************************************