# HG changeset patch # User reimar # Date 1263237798 0 # Node ID 9d09ff127c25b24343a2a75d272d7dddf8cad3ac # Parent 0acca3a641a6fe621133fee79db610407d3ac6bc Add and use AF_FORMAT_IS_AC3 macro. diff -r 0acca3a641a6 -r 9d09ff127c25 libaf/af_format.h --- a/libaf/af_format.h Mon Jan 11 19:08:15 2010 +0000 +++ b/libaf/af_format.h Mon Jan 11 19:23:18 2010 +0000 @@ -103,6 +103,8 @@ #define AF_FORMAT_UNKNOWN (-1) +#define AF_FORMAT_IS_AC3(fmt) (((fmt) & AF_FORMAT_SPECIAL_MASK) == AF_FORMAT_AC3) + int af_str2fmt(const char *str); int af_str2fmt_short(const char *str); int af_fmt2bits(int format); diff -r 0acca3a641a6 -r 9d09ff127c25 libao2/ao_alsa.c --- a/libao2/ao_alsa.c Mon Jan 11 19:08:15 2010 +0000 +++ b/libao2/ao_alsa.c Mon Jan 11 19:23:18 2010 +0000 @@ -127,7 +127,7 @@ long get_vol, set_vol; float f_multi; - if(ao_data.format == AF_FORMAT_AC3) + if(AF_FORMAT_IS_AC3(ao_data.format)) return CONTROL_TRUE; if(mixer_channel) { @@ -427,7 +427,7 @@ * while opening the abstract alias for the spdif subdevice * 'iec958' */ - if (format == AF_FORMAT_AC3) { + if (AF_FORMAT_IS_AC3(format)) { device.str = "iec958"; mp_msg(MSGT_AO,MSGL_V,"alsa-spdif-init: playing AC3, %i channels\n", channels); } @@ -486,12 +486,13 @@ } if (!alsa_handler) { + int isac3 = AF_FORMAT_IS_AC3(format); //modes = 0, SND_PCM_NONBLOCK, SND_PCM_ASYNC - if ((err = try_open_device(alsa_device, open_mode, format == AF_FORMAT_AC3)) < 0) + if ((err = try_open_device(alsa_device, open_mode, isac3)) < 0) { if (err != -EBUSY && ao_noblock) { mp_msg(MSGT_AO,MSGL_INFO,MSGTR_AO_ALSA_OpenInNonblockModeFailed); - if ((err = try_open_device(alsa_device, 0, format == AF_FORMAT_AC3)) < 0) { + if ((err = try_open_device(alsa_device, 0, isac3)) < 0) { mp_msg(MSGT_AO,MSGL_ERR,MSGTR_AO_ALSA_PlaybackOpenError, snd_strerror(err)); return 0; } diff -r 0acca3a641a6 -r 9d09ff127c25 libao2/ao_coreaudio.c --- a/libao2/ao_coreaudio.c Mon Jan 11 19:08:15 2010 +0000 +++ b/libao2/ao_coreaudio.c Mon Jan 11 19:23:18 2010 +0000 @@ -263,7 +263,7 @@ ao->b_changed_mixing = 0; /* Probe whether device support S/PDIF stream output if input is AC3 stream. */ - if ((format & AF_FORMAT_SPECIAL_MASK) == AF_FORMAT_AC3) + if (AF_FORMAT_IS_AC3(format)) { /* Find the ID of the default Device. */ i_param_size = sizeof(AudioDeviceID); @@ -344,7 +344,7 @@ // unsigned int inDesc.mFormatFlags = kAudioFormatFlagIsPacked; } - if ((format & AF_FORMAT_SPECIAL_MASK) == AF_FORMAT_AC3) { + if (AF_FORMAT_IS_AC3(format)) { // Currently ac3 input (comes from hwac3) is always in native byte-order. #if HAVE_BIGENDIAN inDesc.mFormatFlags |= kAudioFormatFlagIsBigEndian; diff -r 0acca3a641a6 -r 9d09ff127c25 libao2/ao_dxr2.c --- a/libao2/ao_dxr2.c Mon Jan 11 19:08:15 2010 +0000 +++ b/libao2/ao_dxr2.c Mon Jan 11 19:23:18 2010 +0000 @@ -201,7 +201,7 @@ // MPEG and AC3 don't work :-( if(ao_data.format==AF_FORMAT_MPEG2) send_mpeg_ps_packet (data, len, 0xC0, ao_data.pts, 2, write_dxr2); - else if(ao_data.format==AF_FORMAT_AC3) + else if(AF_FORMAT_IS_AC3(ao_data.format)) send_mpeg_ps_packet (data, len, 0x80, ao_data.pts, 2, write_dxr2); else { int i;