summaryrefslogtreecommitdiffstats
path: root/libaf/af_format.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 /libaf/af_format.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 'libaf/af_format.c')
-rw-r--r--libaf/af_format.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/libaf/af_format.c b/libaf/af_format.c
index 64acbbb9b6..3b9b907882 100644
--- a/libaf/af_format.c
+++ b/libaf/af_format.c
@@ -98,6 +98,8 @@ static int control(struct af_instance_s* af, int cmd, void* arg)
af->data->bps == data->bps)
return AF_DETACH;
+ // Allow trivial AC3-endianness conversion
+ if (!AF_FORMAT_IS_AC3(af->data->format) || !AF_FORMAT_IS_AC3(data->format))
// Check for errors in configuration
if((AF_OK != check_bps(data->bps)) ||
(AF_OK != check_format(data->format)) ||
@@ -152,7 +154,7 @@ static int control(struct af_instance_s* af, int cmd, void* arg)
}
case AF_CONTROL_FORMAT_FMT | AF_CONTROL_SET:{
// Check for errors in configuration
- if(AF_OK != check_format(*(int*)arg))
+ if(!AF_FORMAT_IS_AC3(*(int*)arg) && AF_OK != check_format(*(int*)arg))
return AF_ERROR;
af->data->format = *(int*)arg;