summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoachim Koenig <joachim_koenig@users.sourceforge.net>2001-09-06 15:40:47 +0000
committerJoachim Koenig <joachim_koenig@users.sourceforge.net>2001-09-06 15:40:47 +0000
commitdb5b893d537e8af4c1ed21cfff6fda26564333fb (patch)
tree23816ae862c4619930751c96cc6dcb29f906c0ed
parent78da614ffea8cadb2f1f79cd845da7e52210965a (diff)
downloadxine-lib-db5b893d537e8af4c1ed21cfff6fda26564333fb.tar.gz
xine-lib-db5b893d537e8af4c1ed21cfff6fda26564333fb.tar.bz2
DTS via SPDIF
CVS patchset: 582 CVS date: 2001/09/06 15:40:47
-rw-r--r--src/audio_out/audio_alsa05_out.c11
-rw-r--r--src/audio_out/audio_oss_out.c4
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 <andy@alsaplayer.org>
*
- * $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)");