#include <vlc_keys.h>
#include <vlc_osd.h>
#include "libvlc.h"
+#include <vlc_image.h>
#undef OSD_MENU_DEBUG
return NULL;
}
+ /* Stuff needed for Parser */
+ p_osd->p_image = image_HandlerCreate( p_this );
+ if( !p_osd->p_image )
+ msg_Err( p_this, "unable to load images" );
+ p_osd->psz_file = strdup( psz_file );
+
/* Parse configuration file */
if( osd_ConfigLoader( p_this, psz_file, &p_osd ) )
goto error;
error:
msg_Err( p_this, "creating OSD menu object failed" );
+
+ if( p_osd->p_image )
+ image_HandlerDelete( p_osd->p_image );
+ if( p_osd->psz_file )
+ free( p_osd->psz_file );
+
+ vlc_mutex_unlock( lockval.p_address );
vlc_object_destroy( p_osd );
vlc_mutex_unlock( lockval.p_address );
return NULL;
var_Destroy( p_osd, "osd-menu-update" );
osd_ConfigUnload( p_this, &p_osd );
+
+ if( p_osd->p_image )
+ image_HandlerDelete( p_osd->p_image );
+ if( p_osd->psz_file )
+ free( p_osd->psz_file );
+
vlc_object_detach( p_osd );
vlc_object_destroy( p_osd );
p_osd = NULL;