vlc | branch: master | Steve Lhomme <[email protected]> | Fri Oct 9 12:22:44 2020 +0200| [e2e947211bc49a0cd99ca964437cd010d36563c2] | committer: Steve Lhomme
audio filters: use a typed close callback in the operations structure > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=e2e947211bc49a0cd99ca964437cd010d36563c2 --- modules/audio_filter/audiobargraph_a.c | 9 +++--- modules/audio_filter/channel_mixer/headphone.c | 9 +++--- modules/audio_filter/channel_mixer/mono.c | 9 +++--- .../audio_filter/channel_mixer/spatialaudio.cpp | 8 +++++- modules/audio_filter/chorus_flanger.c | 33 +++++++++++----------- modules/audio_filter/compressor.c | 9 +++--- modules/audio_filter/equalizer.c | 9 +++--- modules/audio_filter/gain.c | 9 +++--- modules/audio_filter/normvol.c | 9 +++--- modules/audio_filter/param_eq.c | 9 +++--- modules/audio_filter/scaletempo.c | 22 +++++++-------- modules/audio_filter/stereo_widen.c | 11 ++++---- 12 files changed, 70 insertions(+), 76 deletions(-) diff --git a/modules/audio_filter/audiobargraph_a.c b/modules/audio_filter/audiobargraph_a.c index 90a212c290..763ea2be20 100644 --- a/modules/audio_filter/audiobargraph_a.c +++ b/modules/audio_filter/audiobargraph_a.c @@ -62,7 +62,7 @@ * Module descriptor *****************************************************************************/ static int Open( vlc_object_t * ); -static void Close( vlc_object_t * ); +static void Close( filter_t * ); static block_t *DoWork( filter_t *, block_t * ); vlc_module_begin () @@ -82,7 +82,7 @@ vlc_module_begin () add_integer( CFG_PREFIX "repetition_time", 2000, REPETITION_TIME_TEXT, REPETITION_TIME_LONGTEXT, false ) add_obsolete_integer( CFG_PREFIX "connection_reset" ) - set_callbacks( Open, Close ) + set_callback( Open ) vlc_module_end () typedef struct ValueDate_t { @@ -140,7 +140,7 @@ static int Open( vlc_object_t *p_this ) static const struct vlc_filter_operations filter_ops = { - .filter_audio = DoWork, + .filter_audio = DoWork, .close = Close, }; p_filter->ops = &filter_ops; @@ -250,9 +250,8 @@ static block_t *DoWork( filter_t *p_filter, block_t *p_in_buf ) /***************************************************************************** * Close: close the plugin *****************************************************************************/ -static void Close( vlc_object_t *p_this ) +static void Close( filter_t * p_filter ) { - filter_t * p_filter = (filter_t *)p_this; filter_sys_t *p_sys = p_filter->p_sys; vlc_object_t *vlc = VLC_OBJECT(vlc_object_instance(p_filter)); diff --git a/modules/audio_filter/channel_mixer/headphone.c b/modules/audio_filter/channel_mixer/headphone.c index 77aa32411b..c03ed98fa7 100644 --- a/modules/audio_filter/channel_mixer/headphone.c +++ b/modules/audio_filter/channel_mixer/headphone.c @@ -41,7 +41,7 @@ * Local prototypes *****************************************************************************/ static int OpenFilter ( vlc_object_t * ); -static void CloseFilter( vlc_object_t * ); +static void CloseFilter( filter_t * ); static block_t *Convert( filter_t *, block_t * ); /***************************************************************************** @@ -85,7 +85,7 @@ vlc_module_begin () HEADPHONE_DOLBY_LONGTEXT, true ) set_capability( "audio filter", 0 ) - set_callbacks( OpenFilter, CloseFilter ) + set_callback( OpenFilter ) add_shortcut( "headphone" ) vlc_module_end () @@ -481,7 +481,7 @@ static int OpenFilter( vlc_object_t *p_this ) static const struct vlc_filter_operations filter_ops = { - .filter_audio = Convert, + .filter_audio = Convert, .close = CloseFilter, }; p_filter->ops = &filter_ops; @@ -494,9 +494,8 @@ static int OpenFilter( vlc_object_t *p_this ) /***************************************************************************** * CloseFilter : deallocate data structures *****************************************************************************/ -static void CloseFilter( vlc_object_t *p_this ) +static void CloseFilter( filter_t *p_filter ) { - filter_t *p_filter = (filter_t *)p_this; filter_sys_t *p_sys = p_filter->p_sys; free( p_sys->p_overflow_buffer ); diff --git a/modules/audio_filter/channel_mixer/mono.c b/modules/audio_filter/channel_mixer/mono.c index 74f8ccb736..e7b5762561 100644 --- a/modules/audio_filter/channel_mixer/mono.c +++ b/modules/audio_filter/channel_mixer/mono.c @@ -40,7 +40,7 @@ * Local prototypes *****************************************************************************/ static int OpenFilter ( vlc_object_t * ); -static void CloseFilter ( vlc_object_t * ); +static void CloseFilter ( filter_t * ); static block_t *Convert( filter_t *p_filter, block_t *p_block ); @@ -98,7 +98,7 @@ vlc_module_begin () set_capability( "audio filter", 0 ) set_category( CAT_AUDIO ) set_subcategory( SUBCAT_AUDIO_AFILTER ) - set_callbacks( OpenFilter, CloseFilter ) + set_callback( OpenFilter ) set_shortname( "Mono" ) add_bool( MONO_CFG "downmix", true, MONO_DOWNMIX_TEXT, @@ -387,7 +387,7 @@ static int OpenFilter( vlc_object_t *p_this ) static const struct vlc_filter_operations filter_ops = { - .filter_audio = Convert, + .filter_audio = Convert, .close = CloseFilter, }; p_filter->ops = &filter_ops; @@ -410,9 +410,8 @@ static int OpenFilter( vlc_object_t *p_this ) /***************************************************************************** * CloseFilter *****************************************************************************/ -static void CloseFilter( vlc_object_t *p_this) +static void CloseFilter( filter_t *p_filter ) { - filter_t *p_filter = (filter_t *) p_this; filter_sys_t *p_sys = p_filter->p_sys; free( p_sys->p_atomic_operations ); diff --git a/modules/audio_filter/channel_mixer/spatialaudio.cpp b/modules/audio_filter/channel_mixer/spatialaudio.cpp index 803c03bbaa..132adc4a6e 100644 --- a/modules/audio_filter/channel_mixer/spatialaudio.cpp +++ b/modules/audio_filter/channel_mixer/spatialaudio.cpp @@ -75,7 +75,7 @@ vlc_module_begin() add_submodule() set_shortname(N_("Binauralizer")) set_capability("audio filter", 0) - set_callbacks(OpenBinauralizer, Close) + set_callback(OpenBinauralizer) add_shortcut("binauralizer") vlc_module_end() @@ -318,6 +318,11 @@ static int allocateBuffers(filter_spatialaudio *p_sys) return VLC_SUCCESS; } +static void CloseFilter(filter_t *p_filter) +{ + Close( VLC_OBJECT(p_filter) ); +} + static const struct FilterOperationInitializer { struct vlc_filter_operations ops {}; FilterOperationInitializer() @@ -325,6 +330,7 @@ static const struct FilterOperationInitializer { ops.filter_audio = Mix; ops.flush = Flush; ops.change_viewpoint = ChangeViewpoint; + ops.close = CloseFilter; }; } filter_ops; diff --git a/modules/audio_filter/chorus_flanger.c b/modules/audio_filter/chorus_flanger.c index 6732fd412c..0d1114790f 100644 --- a/modules/audio_filter/chorus_flanger.c +++ b/modules/audio_filter/chorus_flanger.c @@ -40,7 +40,7 @@ typedef struct filter_sys_t filter_sys_t; static int Open ( vlc_object_t * ); -static void Close ( vlc_object_t * ); +static void Close ( filter_t * ); static block_t *DoWork( filter_t *, block_t * ); static int paramCallback( vlc_object_t *, char const *, vlc_value_t , vlc_value_t , void * ); @@ -93,7 +93,7 @@ vlc_module_begin () add_float_with_range( "dry-mix", 0.4, -0.999, 0.999, N_("Dry Mix"), N_("Level of input signal"), true ) set_capability( "audio filter", 0 ) - set_callbacks( Open, Close ) + set_callback( Open ) vlc_module_end () /** @@ -199,7 +199,7 @@ static int Open( vlc_object_t *p_this ) static const struct vlc_filter_operations filter_ops = { - .filter_audio = DoWork, + .filter_audio = DoWork, .close = Close, }; p_filter->ops = &filter_ops; @@ -308,23 +308,22 @@ static block_t *DoWork( filter_t *p_filter, block_t *p_in_buf ) * Close: Destructor * @param p_this pointer to this filter object */ -static void Close( vlc_object_t *p_this ) +static void Close( filter_t *p_filter ) { - filter_t *p_filter = ( filter_t* )p_this; filter_sys_t *p_sys = p_filter->p_sys; - var_DelCallback( p_this, "delay-time", paramCallback, p_sys ); - var_DelCallback( p_this, "sweep-depth", paramCallback, p_sys ); - var_DelCallback( p_this, "sweep-rate", paramCallback, p_sys ); - var_DelCallback( p_this, "feedback-gain", paramCallback, p_sys ); - var_DelCallback( p_this, "wet-mix", paramCallback, p_sys ); - var_DelCallback( p_this, "dry-mix", paramCallback, p_sys ); - var_Destroy( p_this, "delay-time" ); - var_Destroy( p_this, "sweep-depth" ); - var_Destroy( p_this, "sweep-rate" ); - var_Destroy( p_this, "feedback-gain" ); - var_Destroy( p_this, "wet-mix" ); - var_Destroy( p_this, "dry-mix" ); + var_DelCallback( p_filter, "delay-time", paramCallback, p_sys ); + var_DelCallback( p_filter, "sweep-depth", paramCallback, p_sys ); + var_DelCallback( p_filter, "sweep-rate", paramCallback, p_sys ); + var_DelCallback( p_filter, "feedback-gain", paramCallback, p_sys ); + var_DelCallback( p_filter, "wet-mix", paramCallback, p_sys ); + var_DelCallback( p_filter, "dry-mix", paramCallback, p_sys ); + var_Destroy( p_filter, "delay-time" ); + var_Destroy( p_filter, "sweep-depth" ); + var_Destroy( p_filter, "sweep-rate" ); + var_Destroy( p_filter, "feedback-gain" ); + var_Destroy( p_filter, "wet-mix" ); + var_Destroy( p_filter, "dry-mix" ); free( p_sys->p_delayLineStart ); free( p_sys ); diff --git a/modules/audio_filter/compressor.c b/modules/audio_filter/compressor.c index 5f25865d55..0a1899e7dc 100644 --- a/modules/audio_filter/compressor.c +++ b/modules/audio_filter/compressor.c @@ -115,7 +115,7 @@ typedef union } ls_pcast32; static int Open ( vlc_object_t * ); -static void Close ( vlc_object_t * ); +static void Close ( filter_t * ); static block_t *DoWork ( filter_t *, block_t * ); static void DbInit ( filter_sys_t * ); @@ -193,7 +193,7 @@ vlc_module_begin() KNEE_TEXT, KNEE_LONGTEXT, false ) add_float_with_range( "compressor-makeup-gain", 7.0, 0.0, 24.0, MAKEUP_GAIN_TEXT, MAKEUP_GAIN_LONGTEXT, false ) - set_callbacks( Open, Close ) + set_callback( Open ) add_shortcut( "compressor" ) vlc_module_end () @@ -259,7 +259,7 @@ static int Open( vlc_object_t *p_this ) static const struct vlc_filter_operations filter_ops = { - .filter_audio = DoWork, + .filter_audio = DoWork, .close = Close, }; p_filter->ops = &filter_ops; @@ -272,9 +272,8 @@ static int Open( vlc_object_t *p_this ) * Close: destroy interface *****************************************************************************/ -static void Close( vlc_object_t *p_this ) +static void Close( filter_t *p_filter ) { - filter_t *p_filter = (filter_t*)p_this; vlc_object_t *p_aout = vlc_object_parent(p_filter); filter_sys_t *p_sys = p_filter->p_sys; diff --git a/modules/audio_filter/equalizer.c b/modules/audio_filter/equalizer.c index b99beb7ccd..2def046167 100644 --- a/modules/audio_filter/equalizer.c +++ b/modules/audio_filter/equalizer.c @@ -52,7 +52,7 @@ * Module descriptor *****************************************************************************/ static int Open ( vlc_object_t * ); -static void Close( vlc_object_t * ); +static void Close( filter_t * ); #define PRESET_TEXT N_( "Equalizer preset" ) #define PRESET_LONGTEXT N_("Preset to use for the equalizer." ) @@ -93,7 +93,7 @@ vlc_module_begin () VLC_BANDS_LONGTEXT, true ) add_float( "equalizer-preamp", 12.0f, PREAMP_TEXT, PREAMP_LONGTEXT, true ) - set_callbacks( Open, Close ) + set_callback( Open ) add_shortcut( "equalizer" ) vlc_module_end () @@ -166,7 +166,7 @@ static int Open( vlc_object_t *p_this ) p_filter->fmt_out.audio = p_filter->fmt_in.audio; static const struct vlc_filter_operations filter_ops = { - .filter_audio = DoWork, + .filter_audio = DoWork, .close = Close, }; p_filter->ops = &filter_ops; @@ -176,9 +176,8 @@ static int Open( vlc_object_t *p_this ) /***************************************************************************** * Close: close the plugin *****************************************************************************/ -static void Close( vlc_object_t *p_this ) +static void Close( filter_t *p_filter ) { - filter_t *p_filter = (filter_t *)p_this; filter_sys_t *p_sys = p_filter->p_sys; EqzClean( p_filter ); diff --git a/modules/audio_filter/gain.c b/modules/audio_filter/gain.c index 049677396f..7278a57693 100644 --- a/modules/audio_filter/gain.c +++ b/modules/audio_filter/gain.c @@ -41,7 +41,7 @@ *****************************************************************************/ static int Open ( vlc_object_t * ); -static void Close ( vlc_object_t * ); +static void Close ( filter_t * ); static block_t *Process ( filter_t *, block_t * ); typedef struct @@ -68,7 +68,7 @@ vlc_module_begin() GAIN_VALUE_LONGTEXT, false ) set_capability( "audio filter", 0 ) - set_callbacks( Open, Close ) + set_callback( Open ) vlc_module_end() @@ -100,7 +100,7 @@ static int Open( vlc_object_t *p_this ) p_filter->fmt_out.audio = p_filter->fmt_in.audio; static const struct vlc_filter_operations filter_ops = - { .filter_audio = Process }; + { .filter_audio = Process, .close = Close }; p_filter->ops = &filter_ops; return VLC_SUCCESS; @@ -124,9 +124,8 @@ static block_t *Process( filter_t *p_filter, block_t *p_block ) * Close: close filter *****************************************************************************/ -static void Close( vlc_object_t *p_this ) +static void Close( filter_t *p_filter ) { - filter_t *p_filter = (filter_t*)p_this; filter_sys_t *p_sys = p_filter->p_sys; module_unneed( &p_sys->volume, p_sys->module ); diff --git a/modules/audio_filter/normvol.c b/modules/audio_filter/normvol.c index 0fc01194d1..2e8796655c 100644 --- a/modules/audio_filter/normvol.c +++ b/modules/audio_filter/normvol.c @@ -48,7 +48,7 @@ *****************************************************************************/ static int Open ( vlc_object_t * ); -static void Close ( vlc_object_t * ); +static void Close ( filter_t * ); static block_t *DoWork( filter_t *, block_t * ); typedef struct @@ -84,7 +84,7 @@ vlc_module_begin () add_float( "norm-max-level", 2.0, LEVEL_TEXT, LEVEL_LONGTEXT, true ) set_capability( "audio filter", 0 ) - set_callbacks( Open, Close ) + set_callback( Open ) vlc_module_end () /***************************************************************************** @@ -121,7 +121,7 @@ static int Open( vlc_object_t *p_this ) p_filter->fmt_out.audio = p_filter->fmt_in.audio; static const struct vlc_filter_operations filter_ops = { - .filter_audio = DoWork, + .filter_audio = DoWork, .close = Close, }; p_filter->ops = &filter_ops; @@ -226,9 +226,8 @@ out: /********************************************************************** * Close **********************************************************************/ -static void Close( vlc_object_t *p_this ) +static void Close( filter_t *p_filter ) { - filter_t *p_filter = (filter_t*)p_this; filter_sys_t *p_sys = p_filter->p_sys; free( p_sys->p_last ); diff --git a/modules/audio_filter/param_eq.c b/modules/audio_filter/param_eq.c index 57efac83d5..21ae125627 100644 --- a/modules/audio_filter/param_eq.c +++ b/modules/audio_filter/param_eq.c @@ -40,7 +40,7 @@ * Module descriptor *****************************************************************************/ static int Open ( vlc_object_t * ); -static void Close( vlc_object_t * ); +static void Close( filter_t * ); static void CalcPeakEQCoeffs( float, float, float, float, float * ); static void CalcShelfEQCoeffs( float, float, float, int, float, float * ); static void ProcessEQ( const float *, float *, float *, unsigned, unsigned, @@ -76,7 +76,7 @@ vlc_module_begin () add_float_with_range( "param-eq-q3", 3, 0.1, 100.0, N_("Freq 3 Q"),NULL,false ) - set_callbacks( Open, Close ) + set_callback( Open ) vlc_module_end () /***************************************************************************** @@ -117,7 +117,7 @@ static int Open( vlc_object_t *p_this ) static const struct vlc_filter_operations filter_ops = { - .filter_audio = DoWork, + .filter_audio = DoWork, .close = Close, }; p_filter->ops = &filter_ops; @@ -156,9 +156,8 @@ static int Open( vlc_object_t *p_this ) return VLC_SUCCESS; } -static void Close( vlc_object_t *p_this ) +static void Close( filter_t *p_filter ) { - filter_t *p_filter = (filter_t *)p_this; filter_sys_t *p_sys = p_filter->p_sys; free( p_sys->p_state ); free( p_sys ); diff --git a/modules/audio_filter/scaletempo.c b/modules/audio_filter/scaletempo.c index 59e2fc05fe..3f56f94342 100644 --- a/modules/audio_filter/scaletempo.c +++ b/modules/audio_filter/scaletempo.c @@ -41,12 +41,12 @@ * Module descriptor *****************************************************************************/ static int Open( vlc_object_t * ); -static void Close( vlc_object_t * ); +static void Close( filter_t * ); static block_t *DoWork( filter_t *, block_t * ); #ifdef PITCH_SHIFTER static int OpenPitch( vlc_object_t * ); -static void ClosePitch( vlc_object_t * ); +static void ClosePitch( filter_t * ); static block_t *DoPitchWork( filter_t *, block_t * ); # define MODULE_DESC N_("Pitch Shifter") # define MODULES_SHORTNAME N_("Audio pitch changer") @@ -71,9 +71,9 @@ vlc_module_begin () #ifdef PITCH_SHIFTER add_float_with_range( "pitch-shift", 0, -12, 12, N_("Pitch Shift"), N_("Pitch shift in semitones."), false ) - set_callbacks( OpenPitch, ClosePitch ) + set_callback( OpenPitch ) #else - set_callbacks( Open, Close ) + set_callback( Open ) #endif vlc_module_end () @@ -437,7 +437,7 @@ static int Open( vlc_object_t *p_this ) if( reinit_buffers( p_filter ) != VLC_SUCCESS ) { - Close( p_this ); + Close( p_filter ); return VLC_EGENERIC; } @@ -446,7 +446,7 @@ static int Open( vlc_object_t *p_this ) p_filter->fmt_out.audio = p_filter->fmt_in.audio; static const struct vlc_filter_operations filter_ops = { - .filter_audio = DoWork, + .filter_audio = DoWork, .close = Close, }; p_filter->ops = &filter_ops; @@ -517,7 +517,7 @@ static int OpenPitch( vlc_object_t *p_this ) static const struct vlc_filter_operations filter_ops = { - .filter_audio = DoPitchWork, + .filter_audio = DoPitchWork, .close = ClosePitch, }; p_filter->ops = &filter_ops; @@ -525,9 +525,8 @@ static int OpenPitch( vlc_object_t *p_this ) } #endif -static void Close( vlc_object_t *p_this ) +static void Close( filter_t *p_filter ) { - filter_t *p_filter = (filter_t *)p_this; filter_sys_t *p_sys = p_filter->p_sys; free( p_sys->buf_queue ); free( p_sys->buf_overlap ); @@ -538,9 +537,8 @@ static void Close( vlc_object_t *p_this ) } #ifdef PITCH_SHIFTER -static void ClosePitch( vlc_object_t *p_this ) +static void ClosePitch( filter_t *p_filter ) { - filter_t *p_filter = (filter_t *)p_this; filter_sys_t *p_sys = p_filter->p_sys; vlc_object_t *p_aout = vlc_object_parent(p_filter); var_DelCallback( p_aout, "pitch-shift", PitchCallback, p_sys ); @@ -548,7 +546,7 @@ static void ClosePitch( vlc_object_t *p_this ) filter_Close( p_sys->resampler ); module_unneed( p_sys->resampler, p_sys->resampler->p_module ); vlc_object_delete(p_sys->resampler); - Close( p_this ); + Close( p_filter ); } #endif diff --git a/modules/audio_filter/stereo_widen.c b/modules/audio_filter/stereo_widen.c index ba19de6d46..d9ad634963 100644 --- a/modules/audio_filter/stereo_widen.c +++ b/modules/audio_filter/stereo_widen.c @@ -33,7 +33,7 @@ * Local prototypes *****************************************************************************/ static int Open ( vlc_object_t * ); -static void Close( vlc_object_t * ); +static void Close( filter_t * ); static block_t *Filter ( filter_t *, block_t * ); static int paramCallback( vlc_object_t *, char const *, vlc_value_t , @@ -80,7 +80,7 @@ vlc_module_begin () set_category( CAT_AUDIO ) set_subcategory( SUBCAT_AUDIO_AFILTER ) set_capability( "audio filter", 0 ) - set_callbacks( Open, Close ) + set_callback( Open ) add_float_with_range( CONFIG_PREFIX "delay", 20, 1, 100, DELAY_TEXT, DELAY_LONGTEXT, true ) @@ -149,13 +149,13 @@ static int Open( vlc_object_t *obj ) if( MakeRingBuffer( &p_sys->pf_ringbuf, &p_sys->i_len, &p_sys->pf_write, p_sys->f_delay, p_filter->fmt_in.audio.i_rate ) != VLC_SUCCESS ) { - Close( obj ); + Close( p_filter ); return VLC_ENOMEM; } static const struct vlc_filter_operations filter_ops = { - .filter_audio = Filter, + .filter_audio = Filter, .close = Close, }; p_filter->ops = &filter_ops; return VLC_SUCCESS; @@ -198,9 +198,8 @@ static block_t *Filter( filter_t *p_filter, block_t *p_block ) /***************************************************************************** * Close: close the plugin *****************************************************************************/ -static void Close( vlc_object_t *obj ) +static void Close( filter_t *p_filter ) { - filter_t *p_filter = (filter_t *)obj; vlc_object_t *p_aout = vlc_object_parent(p_filter); filter_sys_t *p_sys = p_filter->p_sys; _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
