diff options
author | reimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2010-01-11 20:27:52 +0000 |
---|---|---|
committer | reimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2010-01-11 20:27:52 +0000 |
commit | 33bc71f10d0218a99128b6a786357f8c60ba821e (patch) | |
tree | f981d7109a26bccd2b06a07e348a6c9dc8b1bc54 /libao2/ao_alsa.c | |
parent | d3ae3611ce366b7598c49094a94109c6ee504322 (diff) | |
download | mpv-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_alsa.c')
-rw-r--r-- | libao2/ao_alsa.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/libao2/ao_alsa.c b/libao2/ao_alsa.c index 0734da46f1..ac9bb3b115 100644 --- a/libao2/ao_alsa.c +++ b/libao2/ao_alsa.c @@ -364,15 +364,11 @@ static int init(int rate_hz, int channels, int format, int flags) case AF_FORMAT_U16_BE: alsa_format = SND_PCM_FORMAT_U16_BE; break; -#if !HAVE_BIGENDIAN - case AF_FORMAT_AC3: -#endif + case AF_FORMAT_AC3_LE: case AF_FORMAT_S16_LE: alsa_format = SND_PCM_FORMAT_S16_LE; break; -#if HAVE_BIGENDIAN - case AF_FORMAT_AC3: -#endif + case AF_FORMAT_AC3_BE: case AF_FORMAT_S16_BE: alsa_format = SND_PCM_FORMAT_S16_BE; break; @@ -535,6 +531,9 @@ static int init(int rate_hz, int channels, int format, int flags) mp_msg(MSGT_AO,MSGL_INFO, MSGTR_AO_ALSA_FormatNotSupportedByHardware, af_fmt2str_short(format)); alsa_format = SND_PCM_FORMAT_S16_LE; + if (AF_FORMAT_IS_AC3(ao_data.format)) + ao_data.format = AF_FORMAT_AC3_LE; + else ao_data.format = AF_FORMAT_S16_LE; } |