From db5b893d537e8af4c1ed21cfff6fda26564333fb Mon Sep 17 00:00:00 2001 From: Joachim Koenig Date: Thu, 6 Sep 2001 15:40:47 +0000 Subject: DTS via SPDIF CVS patchset: 582 CVS date: 2001/09/06 15:40:47 --- src/audio_out/audio_alsa05_out.c | 11 +++++++---- src/audio_out/audio_oss_out.c | 4 +++- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/audio_out/audio_alsa05_out.c b/src/audio_out/audio_alsa05_out.c index d66bc192a..14f1a2259 100644 --- a/src/audio_out/audio_alsa05_out.c +++ b/src/audio_out/audio_alsa05_out.c @@ -24,7 +24,7 @@ * for the SPDIF A52 sync part * (c) 2000 Andy Lo A Foe * - * $Id: audio_alsa05_out.c,v 1.9 2001/08/29 00:51:57 guenter Exp $ + * $Id: audio_alsa05_out.c,v 1.10 2001/09/06 15:40:47 joachim_koenig Exp $ */ /* required for swab() */ @@ -175,6 +175,7 @@ static int ao_alsa_open(ao_driver_t *this_gen,uint32_t bits, uint32_t rate, int case AO_CAP_MODE_STEREO: case AO_CAP_MODE_A52: + case AO_CAP_MODE_AC5: channels = 2; break; @@ -206,7 +207,7 @@ static int ao_alsa_open(ao_driver_t *this_gen,uint32_t bits, uint32_t rate, int this->bytes_in_buffer = 0; this->direction = SND_PCM_CHANNEL_PLAYBACK; - if (ao_mode == AO_CAP_MODE_A52) { + if ((ao_mode == AO_CAP_MODE_A52) || (mode == AO_CAP_MODE_AC5)) { this->pcm_default_device = 2; mode = SND_PCM_MODE_BLOCK; } @@ -295,7 +296,7 @@ static int ao_alsa_open(ao_driver_t *this_gen,uint32_t bits, uint32_t rate, int this->stop_mode = pcm_chan_params.stop_mode; this->ao_mode = ao_mode; - if (ao_mode == AO_CAP_MODE_A52) { + if ((ao_mode == AO_CAP_MODE_A52) || (mode == AO_CAP_MODE_AC5)) { pcm_chan_params.digital.dig_valid = 1; pcm_chan_params.digital.dig_status[0] = SND_PCM_DIG0_NONAUDIO; pcm_chan_params.digital.dig_status[0] |= SND_PCM_DIG0_PROFESSIONAL; @@ -528,8 +529,10 @@ ao_driver_t *init_audio_out_plugin(config_values_t *config) { this->pcm_default_device); this->capabilities = AO_CAP_MODE_STEREO; - if (config->lookup_int (config, "a52_pass_through", 0)) + if (config->lookup_int (config, "a52_pass_through", 0)) { this->capabilities |= AO_CAP_MODE_A52; + this->capabilities |= AO_CAP_MODE_AC5; + } this->ao_driver.get_capabilities = ao_alsa_get_capabilities; diff --git a/src/audio_out/audio_oss_out.c b/src/audio_out/audio_oss_out.c index 2ff22cc6d..82b8bf4d7 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.36 2001/09/01 18:00:16 jcdutton Exp $ + * $Id: audio_oss_out.c,v 1.37 2001/09/06 15:40:47 joachim_koenig Exp $ * * 20-8-2001 First implementation of Audio sync and Audio driver separation. * Copyright (C) 2001 James Courtier-Dutton James@superbug.demon.co.uk @@ -226,6 +226,7 @@ static int ao_oss_open(ao_driver_t *this_gen, this->num_channels = tmp; break; case AO_CAP_MODE_A52: + case AO_CAP_MODE_AC5: tmp = AFMT_AC3; if (ioctl(this->audio_fd, SNDCTL_DSP_SETFMT, &tmp) < 0 || tmp != AFMT_AC3) { printf("audio_oss_out: AC3 SNDCTL_DSP_SETFMT failed. %d\n",tmp); @@ -549,6 +550,7 @@ ao_driver_t *init_audio_out_plugin (config_values_t *config) { if (caps & AFMT_AC3) { if (config->lookup_int (config, "a52_pass_through", 0)) { this->capabilities |= AO_CAP_MODE_A52; + this->capabilities |= AO_CAP_MODE_AC5; printf ("a/52-pass-through "); } else printf ("(a/52-pass-through not enabled in .xinerc)"); -- cgit v1.2.3