pcm_resample: renamed implementation functions
Added diversion functions to pcm_resample.c. These check which resampler is enabled at compile time (libsamplerate or fallback). This prepares the following patch.
This commit is contained in:
		@@ -101,6 +101,7 @@ mpd_headers = \
 | 
				
			|||||||
	src/pcm_channels.h \
 | 
						src/pcm_channels.h \
 | 
				
			||||||
	src/pcm_format.h \
 | 
						src/pcm_format.h \
 | 
				
			||||||
	src/pcm_resample.h \
 | 
						src/pcm_resample.h \
 | 
				
			||||||
 | 
						src/pcm_resample_internal.h \
 | 
				
			||||||
	src/pcm_dither.h \
 | 
						src/pcm_dither.h \
 | 
				
			||||||
	src/pcm_prng.h \
 | 
						src/pcm_prng.h \
 | 
				
			||||||
	src/permission.h \
 | 
						src/permission.h \
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -17,7 +17,7 @@
 | 
				
			|||||||
 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 | 
					 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "pcm_resample.h"
 | 
					#include "pcm_resample_internal.h"
 | 
				
			||||||
#include "config.h"
 | 
					#include "config.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <string.h>
 | 
					#include <string.h>
 | 
				
			||||||
@@ -33,3 +33,50 @@ void pcm_resample_init(struct pcm_resample_state *state)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	pcm_buffer_init(&state->buffer);
 | 
						pcm_buffer_init(&state->buffer);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void pcm_resample_deinit(struct pcm_resample_state *state)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					#ifdef HAVE_LIBSAMPLERATE
 | 
				
			||||||
 | 
						pcm_resample_lsr_deinit(state);
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
						pcm_resample_fallback_deinit(state);
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int16_t *
 | 
				
			||||||
 | 
					pcm_resample_16(struct pcm_resample_state *state,
 | 
				
			||||||
 | 
							uint8_t channels,
 | 
				
			||||||
 | 
							unsigned src_rate,
 | 
				
			||||||
 | 
							const int16_t *src_buffer, size_t src_size,
 | 
				
			||||||
 | 
							unsigned dest_rate,
 | 
				
			||||||
 | 
							size_t *dest_size_r)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					#ifdef HAVE_LIBSAMPLERATE
 | 
				
			||||||
 | 
						return pcm_resample_lsr_16(state, channels,
 | 
				
			||||||
 | 
									   src_rate, src_buffer, src_size,
 | 
				
			||||||
 | 
									   dest_rate, dest_size_r);
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
						return pcm_resample_fallback_16(state, channels,
 | 
				
			||||||
 | 
										src_rate, src_buffer, src_size,
 | 
				
			||||||
 | 
										dest_rate, dest_size_r);
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int32_t *
 | 
				
			||||||
 | 
					pcm_resample_32(struct pcm_resample_state *state,
 | 
				
			||||||
 | 
							uint8_t channels,
 | 
				
			||||||
 | 
							unsigned src_rate,
 | 
				
			||||||
 | 
							const int32_t *src_buffer, size_t src_size,
 | 
				
			||||||
 | 
							unsigned dest_rate,
 | 
				
			||||||
 | 
							size_t *dest_size_r)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					#ifdef HAVE_LIBSAMPLERATE
 | 
				
			||||||
 | 
						return pcm_resample_lsr_32(state, channels,
 | 
				
			||||||
 | 
									   src_rate, src_buffer, src_size,
 | 
				
			||||||
 | 
									   dest_rate, dest_size_r);
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
						return pcm_resample_fallback_32(state, channels,
 | 
				
			||||||
 | 
										src_rate, src_buffer, src_size,
 | 
				
			||||||
 | 
										dest_rate, dest_size_r);
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -17,19 +17,20 @@
 | 
				
			|||||||
 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 | 
					 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "pcm_resample.h"
 | 
					#include "pcm_resample_internal.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <assert.h>
 | 
					#include <assert.h>
 | 
				
			||||||
#include <glib.h>
 | 
					#include <glib.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void pcm_resample_deinit(struct pcm_resample_state *state)
 | 
					void
 | 
				
			||||||
 | 
					pcm_resample_fallback_deinit(struct pcm_resample_state *state)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	pcm_buffer_deinit(&state->buffer);
 | 
						pcm_buffer_deinit(&state->buffer);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* resampling code blatantly ripped from ESD */
 | 
					/* resampling code blatantly ripped from ESD */
 | 
				
			||||||
const int16_t *
 | 
					const int16_t *
 | 
				
			||||||
