- p_input = vlc_object_find( p_this, VLC_OBJECT_INPUT, FIND_ANYWHERE );
- if( !p_input )
- {
- return;
- }
- var_DelCallback( p_input->p_libvlc, "marq-x", MarqueeCallback, p_sys );
- var_DelCallback( p_input->p_libvlc, "marq-y", MarqueeCallback, p_sys );
- var_DelCallback( p_input->p_libvlc, "marq-marquee", MarqueeCallback, p_sys );
- var_DelCallback( p_input->p_libvlc, "marq-timeout", MarqueeCallback, p_sys );
- var_DelCallback( p_input->p_libvlc, "marq-position", MarqueeCallback, p_sys );
- var_DelCallback( p_input->p_libvlc, "marq-color", MarqueeCallback, p_sys );
- var_DelCallback( p_input->p_libvlc, "marq-opacity", MarqueeCallback, p_sys );
- var_DelCallback( p_input->p_libvlc, "marq-size", MarqueeCallback, p_sys );
-
- var_Destroy( p_input->p_libvlc , "marq-marquee" );
- var_Destroy( p_input->p_libvlc , "marq-x" );
- var_Destroy( p_input->p_libvlc , "marq-y" );
- var_Destroy( p_input->p_libvlc , "marq-timeout" );
- var_Destroy( p_input->p_libvlc , "marq-position" );
- var_Destroy( p_input->p_libvlc , "marq-color");
- var_Destroy( p_input->p_libvlc , "marq-opacity");
- var_Destroy( p_input->p_libvlc , "marq-size");
-
- vlc_object_release( p_input );
+#define DEL_VAR(var) \
+ var_DelCallback( p_filter, var, MarqueeCallback, p_sys ); \
+ var_Destroy( p_filter, var );
+ DEL_VAR( "marq-x" );
+ DEL_VAR( "marq-y" );
+ DEL_VAR( "marq-marquee" );
+ DEL_VAR( "marq-timeout" );
+ DEL_VAR( "marq-position" );
+ DEL_VAR( "marq-color" );
+ DEL_VAR( "marq-opacity" );
+ DEL_VAR( "marq-size" );
+
+ free( p_sys );