Add and use AF_FORMAT_IS_AC3 macro.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30276 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
reimar 2010-01-11 19:23:18 +00:00
parent a8a53e872e
commit 6910cdaae1
4 changed files with 10 additions and 7 deletions

View File

@ -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);

View File

@ -127,7 +127,7 @@ static int control(int cmd, void *arg)
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 @@ static int init(int rate_hz, int channels, int format, int flags)
* 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 @@ static int init(int rate_hz, int channels, int format, int flags)
}
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;
}

View File

@ -263,7 +263,7 @@ int b_alive;
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 @@ int b_alive;
// 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;

View File

@ -201,7 +201,7 @@ static int play(void* data,int len,int flags){
// 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;