summaryrefslogtreecommitdiffstats
path: root/libao2/ao_mpegpes.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_mpegpes.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_mpegpes.c')
-rw-r--r--libao2/ao_mpegpes.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/libao2/ao_mpegpes.c b/libao2/ao_mpegpes.c
index e05e3b1a53..c047fb304f 100644
--- a/libao2/ao_mpegpes.c
+++ b/libao2/ao_mpegpes.c
@@ -250,9 +250,12 @@ static int init(int rate,int channels,int format,int flags){
switch(format){
case AF_FORMAT_S16_BE:
case AF_FORMAT_MPEG2:
- case AF_FORMAT_AC3:
+ case AF_FORMAT_AC3_BE:
ao_data.format=format;
break;
+ case AF_FORMAT_AC3_LE:
+ ao_data.format=AF_FORMAT_AC3_BE;
+ break;
default:
ao_data.format=AF_FORMAT_S16_BE;
}
@@ -333,8 +336,6 @@ static int play(void* data,int len,int flags){
unsigned short *s=data;
// if(len>2000) len=2000;
// printf("ao_mpegpes: len=%d \n",len);
- if(ao_data.format==AF_FORMAT_AC3)
- for(i=0;i<len/2;i++) s[i]=(s[i]>>8)|(s[i]<<8); // le<->be
send_mpeg_lpcm_packet(data, len, 0xA0, ao_data.pts, freq_id, my_ao_write);
}
return len;