From 152d605773745cf59f89a3575ed0aed3c8bd5b2e Mon Sep 17 00:00:00 2001 From: Miguel Freitas Date: Mon, 1 Jul 2002 13:51:26 +0000 Subject: =?UTF-8?q?improved=20audio=20resampling=20for=20limited=20feature?= =?UTF-8?q?d=20sound=20cards=20(like=20the=20ones=20found=20in=20laptops,?= =?UTF-8?q?=20supporting=20only=2016=20bits,=20only=20stereo=20etc).=20as?= =?UTF-8?q?=20added=20bonus=20of=20new=20"stackable"=20conversion=20scheme?= =?UTF-8?q?=20fixes=20resampling=20for=208=20bit=20streams.=20(thanks=20Da?= =?UTF-8?q?mien=20Clermont=C3=A9=20for=20discussion=20and=20ideas)=20note1?= =?UTF-8?q?:=20alsa=20patch=20untested.=20note2:=20pass-through=20untested?= =?UTF-8?q?.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit CVS patchset: 2187 CVS date: 2002/07/01 13:51:26 --- src/audio_out/audio_alsa_out.c | 7 ++++++- src/audio_out/audio_oss_out.c | 10 +++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) (limited to 'src/audio_out') diff --git a/src/audio_out/audio_alsa_out.c b/src/audio_out/audio_alsa_out.c index 4dcf98ae2..0ac30a2e0 100644 --- a/src/audio_out/audio_alsa_out.c +++ b/src/audio_out/audio_alsa_out.c @@ -26,7 +26,7 @@ * (c) 2001 James Courtier-Dutton * * - * $Id: audio_alsa_out.c,v 1.66 2002/07/01 11:45:25 pmhahn Exp $ + * $Id: audio_alsa_out.c,v 1.67 2002/07/01 13:51:26 miguelfreitas Exp $ */ #ifdef HAVE_CONFIG_H @@ -942,7 +942,12 @@ ao_driver_t *init_audio_out_plugin (config_values_t *config) { printf ("audio_alsa_out: access type not available"); return NULL; } + this->capabilities = 0; + + if ( !(snd_pcm_hw_params_set_format(this->audio_fd, params, SND_PCM_FORMAT_U8))) + this->capabilities |= AO_CAP_8BITS; + printf ("audio_alsa_out : supported modes are "); if (!(snd_pcm_hw_params_test_channels(this->audio_fd, params, 1))) { this->capabilities |= AO_CAP_MODE_MONO; diff --git a/src/audio_out/audio_oss_out.c b/src/audio_out/audio_oss_out.c index dedff1aa4..af1264a7a 100644 --- a/src/audio_out/audio_oss_out.c +++ b/src/audio_out/audio_oss_out.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: audio_oss_out.c,v 1.69 2002/06/13 18:36:26 tmattern Exp $ + * $Id: audio_oss_out.c,v 1.70 2002/07/01 13:51:27 miguelfreitas Exp $ * * 20-8-2001 First implementation of Audio sync and Audio driver separation. * Copyright (C) 2001 James Courtier-Dutton James@superbug.demon.co.uk @@ -622,7 +622,7 @@ ao_driver_t *init_audio_out_plugin (config_values_t *config) { int rate ; int devnum; int audio_fd; - int num_channels, status, arg; + int num_channels, bits, status, arg; static char *sync_methods[] = {"auto", "getodelay", "getoptr", "softsync", "probebuffer", NULL}; this = (oss_driver_t *) malloc (sizeof (oss_driver_t)); @@ -775,7 +775,11 @@ ao_driver_t *init_audio_out_plugin (config_values_t *config) { NULL, NULL); this->capabilities = 0; - + + bits = 8; + if( ioctl(audio_fd, SNDCTL_DSP_SAMPLESIZE,&bits) != -1 ) + this->capabilities |= AO_CAP_8BITS; + printf ("audio_oss_out : supported modes are "); num_channels = 1; status = ioctl(audio_fd, SNDCTL_DSP_CHANNELS, &num_channels); -- cgit v1.2.3