summaryrefslogtreecommitdiffstats
path: root/libao2/ao_oss.c
diff options
context:
space:
mode:
authorreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2010-01-11 20:27:52 +0000
committerreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2010-01-11 20:27:52 +0000
commit33bc71f10d0218a99128b6a786357f8c60ba821e (patch)
treef981d7109a26bccd2b06a07e348a6c9dc8b1bc54 /libao2/ao_oss.c
parentd3ae3611ce366b7598c49094a94109c6ee504322 (diff)
downloadmpv-33bc71f10d0218a99128b6a786357f8c60ba821e.tar.bz2
mpv-33bc71f10d0218a99128b6a786357f8c60ba821e.tar.xz
Add support for distinguishing between little- and big-endian SPDIF AC3
and converting between both. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30283 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libao2/ao_oss.c')
-rw-r--r--libao2/ao_oss.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/libao2/ao_oss.c b/libao2/ao_oss.c
index a054d7ce07..6c23026e87 100644
--- a/libao2/ao_oss.c
+++ b/libao2/ao_oss.c
@@ -96,7 +96,7 @@ static int format2oss(int format)
case AF_FORMAT_MPEG2: return AFMT_MPEG;
#endif
#ifdef AFMT_AC3
- case AF_FORMAT_AC3: return AFMT_AC3;
+ case AF_FORMAT_AC3_NE: return AFMT_AC3;
#endif
}
mp_msg(MSGT_AO, MSGL_V, "OSS: Unknown/not supported internal format: %s\n", af_fmt2str_short(format));
@@ -139,7 +139,7 @@ static int oss2format(int format)
case AFMT_MPEG: return AF_FORMAT_MPEG2;
#endif
#ifdef AFMT_AC3
- case AFMT_AC3: return AF_FORMAT_AC3;
+ case AFMT_AC3: return AF_FORMAT_AC3_NE;
#endif
}
mp_msg(MSGT_GLOBAL,MSGL_ERR,MSGTR_AO_OSS_UnknownUnsupportedFormat, format);
@@ -303,6 +303,8 @@ static int init(int rate,int channels,int format,int flags){
}
ac3_retry:
+ if (AF_FORMAT_IS_AC3(format))
+ format = AF_FORMAT_AC3_NE;
ao_data.format=format;
oss_format=format2oss(format);
if (oss_format == -1) {