pcm_resample_16(struct pcm_resample_state *state,
 | 
					pcm_resample_fallback_16(struct pcm_resample_state *state,
 | 
				
			||||||
			 uint8_t channels,
 | 
								 uint8_t channels,
 | 
				
			||||||
			 unsigned src_rate,
 | 
								 unsigned src_rate,
 | 
				
			||||||
			 const int16_t *src_buffer, size_t src_size,
 | 
								 const int16_t *src_buffer, size_t src_size,
 | 
				
			||||||
@@ -70,10 +71,11 @@ pcm_resample_16(struct pcm_resample_state *state,
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const int32_t *
 | 
					const int32_t *
 | 
				
			||||||
pcm_resample_32(struct pcm_resample_state *state,
 | 
					pcm_resample_fallback_32(struct pcm_resample_state *state,
 | 
				
			||||||
			 uint8_t channels,
 | 
								 uint8_t channels,
 | 
				
			||||||
			 unsigned src_rate,
 | 
								 unsigned src_rate,
 | 
				
			||||||
		const int32_t *src_buffer, G_GNUC_UNUSED size_t src_size,
 | 
								 const int32_t *src_buffer,
 | 
				
			||||||
 | 
								 G_GNUC_UNUSED size_t src_size,
 | 
				
			||||||
			 unsigned dest_rate,
 | 
								 unsigned dest_rate,
 | 
				
			||||||
			 size_t *dest_size_r)
 | 
								 size_t *dest_size_r)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										79
									
								
								src/pcm_resample_internal.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										79
									
								
								src/pcm_resample_internal.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,79 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright (C) 2003-2009 The Music Player Daemon Project
 | 
				
			||||||
 | 
					 * http://www.musicpd.org
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * 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.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/** \file
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Internal declarations for the pcm_resample library.  The "internal"
 | 
				
			||||||
 | 
					 * resampler is called "fallback" in the MPD source, so the file name
 | 
				
			||||||
 | 
					 * of this header is somewhat unrelated to it.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef MPD_PCM_RESAMPLE_INTERNAL_H
 | 
				
			||||||
 | 
					#define MPD_PCM_RESAMPLE_INTERNAL_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "pcm_resample.h"
 | 
				
			||||||
 | 
					#include "config.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef HAVE_LIBSAMPLERATE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					pcm_resample_lsr_deinit(struct pcm_resample_state *state);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int16_t *
 | 
				
			||||||
 | 
					pcm_resample_lsr_16(struct pcm_resample_state *state,
 | 
				
			||||||
 | 
							    uint8_t channels,
 | 
				
			||||||
 | 
							    unsigned src_rate,
 | 
				
			||||||
 | 
							    const int16_t *src_buffer, size_t src_size,
 | 
				
			||||||
 | 
							    unsigned dest_rate,
 | 
				
			||||||
 | 
							    size_t *dest_size_r);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int32_t *
 | 
				
			||||||
 | 
					pcm_resample_lsr_32(struct pcm_resample_state *state,
 | 
				
			||||||
 | 
							    uint8_t channels,
 | 
				
			||||||
 | 
							    unsigned src_rate,
 | 
				
			||||||
 | 
							    const int32_t *src_buffer,
 | 
				
			||||||
 | 
							    G_GNUC_UNUSED size_t src_size,
 | 
				
			||||||
 | 
							    unsigned dest_rate,
 | 
				
			||||||
 | 
							    size_t *dest_size_r);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					pcm_resample_fallback_deinit(struct pcm_resample_state *state);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int16_t *
 | 
				
			||||||
 | 
					pcm_resample_fallback_16(struct pcm_resample_state *state,
 | 
				
			||||||
 | 
								 uint8_t channels,
 | 
				
			||||||
 | 
								 unsigned src_rate,
 | 
				
			||||||
 | 
								 const int16_t *src_buffer, size_t src_size,
 | 
				
			||||||
 | 
								 unsigned dest_rate,
 | 
				
			||||||
 | 
								 size_t *dest_size_r);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int32_t *
 | 
				
			||||||
 | 
					pcm_resample_fallback_32(struct pcm_resample_state *state,
 | 
				
			||||||
 | 
								 uint8_t channels,
 | 
				
			||||||
 | 
								 unsigned src_rate,
 | 
				
			||||||
 | 
								 const int32_t *src_buffer,
 | 
				
			||||||
 | 
								 G_GNUC_UNUSED size_t src_size,
 | 
				
			||||||
 | 
								 unsigned dest_rate,
 | 
				
			||||||
 | 
								 size_t *dest_size_r);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
@@ -17,7 +17,7 @@
 | 
				
			|||||||
 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 | 
					 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "pcm_resample.h"
 | 
					#include "pcm_resample_internal.h"
 | 
				
			||||||
#include "conf.h"
 | 
					#include "conf.h"
 | 
				
			||||||
#include "config.h"
 | 
					#include "config.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -30,7 +30,8 @@
 | 
				
			|||||||
#undef G_LOG_DOMAIN
 | 
					#undef G_LOG_DOMAIN
 | 
				
			||||||
#define G_LOG_DOMAIN "pcm"
 | 
					#define G_LOG_DOMAIN "pcm"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void pcm_resample_deinit(struct pcm_resample_state *state)
 | 
					void
 | 
				
			||||||
 | 
					pcm_resample_lsr_deinit(struct pcm_resample_state *state)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	if (state->state != NULL)
 | 
						if (state->state != NULL)
 | 
				
			||||||
		state->state = src_delete(state->state);
 | 
							state->state = src_delete(state->state);
 | 
				
			||||||
@@ -116,7 +117,7 @@ pcm_resample_set(struct pcm_resample_state *state,
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const int16_t *
 | 
					const int16_t *
 | 
				
			||||||
pcm_resample_16(struct pcm_resample_state *state,
 | 
					pcm_resample_lsr_16(struct pcm_resample_state *state,
 | 
				
			||||||
		    uint8_t channels,
 | 
							    uint8_t channels,
 | 
				
			||||||
		    unsigned src_rate,
 | 
							    unsigned src_rate,
 | 
				
			||||||
		    const int16_t *src_buffer, size_t src_size,
 | 
							    const int16_t *src_buffer, size_t src_size,
 | 
				
			||||||
@@ -186,7 +187,7 @@ src_float_to_int_array (const float *in, int *out, int len)
 | 
				
			|||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const int32_t *
 | 
					const int32_t *
 | 
				
			||||||
pcm_resample_32(struct pcm_resample_state *state,
 | 
					pcm_resample_lsr_32(struct pcm_resample_state *state,
 | 
				
			||||||
		    uint8_t channels,
 | 
							    uint8_t channels,
 | 
				
			||||||
		    unsigned src_rate,
 | 
							    unsigned src_rate,
 | 
				
			||||||
		    const int32_t *src_buffer, size_t src_size,
 | 
							    const int32_t *src_buffer, size_t src_size,
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user