]> git.sesse.net Git - ffmpeg/commit
spdifenc: fix byte order on big-endian systems
authorAnssi Hannula <anssi.hannula@iki.fi>
Sat, 12 Feb 2011 13:57:01 +0000 (15:57 +0200)
committerJanne Grunau <janne-ffmpeg@jannau.net>
Sun, 13 Feb 2011 14:16:55 +0000 (15:16 +0100)
commit57f2c9aed9fecbb1e6798ec33613141afe74fd31
tree4271816d701686eabf3f701b04e66821f83f4944
parent482d98f69b2eb7a7b0b5054101a43db384e9432b
spdifenc: fix byte order on big-endian systems

There is a check for HAVE_BIGENDIAN when outputting the IEC 61937
stream. On big-endian systems the payload data is not byteswapped,
causing in effect the outputted payload data to be in a different byte
order on big-endian than on little-endian systems.

However, the IEC 61937 preamble (and the final odd byte if present) is
always outputted in the same byte order. This means that on big-endian
systems the headers have a different byte order than the payload,
preventing useful use of the output.

Fix that by outputting the data in a format suitable for sending to an
audio device in S16LE format by default. Output as big-endian (S16BE)
is added as an AVOption. This makes the muxer output the same on all
archs by default.

Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
libavformat/spdifenc.c