From e83b92d7bbd739871294d9be2119f9c1c05d3acf Mon Sep 17 00:00:00 2001 From: =?utf8?q?R=C3=A9mi=20Denis-Courmont?= Date: Sun, 22 Nov 2009 11:45:41 +0200 Subject: [PATCH] Remove the trivial "resampler" The ugly resampler is almost as fast yet way better. --- modules/LIST | 1 - modules/audio_filter/resampler/Modules.am | 1 - modules/audio_filter/resampler/trivial.c | 108 ---------------------- 3 files changed, 110 deletions(-) delete mode 100644 modules/audio_filter/resampler/trivial.c diff --git a/modules/LIST b/modules/LIST index 51762b5808..47bf7b6ed3 100644 --- a/modules/LIST +++ b/modules/LIST @@ -331,7 +331,6 @@ $Id$ * tremor: a vorbis audio decoder using the libvorbisidec (aka tremor) library * trivial_channel_mixer: Simple channel mixer plugin * trivial_mixer: Trivial audio mixer plugin - * trivial_resampler: Simple audio resampler * ts: MPEG-TS demuxer * tta: Lossless True Audio parser * twolame: a mp1 mp2 audio encoder based on twolame diff --git a/modules/audio_filter/resampler/Modules.am b/modules/audio_filter/resampler/Modules.am index 085216ad95..07b33576b9 100644 --- a/modules/audio_filter/resampler/Modules.am +++ b/modules/audio_filter/resampler/Modules.am @@ -1,4 +1,3 @@ -SOURCES_trivial_resampler = trivial.c SOURCES_ugly_resampler = ugly.c SOURCES_linear_resampler = linear.c SOURCES_bandlimited_resampler = bandlimited.c bandlimited.h diff --git a/modules/audio_filter/resampler/trivial.c b/modules/audio_filter/resampler/trivial.c deleted file mode 100644 index 05af9811c7..0000000000 --- a/modules/audio_filter/resampler/trivial.c +++ /dev/null @@ -1,108 +0,0 @@ -/***************************************************************************** - * trivial.c : trivial resampler (skips samples or pads with zeroes) - ***************************************************************************** - * Copyright (C) 2002-2009 the VideoLAN team - * $Id$ - * - * Authors: Christophe Massiot - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. - *****************************************************************************/ - -/***************************************************************************** - * Preamble - *****************************************************************************/ - -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif - -#include -#include -#include -#include - -/***************************************************************************** - * Local prototypes - *****************************************************************************/ -static int Create ( vlc_object_t * ); - -static block_t *DoWork( filter_t *, block_t * ); - -/***************************************************************************** - * Module descriptor - *****************************************************************************/ -vlc_module_begin () - set_description( N_("Audio filter for trivial resampling") ) - set_capability( "audio filter", 1 ) - set_category( CAT_AUDIO ) - set_subcategory( SUBCAT_AUDIO_MISC ) - set_callbacks( Create, NULL ) -vlc_module_end () - -/***************************************************************************** - * Create: allocate trivial resampler - *****************************************************************************/ -static int Create( vlc_object_t *p_this ) -{ - filter_t * p_filter = (filter_t *)p_this; - - if ( p_filter->fmt_in.audio.i_rate == p_filter->fmt_out.audio.i_rate - || p_filter->fmt_in.audio.i_format != p_filter->fmt_out.audio.i_format - || p_filter->fmt_in.audio.i_physical_channels - != p_filter->fmt_out.audio.i_physical_channels - || p_filter->fmt_in.audio.i_original_channels - != p_filter->fmt_out.audio.i_original_channels - || (p_filter->fmt_in.audio.i_format != VLC_CODEC_FL32 - && p_filter->fmt_in.audio.i_format != VLC_CODEC_FI32) ) - { - return VLC_EGENERIC; - } - - p_filter->pf_audio_filter = DoWork; - return VLC_SUCCESS; -} - -/***************************************************************************** - * DoWork: convert a buffer - *****************************************************************************/ -static block_t *DoWork( filter_t * p_filter, block_t * p_block ) -{ - /* Check if we really need to run the resampler */ - if( p_filter->fmt_out.audio.i_rate == p_filter->fmt_in.audio.i_rate ) - return p_block; - - int i_in_nb = p_block->i_nb_samples; - int i_out_nb = i_in_nb * p_filter->fmt_out.audio.i_rate - / p_filter->fmt_in.audio.i_rate; - int i_sample_bytes = aout_FormatNbChannels( &p_filter->fmt_in.audio ) - * sizeof(int32_t); - - p_block = block_Realloc( p_block, 0, i_out_nb * i_sample_bytes ); - if( !p_block ) - return NULL; - - if( i_out_nb > i_in_nb ) - { - /* Pad with zeroes. */ - memset( p_block->p_buffer + i_in_nb * i_sample_bytes, - 0, (i_out_nb - i_in_nb) * i_sample_bytes ); - } - - p_block->i_nb_samples = i_out_nb; - p_block->i_length = p_block->i_nb_samples * - CLOCK_FREQ / p_filter->fmt_out.audio.i_rate; - return p_block; -} -- 2.39.2