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 /libaf/af_format.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 'libaf/af_format.c')
-rw-r--r-- | libaf/af_format.c | 4 |
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; |