vlc | branch: master | Steve Lhomme <[email protected]> | Fri Oct 9 13:08:04 2020 +0200| [acd305eb94fd7e8ca8cd0c88ee85110c8531006b] | committer: Steve Lhomme
audio renderer/resampler/converter: use a typed close callback in the operations structure > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=acd305eb94fd7e8ca8cd0c88ee85110c8531006b --- modules/audio_filter/channel_mixer/spatialaudio.cpp | 15 ++++----------- modules/audio_filter/resampler/bandlimited.c | 11 +++++------ modules/audio_filter/resampler/soxr.c | 10 +++++----- modules/audio_filter/resampler/speex.c | 11 +++++------ modules/audio_filter/resampler/src.c | 11 +++++------ 5 files changed, 24 insertions(+), 34 deletions(-) diff --git a/modules/audio_filter/channel_mixer/spatialaudio.cpp b/modules/audio_filter/channel_mixer/spatialaudio.cpp index 132adc4a6e..c8cda9175d 100644 --- a/modules/audio_filter/channel_mixer/spatialaudio.cpp +++ b/modules/audio_filter/channel_mixer/spatialaudio.cpp @@ -57,7 +57,7 @@ static int OpenBinauralizer(vlc_object_t *p_this); static int Open( vlc_object_t * ); -static void Close( vlc_object_t * ); +static void Close( filter_t * ); static void Flush( filter_t * ); vlc_module_begin() @@ -66,7 +66,7 @@ vlc_module_begin() set_capability("audio renderer", 1) set_category(CAT_AUDIO) set_subcategory(SUBCAT_AUDIO_AFILTER) - set_callbacks(Open, Close) + set_callback(Open) add_bool(CFG_PREFIX "headphones", false, HEADPHONES_TEXT, HEADPHONES_LONGTEXT, true) add_loadfile("hrtf-file", NULL, HRTF_FILE_TEXT, HRTF_FILE_LONGTEXT) @@ -318,11 +318,6 @@ 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() @@ -330,7 +325,7 @@ static const struct FilterOperationInitializer { ops.filter_audio = Mix; ops.flush = Flush; ops.change_viewpoint = ChangeViewpoint; - ops.close = CloseFilter; + ops.close = Close; }; } filter_ops; @@ -560,10 +555,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_spatialaudio *p_sys = reinterpret_cast<filter_spatialaudio *>(p_filter->p_sys); delete p_sys; } diff --git a/modules/audio_filter/resampler/bandlimited.c b/modules/audio_filter/resampler/bandlimited.c index 1256f71afd..97ae848565 100644 --- a/modules/audio_filter/resampler/bandlimited.c +++ b/modules/audio_filter/resampler/bandlimited.c @@ -52,7 +52,7 @@ /* audio filter */ static int OpenFilter ( vlc_object_t * ); -static void CloseFilter( vlc_object_t * ); +static void CloseFilter( filter_t * ); static block_t *Resample( filter_t *, block_t * ); static void ResampleFloat( filter_t *p_filter, @@ -87,11 +87,11 @@ vlc_module_begin () set_subcategory( SUBCAT_AUDIO_RESAMPLER ) set_description( N_("Audio filter for band-limited interpolation resampling") ) set_capability( "audio converter", 20 ) - set_callbacks( OpenFilter, CloseFilter ) + set_callback( OpenFilter ) add_submodule() set_capability( "audio resampler", 20 ) - set_callbacks( OpenFilter, CloseFilter ) + set_callback( OpenFilter ) vlc_module_end () /***************************************************************************** @@ -280,7 +280,7 @@ static block_t *Resample( filter_t * p_filter, block_t * p_in_buf ) } static const struct vlc_filter_operations filter_ops = { - .filter_audio = Resample, + .filter_audio = Resample, .close = CloseFilter, }; /***************************************************************************** @@ -329,9 +329,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; free( p_filter->p_sys->p_buf ); free( p_filter->p_sys ); } diff --git a/modules/audio_filter/resampler/soxr.c b/modules/audio_filter/resampler/soxr.c index b073e3e3a3..2e4f1dbf1c 100644 --- a/modules/audio_filter/resampler/soxr.c +++ b/modules/audio_filter/resampler/soxr.c @@ -61,7 +61,7 @@ static const soxr_datatype_t soxr_resampler_quality_list[] = static int OpenConverter( vlc_object_t * ); static int OpenResampler( vlc_object_t * ); -static void Close( vlc_object_t * ); +static void Close( filter_t * ); vlc_module_begin () set_shortname( N_("SoX Resampler") ) @@ -72,11 +72,11 @@ vlc_module_begin () change_integer_list( soxr_resampler_quality_vlclist, soxr_resampler_quality_vlctext ) set_capability ( "audio converter", 51 ) - set_callbacks( OpenConverter, Close ) + set_callback( OpenConverter ) add_submodule() set_capability( "audio resampler", 51 ) - set_callbacks( OpenResampler, Close ) + set_callback( OpenResampler ) add_shortcut( "soxr" ) vlc_module_end () @@ -193,6 +193,7 @@ Open( vlc_object_t *p_obj, bool b_change_ratio ) .filter_audio = Resample, .drain_audio = Drain, .flush = Flush, + .close = Close, }; p_filter->ops = &filter_ops; p_filter->p_sys = p_sys; @@ -223,9 +224,8 @@ OpenConverter( vlc_object_t *p_obj ) } static void -Close( vlc_object_t *p_obj ) +Close( filter_t *p_filter ) { - filter_t *p_filter = (filter_t *)p_obj; filter_sys_t *p_sys = p_filter->p_sys; soxr_delete( p_sys->soxr ); diff --git a/modules/audio_filter/resampler/speex.c b/modules/audio_filter/resampler/speex.c index 6c339489c2..37f92e1596 100644 --- a/modules/audio_filter/resampler/speex.c +++ b/modules/audio_filter/resampler/speex.c @@ -36,7 +36,7 @@ static int Open (vlc_object_t *); static int OpenResampler (vlc_object_t *); -static void Close (vlc_object_t *); +static void Close (filter_t *); vlc_module_begin () set_shortname (N_("Speex resampler")) @@ -47,11 +47,11 @@ vlc_module_begin () QUALITY_TEXT, QUALITY_LONGTEXT, true) change_integer_range (0, 10) set_capability ("audio converter", 0) - set_callbacks (Open, Close) + set_callback (Open) add_submodule () set_capability ("audio resampler", 0) - set_callbacks (OpenResampler, Close) + set_callback (OpenResampler) add_shortcut ("speex") vlc_module_end () @@ -93,7 +93,7 @@ static int OpenResampler (vlc_object_t *obj) } static const struct vlc_filter_operations filter_ops = - { .filter_audio = Resample }; + { .filter_audio = Resample, .close = Close }; filter->p_sys = st; filter->ops = &filter_ops; @@ -111,9 +111,8 @@ static int Open (vlc_object_t *obj) return OpenResampler (obj); } -static void Close (vlc_object_t *obj) +static void Close (filter_t *filter) { - filter_t *filter = (filter_t *)obj; SpeexResamplerState *st = (SpeexResamplerState *)filter->p_sys; speex_resampler_destroy (st); diff --git a/modules/audio_filter/resampler/src.c b/modules/audio_filter/resampler/src.c index 5e069e76bc..51b955f408 100644 --- a/modules/audio_filter/resampler/src.c +++ b/modules/audio_filter/resampler/src.c @@ -52,7 +52,7 @@ static const char *const conv_type_texts[] = { static int Open (vlc_object_t *); static int OpenResampler (vlc_object_t *); -static void Close (vlc_object_t *); +static void Close (filter_t *); vlc_module_begin () set_shortname (N_("SRC resampler")) @@ -63,11 +63,11 @@ vlc_module_begin () SRC_CONV_TYPE_TEXT, SRC_CONV_TYPE_LONGTEXT, true) change_integer_list (conv_type_values, conv_type_texts) set_capability ("audio converter", 50) - set_callbacks (Open, Close) + set_callback (Open) add_submodule () set_capability ("audio resampler", 50) - set_callbacks (OpenResampler, Close) + set_callback (OpenResampler) vlc_module_end () static block_t *Resample (filter_t *, block_t *); @@ -105,7 +105,7 @@ static int OpenResampler (vlc_object_t *obj) static const struct vlc_filter_operations filter_ops = { - .filter_audio = Resample, + .filter_audio = Resample, .close = Close, }; filter->ops = &filter_ops; filter->p_sys = s; @@ -113,9 +113,8 @@ static int OpenResampler (vlc_object_t *obj) return VLC_SUCCESS; } -static void Close (vlc_object_t *obj) +static void Close (filter_t *filter) { - filter_t *filter = (filter_t *)obj; SRC_STATE *s = (SRC_STATE *)filter->p_sys; src_delete (s); _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
