vlc | branch: master | Steve Lhomme <[email protected]> | Fri Oct 9 11:42:03 2020 +0200| [c9f42135fb5c9eeb740a522116036707ce921eb7] | committer: Steve Lhomme
filters: use macro to set the typed Open callback for SPU source filters > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=c9f42135fb5c9eeb740a522116036707ce921eb7 --- include/vlc_filter.h | 9 +++++++++ modules/spu/audiobargraph_v.c | 14 ++++++-------- modules/spu/dynamicoverlay/dynamicoverlay.c | 8 +++----- modules/spu/logo.c | 20 +++++++++----------- modules/spu/marq.c | 8 +++----- modules/spu/mosaic.c | 8 +++----- modules/spu/rss.c | 8 +++----- 7 files changed, 36 insertions(+), 39 deletions(-) diff --git a/include/vlc_filter.h b/include/vlc_filter.h index 4517d28cb4..d9eb54e72e 100644 --- a/include/vlc_filter.h +++ b/include/vlc_filter.h @@ -145,6 +145,7 @@ typedef int (*vlc_video_converter_open)(filter_t *); typedef int (*vlc_video_filter_open)(filter_t *); typedef int (*vlc_video_text_renderer_open)(filter_t *); typedef int (*vlc_video_sub_filter_open)(filter_t *); +typedef int (*vlc_video_sub_source_open)(filter_t *); #define set_deinterlace_callback( activate ) \ @@ -188,6 +189,14 @@ typedef int (*vlc_video_sub_filter_open)(filter_t *); } \ set_capability( "sub filter", 0 ) +#define set_callback_sub_source( activate, priority ) \ + { \ + vlc_video_sub_source_open open__ = activate; \ + (void) open__; \ + set_callback(activate) \ + } \ + set_capability( "sub source", priority ) + /** Structure describing a filter * @warning BIG FAT WARNING : the code relies on the first 4 members of * filter_t and decoder_t to be the same, so if you have anything to add, diff --git a/modules/spu/audiobargraph_v.c b/modules/spu/audiobargraph_v.c index b563cbed8d..89c4463703 100644 --- a/modules/spu/audiobargraph_v.c +++ b/modules/spu/audiobargraph_v.c @@ -65,7 +65,7 @@ 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") }; -static int OpenSub (vlc_object_t *); +static int OpenSub (filter_t *); static int OpenVideo(filter_t *); static void Close (filter_t *); @@ -74,8 +74,7 @@ vlc_module_begin () set_category(CAT_VIDEO) set_subcategory(SUBCAT_VIDEO_SUBPIC) - set_capability("sub source", 0) - set_callback(OpenSub) + set_callback_sub_source(OpenSub, 0) set_description(N_("Audio Bar Graph Video sub source")) set_shortname(N_("Audio Bar Graph Video")) add_shortcut("audiobargraph_v") @@ -497,9 +496,8 @@ static const struct vlc_filter_operations filter_video_ops = { /** * Common open function */ -static int OpenCommon(vlc_object_t *p_this, bool b_sub) +static int OpenCommon(filter_t *p_filter, bool b_sub) { - filter_t *p_filter = (filter_t *)p_this; filter_sys_t *p_sys; /* */ @@ -575,9 +573,9 @@ static int OpenCommon(vlc_object_t *p_this, bool b_sub) /** * Open the sub source */ -static int OpenSub(vlc_object_t *p_this) +static int OpenSub(filter_t *p_filter) { - return OpenCommon(p_this, true); + return OpenCommon(p_filter, true); } /** @@ -585,7 +583,7 @@ static int OpenSub(vlc_object_t *p_this) */ static int OpenVideo(filter_t *p_filter) { - return OpenCommon(VLC_OBJECT(p_filter), false); + return OpenCommon(p_filter, false); } /** diff --git a/modules/spu/dynamicoverlay/dynamicoverlay.c b/modules/spu/dynamicoverlay/dynamicoverlay.c index 3640ad0686..4dc34642a0 100644 --- a/modules/spu/dynamicoverlay/dynamicoverlay.c +++ b/modules/spu/dynamicoverlay/dynamicoverlay.c @@ -44,7 +44,7 @@ /***************************************************************************** * Local prototypes *****************************************************************************/ -static int Create( vlc_object_t * ); +static int Create( filter_t * ); static void Destroy( filter_t * ); static subpicture_t *Filter( filter_t *, vlc_tick_t ); @@ -67,14 +67,13 @@ vlc_module_begin () set_shortname( N_("Overlay" )) set_category( CAT_VIDEO ) set_subcategory( SUBCAT_VIDEO_VFILTER ) - set_capability( "sub source", 0 ) add_loadfile("overlay-input", NULL, INPUT_TEXT, INPUT_LONGTEXT) /* Note: add_loadfile as O_WRONLY w/o O_CREAT, i.e. FIFO must exist */ add_loadfile("overlay-output", NULL, OUTPUT_TEXT, OUTPUT_LONGTEXT) add_shortcut( "overlay" ) - set_callback( Create ) + set_callback_sub_source( Create, 0 ) vlc_module_end () static const char *const ppsz_filter_options[] = { @@ -90,9 +89,8 @@ static const struct vlc_filter_operations filter_ops = { ***************************************************************************** * This function allocates and initializes a adjust vout method. *****************************************************************************/ -static int Create( vlc_object_t *p_this ) +static int Create( filter_t *p_filter ) { - filter_t *p_filter = (filter_t *)p_this; filter_sys_t *p_sys; /* Allocate structure */ diff --git a/modules/spu/logo.c b/modules/spu/logo.c index 40e5e8b61a..fc60a3bc93 100644 --- a/modules/spu/logo.c +++ b/modules/spu/logo.c @@ -79,7 +79,7 @@ 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") }; -static int OpenSub ( vlc_object_t * ); +static int OpenSub ( filter_t * ); static int OpenVideo( filter_t * ); static void Close ( filter_t * ); @@ -87,8 +87,7 @@ vlc_module_begin () set_category( CAT_VIDEO ) set_subcategory( SUBCAT_VIDEO_SUBPIC ) set_help(LOGO_HELP) - set_capability( "sub source", 0 ) - set_callback( OpenSub ) + set_callback_sub_source( OpenSub, 0 ) set_description( N_("Logo sub source") ) set_shortname( N_("Logo overlay") ) add_shortcut( "logo" ) @@ -183,7 +182,7 @@ static const char *const ppsz_filter_callbacks[] = { NULL }; -static int OpenCommon( vlc_object_t *, bool b_sub ); +static int OpenCommon( filter_t *, bool b_sub ); static subpicture_t *FilterSub( filter_t *, vlc_tick_t ); static picture_t *FilterVideo( filter_t *, picture_t * ); @@ -201,9 +200,9 @@ static logo_t *LogoListCurrent( logo_list_t *p_list ); /** * Open the sub source */ -static int OpenSub( vlc_object_t *p_this ) +static int OpenSub( filter_t *p_filter ) { - return OpenCommon( p_this, true ); + return OpenCommon( p_filter, true ); } /** @@ -211,7 +210,7 @@ static int OpenSub( vlc_object_t *p_this ) */ static int OpenVideo( filter_t *p_filter ) { - return OpenCommon( VLC_OBJECT(p_filter), false ); + return OpenCommon( p_filter, false ); } static const struct vlc_filter_operations filter_sub_ops = { @@ -227,9 +226,8 @@ static const struct vlc_filter_operations filter_video_ops = { /** * Common open function */ -static int OpenCommon( vlc_object_t *p_this, bool b_sub ) +static int OpenCommon( filter_t *p_filter, bool b_sub ) { - filter_t *p_filter = (filter_t *)p_this; filter_sys_t *p_sys; char *psz_filename; @@ -275,7 +273,7 @@ static int OpenCommon( vlc_object_t *p_this, bool b_sub ) return VLC_ENOMEM; } if( *psz_filename == '\0' ) - msg_Warn( p_this, "no logo file specified" ); + msg_Warn( p_filter, "no logo file specified" ); p_list->i_alpha = var_CreateGetIntegerCommand( p_filter, "logo-opacity"); p_list->i_alpha = VLC_CLIP( p_list->i_alpha, 0, 255 ); @@ -292,7 +290,7 @@ static int OpenCommon( vlc_object_t *p_this, bool b_sub ) p_sys->i_pos = 0; vlc_mutex_init( &p_sys->lock ); - LogoListLoad( p_this, p_list, psz_filename ); + LogoListLoad( VLC_OBJECT(p_filter), p_list, psz_filename ); p_sys->b_spu_update = true; p_sys->b_mouse_grab = false; diff --git a/modules/spu/marq.c b/modules/spu/marq.c index 1129877a72..95baafcc7a 100644 --- a/modules/spu/marq.c +++ b/modules/spu/marq.c @@ -43,7 +43,7 @@ /***************************************************************************** * Local prototypes *****************************************************************************/ -static int CreateFilter ( vlc_object_t * ); +static int CreateFilter ( filter_t * ); static void DestroyFilter( filter_t * ); static subpicture_t *Filter( filter_t *, vlc_tick_t ); @@ -136,11 +136,10 @@ static const char *const ppsz_pos_descriptions[] = * Module descriptor *****************************************************************************/ vlc_module_begin () - set_capability( "sub source", 0 ) set_shortname( N_("Marquee" )) set_description( N_("Marquee display") ) set_help(MARQUEE_HELP) - set_callback( CreateFilter ) + set_callback_sub_source( CreateFilter, 0 ) set_category( CAT_VIDEO ) set_subcategory( SUBCAT_VIDEO_SUBPIC ) add_string( CFG_PREFIX "marquee", "VLC", MSG_TEXT, MSG_LONGTEXT, @@ -185,9 +184,8 @@ static const struct vlc_filter_operations filter_ops = { /***************************************************************************** * CreateFilter: allocates marquee video filter *****************************************************************************/ -static int CreateFilter( vlc_object_t *p_this ) +static int CreateFilter( filter_t *p_filter ) { - filter_t *p_filter = (filter_t *)p_this; filter_sys_t *p_sys; /* Allocate structure */ diff --git a/modules/spu/mosaic.c b/modules/spu/mosaic.c index 3c9f0b8538..ef2b6a955e 100644 --- a/modules/spu/mosaic.c +++ b/modules/spu/mosaic.c @@ -44,7 +44,7 @@ /***************************************************************************** * Local prototypes *****************************************************************************/ -static int CreateFilter ( vlc_object_t * ); +static int CreateFilter ( filter_t * ); static void DestroyFilter ( filter_t * ); static subpicture_t *Filter ( filter_t *, vlc_tick_t ); @@ -176,8 +176,7 @@ vlc_module_begin () set_shortname( N_("Mosaic") ) set_category( CAT_VIDEO ) set_subcategory( SUBCAT_VIDEO_SUBPIC) - set_capability( "sub source", 0 ) - set_callback( CreateFilter ) + set_callback_sub_source( CreateFilter, 0 ) add_integer_with_range( CFG_PREFIX "alpha", 255, 0, 255, ALPHA_TEXT, ALPHA_LONGTEXT, false ) @@ -278,9 +277,8 @@ static const struct vlc_filter_operations filter_ops = { /***************************************************************************** * CreateFiler: allocate mosaic video filter *****************************************************************************/ -static int CreateFilter( vlc_object_t *p_this ) +static int CreateFilter( filter_t *p_filter ) { - filter_t *p_filter = (filter_t *)p_this; filter_sys_t *p_sys; char *psz_order, *_psz_order; char *psz_offsets; diff --git a/modules/spu/rss.c b/modules/spu/rss.c index f5a9129498..7bd0832526 100644 --- a/modules/spu/rss.c +++ b/modules/spu/rss.c @@ -49,7 +49,7 @@ /***************************************************************************** * Local prototypes *****************************************************************************/ -static int CreateFilter ( vlc_object_t * ); +static int CreateFilter ( filter_t * ); static void DestroyFilter( filter_t * ); static subpicture_t *Filter( filter_t *, vlc_tick_t ); @@ -188,10 +188,9 @@ static const char *const ppsz_title_modes[] = * Module descriptor *****************************************************************************/ vlc_module_begin () - set_capability( "sub source", 1 ) set_shortname( N_("RSS / Atom") ) set_help(RSS_HELP) - set_callback( CreateFilter ) + set_callback_sub_source( CreateFilter, 1 ) set_category( CAT_VIDEO ) set_subcategory( SUBCAT_VIDEO_SUBPIC ) add_string( CFG_PREFIX "urls", NULL, MSG_TEXT, MSG_LONGTEXT, false ) @@ -247,9 +246,8 @@ static const struct vlc_filter_operations filter_ops = { /***************************************************************************** * CreateFilter: allocates RSS video filter *****************************************************************************/ -static int CreateFilter( vlc_object_t *p_this ) +static int CreateFilter( filter_t *p_filter ) { - filter_t *p_filter = (filter_t *)p_this; filter_sys_t *p_sys; char *psz_urls; int i_ttl; _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
