changeset 30234:9d09ff127c25

Add and use AF_FORMAT_IS_AC3 macro.
author reimar
date Mon, 11 Jan 2010 19:23:18 +0000
parents 0acca3a641a6
children 53c43f683cd7
files libaf/af_format.h libao2/ao_alsa.c libao2/ao_coreaudio.c libao2/ao_dxr2.c
diffstat 4 files changed, 10 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- 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);
--- 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;
 	    }
--- 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;
--- 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;